Уроки 114 - 120
§4.13. Графика в объектно-ориентированных языках программирования
Содержание урока
4.13.4. Анимация
Иллюзии движения на экране
Проект «Часы»
Объявление переменных и создание обработчика события вывода показаний цифровых и стрелочных часов на языке Visual Basic .NET
Дополнение графического интерфейса проекта на языках Visual Basic .NET, Visual С#, Visual J# и Turbo Delphi
Запуск проекта на языках Visual Basic .NET, Visual С#, Visual J# и Turbo Delphi
Компьютерный практикум
4.13.4. Анимация
Объявление переменных и создание обработчика события вывода показаний цифровых и стрелочных часов на языке Visual Basic .NET
4.
Dim XT, YT As Integer 'Координаты цифр 'на стрелочных часах
Dim X1, Y1 As Integer 'Координаты секундной 'стрелки
Dim Х2, Y2 As Integer 'Координаты минутной 'стрелки
Dim ХЗ, Y3 As Integer 'Координаты часовой стрелки
Dim N As Double
Dim T As Double, I As Byte 'Счетчики циклов
Dim Graphl As Graphics
Dim Pen1 As New Pen (Color. Red, 1) 'Перо, рисующее 'секундную стрелку
Dim Pen2 As New Pen (Color .Green, 2) 'Перо, рисующее минутную стрелку
Dim РеnЗ As New Pen (Color. Blue, 3) 'Перо, рисующее 'часовую стрелку
Dim drawFont As New Font ("Arial", 16)
Dim drawBrush As New SolidBrush(Color.Black)
5. В обработчике события Timer1_Tick каждую секунду:
• выводить значение текущей даты и времени на надпись с использованием объекта DateTime и его свойства Now;
• рисовать циферблат стрелочных часов с использованием цикла со счетчиком I;
• рисовать в часовой системе координат секундную, минутную и часовую стрелки, угол поворота которых увеличивается с каждым «тиком» (значение переменной N делится соответственно на 60, 3600 и 21 600);
• делать паузу с использованием цикла со счетчиком Т (пауза должна быть достаточной, чтобы глаз зафиксировал положение стрелок, но не должна превышать времени одного «тика», т. е. 1 секунды);
• осуществлять стирание рисунка стрелочных часов, чтобы подготовиться к рисованию их положения в следующем «тике» (в следующую секунду).
Private Sub Timer1_Tick(ByVal sender As System. Object, ByVal e As System.EventArgs) Handles Timer1.Tick
'Цифровые часы
Label1.Text = DateTime.Now
'Циферблат стрелочных часов
Graph1 = Me.PictureBox1.CreateGraphics()
For I = 1 To 12
XT = 115 + Round (100 * Sin (6.28 * 30 * I / 360))
YT = 115 - Round (100 * Cos (6.28 * 30 * I / 360)) Graph1.DrawString (I, drawFont, drawBrush, XT, YT) Next I
'Преобразование компьютерной системы координат в ' "часовую!' систему координат Graph1.ScaleTransform(l, -1)
Graph1.TranslateTransform(125, -125)
'Рисование стрелок N = N + 1 'Секундная стрелка
X1 = Round(90 * Sin(6.28 * N / 60))
Y1 = Round(90 * Cos(6.28 * N / 60))
Graph1.DrawLine(Pen1, 0, 0, XI, Yl)
'Минутная стрелка
X2 = Round(60 * Sin(6.28 * N / 3600))
Y2 = Round(60 * Cos(6.28 * N / 3600))
Graph1.DrawLine(Pen2, 0, 0, X2, Y2)
'Часовая стрелка
ХЗ = Round(40 * Sin(6.28 * N / 216000))
Y3 = Round(40 * Cos(6.28 * N / 216000))
Graph1.DrawLine(РепЗ, 0, 0, X3, Y3)
'Пауза
For T = 1 To 20000000
Next T
'Стирание циферблата и стрелок Graph1.Clear(Color.White)
End Sub
Следующая страница Дополнение графического интерфейса проекта на языках Visual Basic .NET, Visual С#, Visual J# и Turbo Delphi
Cкачать материалы урока