Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MS_VB_dop_vozm_5_04.doc
Скачиваний:
5
Добавлен:
19.11.2019
Размер:
1.64 Mб
Скачать
  1. Анимация графических изображений

    1. Основные свойства и методы

Анимация – это создание эффекта движения графического объекта за счет отображения на экране изображений объекта и быстрой его смены с частичным изменением формы или положения. Анимация заключается в перемещении изображения объекта относительно системы координат экранной формы. Анимация реализуется путем программного управления движением объекта.

Перемещение объекта в Visual Basic программным способом может осуществляться путем указания смещения координат относительно текущего положения. Для растровых изображений, помещенных в объекты Image или PictureBox, перемещение путем указания новых координат выполняется с помощью их свойств Top, Left или метода Move. Синтаксис метода Move следующий:

ObjectName.Move x, y

где ObjectName – имя перемещаемого объекта в форме;

х, y - координаты нового положения объекта в форме.

Например, Image1.Move 100,200.

Для рисунков, созданных с помощью графических элементов управления или графических методов, перемещение осуществляется путем перерисовки рисунков с указанием новых координат этих объектов.

Для обеспечения плавного движения объекта можно применить цикл, в котором координаты меняются незначительно на каждом шаге.

Например:

For i=1 To 500

Circle (5+Dx*I, 5+Dy*I), 5, здесь Dx, Dy - шаг движения по

осям ОХ и ОY соответственно

Next

или

For i=1 To 3000

Image1.Move i, i

Next

Если изменять координаты графических объектов на экране в последовательные моменты времени, то объекты также будут “перемещаться” по экрану. Это обеспечивается размещением на форме таймера. С помощью элемента таймер можно устанавливать скорость движения объекта в форме. В случае применения элемента таймер операторы задания новых координат необходимо поместить в тело процедуры обработки события Timer элемента Timer

    1. Примеры создания эффектов анимации

Пример 4.1. В качестве примера рассмотрим работу программы для осуществления анимации тремя различными способами, реализованными по нажатию командных кнопок «Окружность», «Квадрат» и «Часы». Общий вид интерфейса предельно прост, на форме располагаем элементы Timer, Image (для размещения рисунка с изображением часов) и три командные кнопки (см. рис. 4.1).

По загрузке формы устанавливаются пользовательские координаты формы и значения переменных Dx (шаг по оси OX), Dy (шаг по оси OY).

Объект «Окружность» перемещается по форме по диагонали слева направо с использованием метода Circle и изменением в цикле по К от 1 до 18 с шагом 1 своих координат. В процедуре обработки события Command1_Click() также отключается таймер Timer1.

Объект «Квадрат» перемещается с использованием элемента Timer. В процедуре обработки события Command2_Click() активизируется таймер и устанавливается в 1 значение переменной цикла. В процедуре обработки события Timer1_Timer() методом Line рисуется квадрат через равные промежутки времени с новыми координатами, что создает эффект движения.

Объект «Часы» перемещается по форме с использованием метода Move путем изменения в цикле по J от 1 до 90 с шагом 0,1 своих координат. Движение часов осуществляется из верхнего левого в нижний правый угол. Процедура обработки события Command3_Click() также отключает таймер Timer1.

Текст программы приведен ниже.

Dim I As Integer

Dim Dx As Integer

Dim Dy As Integer

Private Sub Form_Load()

Dx = 5

Dy = 5

Scale (0, 100)-(100, 0)

End Sub

Private Sub Command1_Click() по нажатию кнопки

«Окружность»

Cls

Timer1.Enabled = False

For K = 1 To 18

Circle (5 + Dx * K, 5 + Dy * K), 5

Next

End Sub

Private Sub Command2_Click() по нажатию кнопки «Квадрат»

Timer1.Enabled = True

I = 1

End Sub

Private Sub Timer1_Timer()

Cls

Line (5 + Dx * I, Dy * I)-(Dx * I, 5 + Dy * I),,B

I = I + 1

End Sub

Private Sub Command3_Click() по нажатию кнопки «Часы»

Timer1.Enabled = False

Cls

For J = 1 To 90 Step 0.1

Image1.Move J, 100 - J

Next

End Sub

Рис. 4.1. Результат выполнения программы

при нажатии кнопки «Окружность»

Пример 4.2. Проект реализует поочередное движение окружности справа налево в верхней части формы при нажатии на кнопку “Старт круг” и рисунка в виде машины в нижней части формы с остановкой перед знаком «Stop» при нажатии кнопки “Старт машина”. В начальный момент времени на форме присутствуют обе кнопки. При нажатии одной из кнопок совершается соответствующее действие и эта кнопка с формы исчезает. На форме всегда присутствует одна кнопка, инициирующая действие, отличное от совершенного. Внешний вид интерфейса смотрите на рис. 4.2 и 4.3. Текст программы приведен ниже.

Dim Dx As Single

Dim i As Integer

Private Sub Form_Load()

Timer2.Enabled = False

Timer1.Enabled = False

Image1.Visible = False

Picture1.Visible = False

Picture1.Scale (0, 100)-(100, 0)

Form1.Scale (0, 100)-(100, 0)

i = 1

End Sub

Private Sub StartK_Click() по нажатию кнопки «Старт круг»

Picture1.Visible = True

Picture2.Visible = False

Image1.Visible = False

Timer1.Enabled = True

Timer2.Enabled = False

StartM.Visible = True

StartK.Visible = False

Dx = 5

i = 1

End Sub

Private Sub StartM_Click() по нажатию кнопки «Старт

машина»

Picture1.Visible = False

Picture2.Visible = True

Image1.Visible = True

Timer1.Enabled = False

Timer2.Enabled = True

StartK.Visible = True

StartM.Visible = False

i = 1

Form1.Cls

Beep ‘ генерация звукового сигнала

End Sub

Private Sub Timer1_Timer()

Picture1.Cls

Picture1.Circle (100 - Dx * i, 50), 5

i = i + 1

End Sub

Private Sub Timer2_Timer()

Image1.Move (1 * i)

If i < 80 Then i = i + 1 Else Exit Sub

End Sub

Рис. 4.2. Результат выполнения программы при нажатии кнопки “Старт круг”

Рис. 4.3. Результат выполнения программы при нажатии кнопки “Старт машина”

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]