Для создания
анимации (иллюзии движения на экране какого-либо
объекта) применяется принцип смены
кадров (изображений), как это делается в
мультипликации. Программа, имитирующая
движение, должна реализовывать следующие
этапы:
·
создание
изображения на экране;
·
реализация
временной паузы для того, чтобы глаз
зафиксировал изображение;
·
проведение
коррекции изображения.
Анимация часто
используется для изображения движения
объектов. Для регулирования скорости
движения объекта используют
пустой цикл, чем большее количество раз
он будет выполняться, тем
медленнее будет двигаться объект.
Проект 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 «Мультимедиа»
и заменить кнопки на меню.