Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
my_vb_lr.doc
Скачиваний:
15
Добавлен:
07.06.2015
Размер:
735.74 Кб
Скачать

Лабораторная работа № 8. Анимационные рисунки.

Цель: Изучение методов создания анимационных приложений.

Используя элемент управления Picture Boxможно создать анимационные приложения с помощью тех же методов, которые используются в стоп-анимации, применяемой создателями фильмов.

Темп анимации задает элемент управления Timer. Через заданный в его свойствеInterval(интервал времени)вызывается процедура обработки событияTimerэтого элемента, в которой можно менять положения изображения или даже видоизменять изображение. В результате чего изображение «оживает».

Порядок выполнения работы

1. Найти файл с картинкамиFace02.ico и Face03.icoи скопировать их в свою личную папку.

2. Войти в среду Visual Basic и создать новый проект. Присвоить проекту имяLab8.

3. Поместить в форму объектImageи его свойствуPictureприсвоить значениеFace02.ico.

4. Добавить в форму объектTimer. СвойствуIntervalэтого объектаPictureприсвоить значение 100, т.е. 100 милисекунд.

5. В окне кода формы создать процедуру обработки событияTimer.

Private Sub Timer1_Timer()

Static Flag As Boolean

If Image1.Top < 0 Or Image1.Top >= Form1.ScaleHeight - Image1.Height Then

PHeight = -PHeight

End If

If Image1.Left < 0 Or Image1.Left >= Form1.ScaleWidth - Image1.Width Then

PWidth = -PWidth

End If

If Flag = True Then

Flag = False

Image1.Picture = LoadPicture("Face03.ico")

Else

Flag = True

Image1.Picture = LoadPicture("Face02.ico")

End If

Image1.Top = Image1.Top + PHeight

Image1.Left = Image1.Left + PWidth

End Sub

В этом примере использована статическая переменная Flag логического типа. При каждом входе в подпрограмму ее значение меняется на противоположное И в зависимости от значения этой переменной поочередно загружается одно из двух изображений.

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

6. Сохранить проект, присвоив его элементам следующие имена:

L8_< Фио>_Form1

L8_< Фио>_Project

7. Запустить приложение на выполнение (F5), чтобы увидеть на экране перемещающееся лицо, которое будет “улыбаться” и “гримасничать”.

8. Меняя значение свойстваIntervalобъектаTimerи константыStep(шаг перемещения изображения на экране), добиться наиболее лучшего качества анимации.

9. Модифицировать приложение. Создать в нем меню, состоящее из пунктов:

интервал времени;

шаг перемещения;

выход.

Пункт шаг перемещения состоит из подпунктов

по вертикали;

по горизонтали.

Создать коды для выполнения команд созданного меню. Переменные PHeightиPWidth вынесены в секцию General. В итоге должен быть получен примерно следующий код:

Public PHeight As Integer

Public PWidth As Integer

Private Sub mnuInterval_Click()

Dim str As String

Do

str = InputBox("Введите новый интервал времени", _

"Изменение параметров анимации")

If IsNumeric(str) Then

Timer1.Interval = str

Exit Do

Else

MsgBox "Неверное значение интервала: не цифра"

End If

Loop

End Sub

Private Sub mnuPeremGor_Click()

Dim str As String

Do

str = InputBox("Введите новый интервал горизонтального перемещения", _

"Изменение параметров анимации")

If IsNumeric(str) Then

PWidth = str

Exit Do

Else

MsgBox "Неверное значение интервала: не цифра"

End If

Loop

End Sub

Private Sub mnuPeremVert_Click()

Dim str As String

Do

str = InputBox("Введите новый интервал вертикального перемещения", _

"Изменение параметров анимации")

If IsNumeric(str) Then

PHeight = str

Exit Do

Else

MsgBox "Неверное значение интервала: не цифра"

End If

Loop

End Sub

Private Sub Exit_Click()

End

End Sub

Private Sub Timer1_Timer()

Static Flag As Boolean

If Image1.Top < 0 Or Image1.Top >= Form1.ScaleHeight - Image1.Height Then

PHeight = -PHeight

End If

If Image1.Left < 0 Or Image1.Left >= Form1.ScaleWidth - Image1.Width Then

PWidth = -PWidth

End If

If Flag = True Then

Flag = False

Image1.Picture = LoadPicture("Face03.ico")

Else

Flag = True

Image1.Picture = LoadPicture("Face02.ico")

End If

Image1.Top = Image1.Top + PHeight

Image1.Left = Image1.Left + PWidth

End Sub

Приложение

Таблица П1 – Выражения для функции

вариант

f1(x)

f2(x)

f3(x)

1

tg(2x)

Sin(3x)

Cos(x-2)

2

4x+2

5/(X+0,4)

0,5/(2Sin(4x))

3

4

Ctg(X+0,4)

Ln(2X+0,5)

5

6

7

8

xcos(x)

9

10

11

Sin(2x)

12

Cos(2x)

13

Ln(2x+5)

14

sin(2x+1)

15

Cos(x)

16

x(sin(x)+2)

17

sin(2x)

18

19

Sin(4x)

20

21

Xsin(x-1)

22

23

24

25

51

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