- •Лабораторный практикум
- •3 Часть
- •Visual Basic. Основы программирования
- •Дмитров 2012
- •Содержание
- •Предисловие
- •Выбор в программе
- •ВетвлениеIf...Then...Else
- •Линейный формат:
- •Блочный формат:
- •Оператор множественного выбораSelectCase
- •Организация циклов
- •Цикл со счетчикомFor...Next(Для ... Следующий)
- •Универсальный циклDo...Loop(Делать ... Цикл)
- •Циклы с предусловием.
- •Циклы с постусловием
- •Программирование графики
- •Лабораторно-практические работы Общие рекомендации по выполнению работ
- •Лабораторно-практическая работа № 1
- •Лабораторно-практическая работа № 2
- •Лабораторно-практическая работа № 3
- •Лабораторно-практическая работа № 4
- •Лабораторно-практическая работа № 5
- •Лабораторно-практическая работа № 6
- •Лабораторно-практическая работа № 7
- •Лабораторно-практическая работа № 8
- •3 Часть
- •Лабораторно-практическая работа № 9
- •1 Часть
- •2 Часть
- •Лабораторно-практическая работа № 10
- •Лабораторно-практическая работа № 11
- •2 Часть
- •Лабораторно-практическая работа № 12
- •Лабораторно-практическая работа № 13
- •Задания для самостоятельного выполнения
Лабораторно-практическая работа № 9
Тема: Программирование графики
Цель: Закрепить навыки использования графических методов
1 Часть
Постановка задачи: Нарисовать узор, который образован из нескольких вложенных квадратов. Стороны первого квадрата параллельны осям координат экрана. Вершины каждого последующего квадрата – это точки на сторонах предыдущего квадрата, делящие эти стороны в отношении 0,08
Порядок выполнения
Откройте новый проект.
Установите на форме следующие объекты и измените им свойства:
-
Объект
Свойство
Значение
Командная кнопка
Name
CmdResult
Caption
Нарисуй
Рамка
Caption
Выбери цвет линий узора
Картинка
Name
Picture1
Height
3000
Width
3000
Переключатели
Name
Opt1
Caption
Разноцветный
Name
Opt2
Caption
Черный
В разделе общих объявлений набрать
Dim x1, y1, x2, y2, x3, y3, x4, y4, k
В окне кода процедуры обработки события Loadдля объектаFormнабрать
Picture1.Cls
x1 = 0 : y1 = 0
x2 = Picture1.Width : y2 = 0
x3 = Picture1.Width : y3 = Picture1.Height
x4 = 0 : y4 = Picture1.Height
k = 0.1
В окне кода процедуры обработки события Clickдля объектаCmdResultнабрать
If Opt1.Value = True Then
Picture1.ForeColor = QBColor(Int(Rnd * 15) + 1)
Else
Picture1.ForeColor = QBColor(0)
End If
Picture1.Line (x1, y1)-(x2, y2)
Picture1.Line (x2, y2)-(x3, y3)
Picture1.Line (x3, y3)-(x4, y4)
Picture1.Line (x4, y4)-(x1, y1)
X0 = x1
Y0 = y1
x1 = x1 + (x2 - x1) * k
y1 = y1 + (y2 - y1) * k
x2 = x2 + (x3 - x2) * k
y2 = y2 + (y3 - y2) * k
x3 = x3 + (x4 - x3) * k
y3 = y3 + (y4 - y3) * k
x4 = x4 + (X0 - x4) * k
y4 = y4 + (Y0 - y4) * k
Проверьте работу программы, выполняя многократное нажатие кнопки «Нарисуй»
Измените у формы свойство DrawWidth (увеличьте значение). Просмотрите работу программы
Добавьте на форму еще две командные кнопки, одна из которых выполняет функцию очистки графического окна, другая позволяет восстановить размеры исходного квадрата. Результаты работы своей программы сравните с образцом.
Самостоятельно разработать программу, которая начертить узор, описанный в постановке задачи, но составленный из а) треугольников; б) пятиугольников; в) шестиугольников
2 Часть
Откройте новый проект.
Установите на форме следующие объекты и измените им свойства:
-
Объект
Свойство
Значение
Командные кнопки
Name
CmdStart
Caption
Старт
Name
CmdStop
Caption
Стоп
Таймер
Name
Timer1
Форма
DrawWidth
10
В окне кода процедуры обработки события Timer для объекта Timer1 набрать
Dim x, y
Dim R, G, B
x = Form1.ScaleWidth * Rnd()
y = Form1.ScaleHeight * Rnd()
R = Int(256 * Rnd())
G = Int(256 * Rnd())
B = Int(256 * Rnd())
Form1.PSet (x, y), RGB(R, G, B)
Самостоятельно набери программный код для командных кнопок, одна из них должна включать таймер, другая – останавливать.
Результат показать преподавателю.