ЛАБОРАТОРНАЯ РАБОТА №9"Графика в Visual Basic"
Цели: 1) Изучить основы внесения графики в приложение.
2) Изучить основы анимации.
Поговорим о компьютерной графике. Вообще, я бы выделил три
типа компьютерной графики: 1) графика, полученная пользов-
ателем извне (это всемозможные рисунки и картинки, скачен-
ные из сети и пр.); 2) графика, сделанная пользователем
самостоятельно (нарисована вручную, с помощью мыши и пр.);
3) графика, полученная в результате математических расчет-
ов (графики функции, диаграммы и пр.)
Сегодня мы сделаем две небольших программы, которые помог-
ут нам разобраться с графикой. Итак, вот вам сведения:
среди стандартных элементов управления Visual Basic есть
элемент Line (линия), который предназначен для (кто бы мог
догадаться?) для создания линий.
Пример 1.
~~~~~~~~~
Создадим простенькое приложение, в котором мы можем играть
линией на форме, изменяя ее расположение. Для начала поме-
стите на форму четыре метки, четыре текстовых окна, одну
командную кнопку и одну линию. Примерно так:
Теперь занесите код:
Rem При загрузке формы
Private Sub Form_Load()
Text1 = Line1.X1
Text2 = Line1.X2
Text3 = Line1.Y1
Text4 = Line1.Y2
End Sub
Rem При нажатии кнопки
Private Sub Command1_Click()
Line1.X1 = Val(Text1)
Line1.X2 = Val(Text2)
Line1.Y1 = Val(Text3)
Line1.Y2 = Val(Text4)
End Sub
В результате мы получим простенькое приложение, которое
может выводить в текстовые окна координаты линии
(x1, y1, x2, y2) и, в случае если мы введем новые координ-
аты и нажмем командную кнопку "Применить", - менять их в
реальном времени на форме. Если вы все сделаете правильно,
то получите приложение вида:
Очень важные сведения.
~~~~~~~~~~~~~~~~~~~~~~
Давайте вспомним о процудурах. Мы знаем, что они бывают
нескольких типов. (Сколько именно - мы не помним, но что
их несколько типов - знаем наверняка...) Есть процедуры
"обработки событий" - они срабатывают в том случае, если
произошло какое-то событие (пользователь кликнул на коман-
дной кнопке, переключил радио-кнопку и т.д.) Есть процеду-
ры, написанные программистом: они вызываются из других
процедур для выполнения каких-то действий (вычисления, пе-
рекодировка строки, скрытие/показ какого-то элемента упра-
вления и пр.)
Но есть (внимание, это очень важно!) процедуры, которые
должны срабатывать в зависимости от времени. Как это? Нап-
ример, пользователь запустил наше приложение, а через 10
минут вызвалась процедура и, оп, вывелась надпись "зареги-
стрируйте свою версию!" Или еще лучше: каждые десять секу-
нд вызывается процедура, которая включает/выключает видим-
ость кнопки "Выход".
То есть, нам могут потребоватся процедуры, которые самост-
оятельно запускаются на исполнение в зависимости от време-
ни.
Для управления такими процедурами предусмотрен специальный
элемент управления Timer (таймер).
Свойства элемента Timer (таймер).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Name - иям элемента.
2. Interval - хранит число миллисекунд, через которые выз-
ывается процедура.
Пример 2.
~~~~~~~~~
Создадим простой мультфильм. Допустим, мы хотим, чтобы
по голубому небу пролетал самолет. Для реализации задуман-
ного нам необходимо сделать подготовительную работу. Во-
первых, надо нарисовать в редакторе MS Paint небольшой са-
молетик на голубом фоне и сохранить его в каталоге
C:\vb32\student.
Во-вторых, необходимо создать новое приложение и сделать
цвет фона формы голубым. Теперь осталось поместить на фор-
му элемент управления Timer и элемент управления Image
(рисунок). Когда вы поместите на форму элемент Image необ-
ходимо указать ему полный путь к графическому файлу (само-
летик), который вы хотите "в нем" видеть. Кликните на сво-
йстве Picture (картинка) и укажите путь C:\vb32\student.
Нажмите F5. Ваше приложение должно выглядеть примерно так.
Теперь надо "заставить" самолетик лететь слева направо на-
шей по форме. Собственно, полет - есть ни что иное как из-
менение координат рисунка. Вернее, даже одной координаты
рисунка - положение относительно левого края формы. Вспом-
ним о том, какие свойства отвечают за координаты объекта в
Visual Basic.
Помните командную кнопку? Так вот, у всех элементов управ-
ления свойства, касающиеся расположения одинаковы. Видно,
что нам достаточно наращивать значение в свойстве Left
(расстояние от левого края формы до элемента).
Теперь поговорим о том, как часто мы будем изменять эту
координату. Выше упоминалось о элементе управления Timer
(таймер), который вызывает свою процедуру через определен-
ный промежуток времени. Кликнув два раза левой кнопкой мы-
ши на элементе Timer (он будет называтся Timer1), мы полу-
чим процедуру:
Rem Процедура таймера
Private Sub Timer1_Timer()
Image1.Left=Image1.Left+30
End Sub
Остается сделать только одно - занести в свойство Interval
(интервал) элемента Timer (таймер) значение 100 (миллисек-
унды). Теперь каждые сто миллисекунд программа будет увел-
ичивать координату Left и рисунок будет двигаться (доволь-
но быстро) вправо по форме. Таким образом, наш кораблик
будет лететь...
Задания к лабораторной работе №9
1. Прочитать, законспектировать работу.
2. Проверить пример.
3. Морально готовится к получению большого задания по курсу.