- •Донбасская государственная машиностроительная академия
 - •Методические указания
 - •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  | 
			 
  | 
			 
  | 
			 
  | 
	
		 
		
