- •Модуль 4. Графические возможности языка Visual Basic
- •Понятие координатной системы
- •Графические методы
- •Сls: объект.Cls
- •Pset: объект.Pset(X,y) [, цвет]
- •Line: объект.Line(x1,y1)-(x2,y2) [, цвет, b/bf]
- •Print: объект. Print числовое или строковое выражение
- •Элементы управления, применяемые для работы с графикой
-
Print: объект. Print числовое или строковое выражение
Вывод текста, начиная с текущей позиции, например, команда Print “Значение функции равно”; y выводит на форму, начиная с текущей позиции, ответ задачи.
Если в методе Print несколько значений, они могут разделяться запятой (тогда каждое значение печатается в своей колонке, ширина которой 14 символов) или точкой с запятой (тогда значения печатаются в одной строке рядом друг с другом).
Пример: Print “y= “; y, “z= “; z
Каждый метод Print выводит значения в новую строку. Когда, вызывая новый метод Print, необходимо продолжить печать в той же строке, надо в конце предыдущей команды Print поставить запятую или точку с запятой: Print “Расстояние “; : Print s
В методе Print можно использовать функции Spc(n) (задает количество пробелов перед печатаемым значением) и Tab(n) (выполняет печать, начиная с n-ой позиции строки), например: команда Print Tab(20) “задача” печатает слово “задача”, начиная с 20-ой позиции строки.
Способы задания цвета:
-
В Visual Basic имеются встроенные константы для обозначения некоторых цветов: vbBlack, vbRed, vbGreen, vbYellow, vbBlue, vbMagenta, vbCyan, vbWhite.
-
Значение цвета можно определить также с помощью функции RGB(r, g, b), где параметры r, g, b принимают целые значения от 0 до 255 и определяют интенсивность красной, зеленой и синей составляющей цвета. Этим способом можно задать более 16 миллионов цветов. Например, следующая команда строит линию серого цвета (поровну красного, зеленого и синего компонента): Line(100, 100) – (300, 400), RGB(200, 200, 200)
-
Еще одна полезная функция для работы с цветом QBColor(c), где параметр с принимает целые значения от 0 до 15, а функция возвращает соответствующее шестнадцатеричное значение цвета. Например, команда Pset(200, 500), QBColor(4) строит на форме точку красным цветом.
Замечание: Если в графическом методе цвет явно не определен, то для построения соответствующего элемента используется цвет, указанный в свойстве ForeColor текущего объекта.
При работе с графическими методами используются свойства объектов (формы, графического поля, принтера), которые воспроизводят это изображение:
ForeColor: значение цвета точки в методе Pset и цвета границ фигур в методах Line, Circle (если цвет явно не указан в методе), а также цвет текста в методе Print.
DrawWidth: размер точки в методе Pset и толщина линий в методах Line, Circle.
DrawStyle: стиль линии в методах Line, Circle.
FillColor: цвет заполнения контура в методах Line, Circle.
FillStyle: стиль заполнения в методах Line, Circle.
Font: шрифт и размер текста в методе Print.
CurrentX, CurrentY: координаты текущей точки в методе Line и первого символа в методе Print (эти свойства задаются только в программном коде).
Например, построение треугольника, начиная с указанной текущей точки:
CurrentX=1500 : CurrentY=500
Line - (3000, 2000) : Line - (1500, 2000) : Line - (1500, 500)
AutoRedraw: перерисовка изображения. Определяет, будет ли результат работы графических методов автоматически обновляться в окне, если окно было скрыто или свернуто.
Пример1: определить, находится ли точка, на которой пользователь щелкнул мышью, внутри красного прямоугольника, нарисованного во время загрузки формы (проект «Прямоугольник»).
Private Sub Form_Load()
Form1.AutoRedraw = True
Line (100, 200)-(1500, 2500), vbRed, BF
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Point(X, Y) = vbRed Then
MsgBox "Точка (" & X & "," & Y & ") находится в прямоугольнике"
Else
MsgBox "Точка (" & X & "," & Y & ") находится вне прямоугольника"
End If
End Sub
Пример2: после щелчка по кнопке Построить на форме строится линия произвольного размера и цвета. В проекте предусмотрена возможность удалить изображение.
Private Sub Command1_Click()
Randomize ‘дает возможность при каждом запуске программы генерировать с помощью ‘Rnd разные числовые последовательности
L ine (Rnd * Form1.Width, Rnd * Form1.Height)-(Rnd * Form1.Width, Rnd * Form1.Height), _RGB(Rnd * 255, Rnd * 255, Rnd * 255)
End Sub
Private Sub Command2_Click()
Cls
End Sub
Пример3: при нажатии левой кнопки мыши на форме строятся разноцветные окружности с центром в точке положения курсора (проект «Рисунок»).
В процедуре перемещения указателя мыши MouseMove параметр Button дает возможность определить, какая кнопка мыши нажата (1 – левая, 2 – правая), X, Y – текущие координаты курсора мыши.
Программный код:
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then Circle (X, Y), 200, RGB(Rnd * 255, Rnd * 255, Rnd * 255)
End Sub