Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Анимация графических изображений



Если в последовательные моменты времени изменять координаты графических объектов на экране, то объекты будут “перемещаться” по экрану. Для инициирования последовательности событий (в случае анимации изображений, в моменты свершения этих событий необходимо изменять координаты графических объектов) через регулярные промежутки времени используется элемент Таймер (timer). свойство Interval таймера задает периодичность возникновения последовательности событий.

Значение свойства Interval задается в миллисекундах (мс) и может принимать значения от 0 до 65535 и теоретически способно заставить систему генерировать события со скоростью от 1000 в секунду до 1 в минуту. Интервал, равный 0 (по умолчанию), отключает таймер. Необходимо учитывать, что технически для компьютера имеется порог чувствительности разрешения таймера (порядка 18 событий в секунду или 56 мс).

В качестве примера рассмотрим перемещение окружности по форме из нижнего левого угла в правый верхний. Это обеспечивается размещением на форме таймера, заданием значения свойства Interval отличного от 0 (при выполнении приложения таймер не виден на форме) и следующей программой, включающей описание переменной I в разделе general формы, задание начального значения этой переменной в процедуре обработки события Form1_Load (I = 1) и процедуру Timer1_Timer :


Option Explicit 'предусматривает обязательное явное объявление переменных, иначе будет выдано сообщение об ошибке

Dim I As Integer

 

Private Sub Form_Load()

I = 1

End Sub

 

Private Sub Timer1_Timer()

Dim Dx, Dy As Single

Beep 'подача звукового сигнала

Dx = 5 'смещение по оси Х

Dy = 5 'смещение по оси Y

Scale (0, 100)-(100, 0) 'оси координат (0,0)-в нижнем левом углу

Circle (5 + Dx * I, 5 + Dy * I), 5 'окружность

I = I + 1 'переход к рисованию следующей окружности

End Sub

 

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

Можно использовать свойств DrawMode формы. При значении свойства DrawMode равном 7, при повторном рисовании линии или другой фигуры восстанавливается исходное состояние экрана (изображение исчезает).

Приводится текст модифицированной процедуры Timer1_Timer() и фрагмент движения окружности по форме.

Private Sub Timer1_Timer()

Dim Dx, Dy As Single

Beep 'подача звукового сигнала

Dx = 5 'смещение по оси Х

Dy = 5 'смещение по оси Y

Scale (0, 100)-(100, 0) 'оси координат(0,0)-в нижнем левом углу

Cls ‘очистка формы

Circle (5 + Dx * I, 5 + Dy * I), 5 'окружность

I = I + 1 'переход к рисованию следующей окружности

End Sub

 

Задание

См. файл «К теме8 Var_Zad_VB_Graf.doc»

 

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.