5.11. Анимация


Для создания анимации (иллюзии движения на экране какого-либо  объекта) применяется принцип смены кадров (изображений), как это делается в мультипликации. Программа, имитирующая движение, должна реализовывать следующие этапы:

·         создание изображения на экране;

·         реализация временной паузы для того, чтобы глаз зафиксировал изображение;

·         проведение коррекции изображения.

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

Проект 5.14. «Движение Земли вокруг Солнца».  Разработаем проект, который отображает движение Земли по орбите вокруг Солнца.

Проект «Движение Земли вокруг Солнца».

1

Разместить на форме графическое поле picAnim, в котором будет производиться изображение движения. Свойству BackColor графического поля присвоить значение Blue.

2

Поместить на форму кнопку cmdStart и начать создание событийной процедуры, реализующей анимацию. Задать количество оборотов вокруг Солнца и удобный масштаб:

 

Private Sub cmdStart_Click()

'Количество оборотов

intRev = 100

'Масштаб

picAnim.Scale (-10, 10)-(10, -10)

End Sub

 

            Солнце, орбиту Земли вокруг Солнца и Землю будем рисовать с помощью метода Cirсle желтым цветом. Движение Земли по орбите реализуем в цикле, в котором по известным формулам (по радиусу орбиты и углу поворота) вычисляется положение центра окружности, изображающей Землю.

            Эффект анимации получим рисованием сначала круга голубого цвета, а затем его стиранием кругом цвета фона (синим). Для получения закрашенного круга требуется установить требуемое значение свойства FillColor (при рисовании vbCyan, а при стирании vbBlue), которое определяет цвет заполнения рисуемой фигуры.

            Скорость движения Земли по орбите (скорость смены одного изображения другим) можно регулировать с помощью изменения количества повторений пустого цикла между рисованием и стиранием.

            Для этого можно использовать управляющий элемент Slider (Ползунок), который входит в дополнительный набор управляющих элементов Microsoft Windows Common Controls 6.0. Установив указатель ползунка в определенное положение, мы присваеваем свойству Value значение из интервала, заданного свойством Min (по умолчанию 0) и свойством Max (по умолчанию 10).

3

Разместить на форме ползунок sld1 и кнопку cmdSld и создать событийную процедуру регулировки скорости движения:

 

Private Sub cmdSld_Click()

bytS = sld1.Value

End Sub

4

Продолжить создание событийной процедуры, реализующей анимацию, включить в нее рисование орбиты Земли, Солнца и движения Земли по орбите:

 

'Анимация

For intN = 1 To 360 * intRev

'Орбита Земли

picAnim.Circle (0, 0), 8, vbYellow

'Солнце

picAnim.FillColor = vbYellow

picAnim.Circle (0, 0), 2, vbYellow

'Рисование Земли

picAnim.FillColor = vbCyan

picAnim.Circle (8 * Sin(6.28 / 360 * intN), 8 * Cos(6.28 / 360 * intN)), 1, vbCyan

'Задержка стирания

For intI = 1 To 100000 * bytS

Next intI

'Стирание Земли

picAnim.FillColor = vbBlue

picAnim.Circle (8 * Sin(6.28 / 360 * intN), 8 * Cos(6.28 / 360 * intN)), 1, vbBlue

Next intN

5

Запустить проект.

Установить с помощью ползунка скорость движения Земли по орбите. Щелкнуть по кнопке Пуск.

Для выхода из программы одновременно нажать клавиши Ctrt-Break.

 

6

Сохранить проект в файде prj14.vbp.

 

            Для воспроизведения готовых анимационных файлов (типа AVI) можно воспользоваться дополнительным управляющим элементом Animation (Анимация), который входит в набор дополнительных компонентов Visual Basic Microsoft Windows Common Controls-2 6.0.

             Проект 5.15. «Мультимедиа». Создадим проект, который воспроизводит анимационные файлы типа AVI. 

Проект «Мультимедиа».

1

Установить набор дополнительных компонентов Visual Basic Microsoft Windows Common Controls-2 6.0 и поместить на форму управляющий элемент Animation. Присвоить ему имя anm1.

2

Разместить на форме управляющий элемент общий диалог dlg1.

3

Поместить на форму кнопку cmdStart и создать для нее процедуру открытия анимационного файла (с использованием элемента Общий диалог) и запуска его на воспроизведение:

 

Private Sub cmdStart_Click()

dlg1.ShowOpen

anm1.Open dlg1.filename

anm1.Play

End Sub

4

Поместить на форму кнопку cmdClose и создать для нее процедуру закрытия анимационного файла:

 

Private Sub cmdClose_Click()

anm1.Close

End Sub

5

Запустить проект и щелкнуть по кнопке Старт.

На появившейся панели Открыть файл выбрать файл с расширением AVI.

Для окончания воспроизведения щелкнуть по кнопке Стоп.

6

Сохранить проект в файле prj15.vbp.

 

Задания для самостоятельного выполнения (Ответы)

5.54. Создать проект, реализующий работу стрелочных часов. Стрелки (часовая, минутная и секундная) должны вращаться с использованием эффекта анимации.

5.55. Усовершенствовать проект 5.15 «Мультимедиа» и заменить кнопки на меню.