![](/user_photo/2706_HbeT2.jpg)
- •Донбасская государственная машиностроительная академия
- •Методические указания
- •1. Запуск Visual Basic
- •2. Рабочая среда Visual Basic
- •3. Выполнение приложения
- •4. Требование к выполнению и оформлению лабораторных работ
- •Работы, выполненные с нарушениями п.4, п.5 не рассматриваются и не принимаются!!!
- •Все проекты должны быть сохранены!!!
- •Лабораторная работа № 1 Знакомство со средой Visual Basic . Создание простейшего приложения.
- •Порядок выполнения работы
- •Лабораторная работа № 2 Условные операторы. Вычисление значения функции, заданной условно.
- •Пример выполнения работы
- •Лабораторная работа № 3. Циклический алгоритм. Табулирование функции и поиск экстремумов.
- •Краткие теоретические сведения
- •Пример выполнения работы.
- •Лабораторная работа №4. Создание и обработка массивов.
- •Краткие теоретические сведения.
- •Порядок выполнения работы
- •Лабораторная работа № 5. Элементы графики
- •Краткие теоретические сведения
- •Порядок выполнения работы
- •Лабораторная работа № 6. Файлы, создание и обработка файлов, диалоговые окна.
- •Краткие теоретические сведения
- •Порядок выполнения работы
- •Лабораторная работа № 7 Создание операционного меню
- •Краткие теоретические сведения
- •Порядок выполнения лабораторной работы
- •Лабораторная работа № 8. Анимационные рисунки.
- •Порядок выполнения работы
Лабораторная работа № 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 |
|
|
|
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 |
|
|
|