Лабораторный практикум по информатике



бет49/83
Дата06.01.2022
өлшемі1,1 Mb.
#15674
түріПрактикум
1   ...   45   46   47   48   49   50   51   52   ...   83

Создание анимации


Для создания простой анимации достаточно использовать таймер, при тике которого будут изменяться параметры изображения (например, координаты концов отрезка) и вызываться обработчик события Paint для рисования по новым параметрам. При таком подходе не надо заботиться об удалении старого изображения, ведь оно создается в окне заново.

В качестве примера рассмотрим код анимации секундной стрелки часов:

// Глобальные переменные private int x1, y1, x2, y2, r; private double a;

private Pen pen = new Pen(Color.DarkRed, 2);

// Перерисовка формы

private void Form1_Paint(object sender, PaintEventArgs e)

{

Graphics g = e.Graphics;



// Рисуем секундную стрелку

g.DrawLine(pen, x1, y1, x2, y2);

}

// Действия при загрузке формы



private void Form1_Load(object sender, EventArgs e)

{

r = 150; // Радиус стрелки



a = 0; // Угол поворота стрелки

// Определяем центр формы – начало стрелки

x1 = ClientSize.Width / 2; y1 = ClientSize.Height / 2;

// Конец стрелки

x2 = x1 + (int)(r * Math.Cos(a)); y2 = y1 ‐ (int)(r * Math.Sin(a));

}

// Действия при очередном «тике» таймера



private void timer1_Tick(object sender, EventArgs e)

{

a ‐= 0.1; // Уменьшаем угол на 0,1 радиану



// Новые координаты конца стрелки x2 = x1 + (int)(r * Math.Cos(a)); y2 = y1 ‐ (int)(r * Math.Sin(a));

// Принудительный вызов события Paint Invalidate();

}



    1. Достарыңызбен бөлісу:
1   ...   45   46   47   48   49   50   51   52   ...   83




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет