
Добавил:
Upload
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лекции_1 / С_15_Работа с графикой.ppt
X
- •15. Работа с графикой.
- •С точки зрения приложений интерфейс GDI состоит из контекста отображения (display context) и
- •Функции рисования GDI, входящие в программный интерфейс Win32 API, не имеют параметров, указывающих
- •Для этого внесём в класс Form1 дополнительное булевское поле и реализуем три обработчика:
- •Те же команды можно повторить для панели Panel1:
- •При рисовании подобным образом проявляется неприятный эффект – при перерисовке формы изображение не
- •Основные структуры данных
- •Структура Point
- •Структура Rectangle
- •В структуре определены два конструктора с аргументами:
- •Представление цвета
- •Для задания цвета можно также использовать один из перегруженных методов FromArgb:
- •Кисти и перья
- •В классе HatchBrush определены штриховые кисти. Их конструкторы:
- •Перья описываются классом System.Drawing.Pen.
- •Рисование линий и фигур
- •Класс Graphics содержит множество методов, позволяющих рисовать различные графические фигуры.
- •Параметры методов означают следующее:
- •Рисование линий осуществляется с помощью методов:
- •Вывод текста
- •Пример:
- •Перерисовка окна приложения
- •Очень часто перерисовка окна должна происходить в определенные моменты времени по инициативе приложения.
- •Пример:
- •4. Cоздадим метод-обработчик таймера: private void timer1_Tick(object sender,
- •Пример :
- •3. Далее опишем пользовательский метод DrawSheep(), рисующий фигуру:
- •4. Реализуем анимацию:

4. Реализуем анимацию:
float dt = 0.01f;
private void timer1_Tick(object sender, EventArgs e)
{
t = t + dt;
if ((t < -0.3f) || (t > 0.7f)) dt = -dt;
x0 = 230 + (float)(100 * Math.Sin(10 * t)); y0 = 180 - (float)( 20 * Math.Sin(30 * t));
this.Invalidate();
}
5.Включаем-выключаем анимацию двойным щелчком на форме:
private void Form1_DoubleClick(object sender, EventArgs e)
{
timer1.Enabled = !timer1.Enabled;
Соседние файлы в папке Лекции_1