- •Тема: «Графика в Visual Basic»
- •1. Объекты для работы с изображениями
- •1.1. Элемент управления image
- •1.2. Элемент управления picturebox
- •2. Графическое оформление приложений. Иллюстрации
- •2.1. Загрузка изображения в процессе разработки приложения
- •2.2. Загрузка изображения программно при выполнении приложения
- •3. Программирование методов для объектов в vb на примере графических методов
- •3.1. Использование объекта PictureBox для программирования графики
- •3.2. Метод Scale
- •3.3. Метод Line
- •3.4. Метод Circle
- •3.5. Метод Point
- •3.6. Метод Pset
- •3.7. Метод Сls
- •3.8. Метод PaintPicture
- •3.9. Метод Print
- •4. Упражнения
3.9. Метод Print
Метод print выводит (печатает) текст в указанный объект или окно Immediate. Синтаксис этого метода следующий:
object.Print [outputList]
где:
object – объект, в котором используется метод. Если объект не указан, то по умолчанию используется форма;
outputList – строковое выражение или список выражений, выводимых в объекте.
4. Упражнения
Упражнение 1
Создадим проект, изображающий на одной форме решетку (рис. 11.6), переход (рис. 11.7), глаз (рис. 11.8) и шарик, надувающийся из центра PictureBox окружностями случайных цветов гаммы RGB (рис. 11.9).
Реализация проекта
1. Создайте новый проект.
2. Разместите на форме графическое окно Picture1 и 4 кнопки.
3. Программный код приложения:
Option Explicit
Private Sub Form_Load()
Picture1.Scale (0, 150)-(250, 0)
End Sub
Private Sub Command1_Click() 'процедура для кнопки РЕШЕТКА
Dim x As Integer, y As Integer
Picture1.Cls
For x = 0 To 250 Step 10 'вертикальные линии
Picture1.Line (x, 0)-(x, 150)
Next
For y = 0 To 150 Step 10 'горизонтальные линии
Picture1.Line (0, y)-(250, y)
Next
End Sub
Private Sub Command2_Click() 'процедура для кнопки ПЕРЕХОД
Dim y As Integer
Picture1.Cls
'серая дорога
Picture1.Line (0, 150)-(250, 0), RGB(100, 100, 100), BF
'белые полосы
For y = 0 To 150 Step 20
Picture1.Line (80, y)-(170, y + 10), RGB(255, 255, 255), BF
Next
End Sub
Private Sub Command3_Click() 'процедура для кнопки ГЛАЗ
Dim i As Integer
Picture1.Cls
Picture1.FillStyle = 0
Picture1.FillColor = RGB(0, 0, 255)
Picture1.Circle (125, 75), 20
Picture1.FillStyle = 1
For i = 3 To 8
Picture1.Circle (125, 75), 70, , , , i * 0.1
Next
End Sub
Private Sub Command4_Click() 'процедура для кнопки ШАРИК
Dim r As Integer
Picture1.Cls
For r = 1 To 70
Picture1.Circle (125, 75), r, _
RGB(Int(Rnd() * 256), Int(Rnd() * 256), Int(Rnd() * 256))
Next
End Sub
4. Сохраните и протестируйте проект.
Рис. 11.6. Решетка
Рис. 11.7. Переход
Рис. 11.8. Глаз
Рис. 11.9. Шарик
Упражнение 2
Создадим проект так, чтобы строились графики функций y = sinx и y = x3, а также были выведены вертикальные линии координатной сетки.
Реализация проекта
1. Создайте новый проект.
2. Разместите на форме графическое окно Pic1, в котором будет производиться построение графика.
3. Разместите на форме кнопку Cmd1 и создайте событийную процедуру построения графика, в которой будет:
установлен масштаб;
в цикле осуществлено построение графиков функций;
нарисованы оси координат и в циклах напечатаны на них числовые шкалы;
в цикле выведены вертикальные линии координатной сетки.
4. Программный код приложения:
Option Explicit
Private Sub Cmd1_Click()
Dim X As Single, i As Integer
Dim Xmin As Integer, Xmax As Integer, Ymin As Integer, Ymax As Integer
Xmin = -5: Xmax = 5
Ymin = -2: Ymax = 2
'Задание масштаба
Pic1.Scale (Xmin, Ymax)-(Xmax, Ymin)
'Координатная сетка
For i = Xmin To Xmax
Pic1.Line (i, Ymax)-(i, Ymin)
Next i
'Ось Х
Pic1.Line (Xmin, 0)-(Xmax, 0)
For i = Xmin To Xmax
Pic1.PSet (i, 0)
Pic1.Print i
Next i
'Ось Y
Pic1.Line (0, Ymax)-(0, Ymin)
For i = Ymin To Ymax
Pic1.PSet (0, i)
Pic1.Print i
Next i
'Построение графиков
For X = Xmin To Xmax Step 0.01
Pic1.PSet (X, Sin(X)), RGB(0, 0, 255)
Pic1.PSet (X, X ^ 3), RGB(255, 0, 0)
Next X
End Sub
5. Сохраните и протестируйте проект.
Рис. 11.10. Графики функций
Примечание. Если Вам не нравиться прерывистый вид графика, то его можно рисовать не точками, а линиями:
Pic1.CurrentX = Xmin
Pic1.CurrentY = Sin(Xmin)
For X = Xmin To Xmax Step 0.01
Pic1.Line -(X, Sin(X)), RGB(0, 0, 255)
Next X
Pic1.CurrentX = Xmin
Pic1.CurrentY = Xmin^3
For X = Xmin To Xmax Step 0.01
Pic1.Line - (X, X ^ 3), RGB(255, 0, 0)
Next X
5. Задания для самостоятельного выполнения
1. Разработать приложение, рисующее следующие государственные флаги стран мира:
2. Разработать приложение, рисующее следующие цветные изображения:
а
)
б) лодка с парусом на волнах;
в) кружка с блюдцем;
г) снеговик с метлой;
д) сюжет по выбору.
3. Разработать приложение, выполняющее построение графика функции в заданных пределах.
Вариант |
Функция |
Вариант |
Функция |
1 |
|
9 |
|
2 |
|
10 |
|
3 |
|
11 |
|
4 |
|
12 |
|
5 |
|
13 |
|
6 |
|
14 |
|
7 |
|
15 |
|
8 |
|
16 |
|
4. Выполните следующие задания, используя циклы при построении подобных объектов:
4.1. Штанга. Разработать приложение, рисующее штангу с числом кругов, которое вводится после запуска программы.
4.2. Дом. Разработать приложение, рисующее многоэтажный дом с окнами. Количество этажей и подъездов вводятся после запуска программы.
4.3. Пирамида. Разработать приложение, рисующее пирамиду с числом колец, которое вводится после запуска программы.
4.4. Шахматная доска. Разработать приложение, рисующее шахматную доску.
4.5. Восьмиугольник. Разработать приложение, рисующее правильный восьмиугольник с описанной около него окружностью. Размножить рисунок по вертикали с уменьшением. Длину стороны первого восьмиугольника и коэффициент подобия ввести после запуска программы.
4.6. Светофоры. Разработать приложение, рисующее горизонтальный ряд светофоров. Размер светофоров уменьшается. Коэффициент изменения ввести после запуска программы.
4.7. Светофорные круги. Разработать приложение, рисующее светофорные круги. Самые большие круги красные, средние – желтые, маленькие – зеленые.
4.8. Гирлянда. Разработать приложение, рисующее несколько одинаковых маленьких окружностей, центры которых расположены на одной большой окружности. Радиусы большой и маленьких окружностей ввести после запуска программы.
4.9. Колесо обозрения. Разработать приложение, рисующее вид спереди колеса обозрения. Количество кабинок вводится после запуска программы. Кабинки всегда висят вертикально.
4.10. Спираль. Разработать приложение, рисующее точки на спирали, радиус которой уменьшается. Сделать несколько витков. Количество витков ввести после запуска программы.
4.11. Дом. Разработать приложение, рисующее кирпичный дом с окном. Показать кирпичи.
4.12. Стеллаж. Разработать приложение, рисующее книжный стеллаж с заданным количеством полок. Книги могут иметь различные форматы, толщину и цвета корешков.
4.13. Лоскутный ковер. Разработать приложение, рисующее лоскутный ковер. Лоскутки должны быть плотно прилегающими друг к другу разноцветными квадратиками со стороной 10.
4.14. Переливающаяся окружность. Разработать приложение, рисующее окружность, соседние точки которой имеют различные цвета. Радиус окружности ввести после запуска программы.
4.15. Зеркало. Два зеркала расположены параллельно друг другу зеркальными сторонами друг к другу. На первое зеркало под углом падает луч. Разработать приложение, рисующее путь луча с учетом его отражений.
4.16. Линейка. Разработать приложение, рисующее линейку с делениями и цифрами.
