Обратная связь
|
Графические возможности языка Visual Basic
На форме или в графическом поле можно рисовать различные графические примитивы с использованием графических методов. В табл. 6 приведены примеры использования этих методов. В качестве объекта object, куда выводятся графические примитивы, может служить сама форма (в этом случае имя объекта Form можно не указывать) или графическое окно PictureBox.
Таблица 6.Графические примитивы
Наименование
| Синтаксис и комментарии
| Точка
| object.Pset (X,Y), С
X,Y – координаты точки, С – цвет.
| Окружность
| object.circle (X, Y) , R, С
X, Y – координаты центра в выбранной системе координат, R – радиус, C – цвет.
| Дуга окружности
| object.circle (X, Y) , R, С, А, В
X, Y – координаты центра, R – радиус, C – цвет. A, B – углы дуги в радианах. дуга строится против часовой стрелки от А к В.
| Круговой сектор
| object.circle (X, Y) , R, С, –А, –В
Минус перед углами означает, что из центра к концам дуги строятся отрезки прямых, образуя угловой сектор.
| Овал
| object.circle (X, Y) , R, С, , , K
K – коэффициент сжатия овала. При 0 < K< 1 сжатие по горизонтали, при K>1 – по вертикали.
| Отрезок линии
| object.Line (Xl,Y1) –(X2,Y2), С
XI, Yl – координаты точки начала отрезка, Х2, Y2 – его конца, С – цвет.
| Прямоугольник
| object.Line(Xl,Y1) –(X2,Y2), С, В
XI, Yl — координаты левой верхней вершины прямоугольника, Х2, Y2 — координаты правой нижней вершины, С – цвет.
| Прямоугольник закрашенный
| object.Line (Xl,Y1) –(X2,Y2), С, ВF
XI, Yl — координаты левой верхней вершины прямоугольника, Х2, Y2 — координаты правой нижней вершины, С – цвет.
| Очистка нарисованного
| object.Cls
| Возвращение цвета точки с указанными координатами
| object.Point (X,Y)
| Вывод строки символов
| object.Print [output]
В качестве output может быть строковое или числовое выражение.
Вывод осуществляется от последней построенной точки изображения.
Для указания точки вывода можно использовать метод Pset(X,Y).
| Масштабирование окна вывода
| object.Scale (XI, Yl) – (X2,Y2)
(XI, Yl) и (X2,Y2) – «мировые» координаты выводимого изображения, левой верхней и правой нижней вершины окна соответственно
|
При построении изображения в графическом окне или на самой форме важным является выбор масштаба по вертикальной и горизонтальной осям. Масштаб устанавливается с помощью метода Scale. Ниже приведен пример процедуры, с помощью которой в графическое окно Picture1 при нажатии кнопки Command1 выводится график функции y=ex×Sin(2px) на отрезке –1< x<1. Результат показан на рис. 16, а текст процедуры – на рис. 17.
Рис. 16. Пример построения графика функции в графическом окне.
Private Sub Command1_Click ( )
Const Pi = 3.141529
Picture1.Scale (-1, 2) - (1, -2) ‘ масштабирование окна вывода
Picture1.Line (-1, 0) - (1, 0) ‘ построение оси «Y»
Picture1.Line (0, -2) - (0, 2) ‘ построение оси «X»
For I = -1 To 1 Step 0.25
Picture1.PSet (I, 0) ‘ вывод числовых значений под осью «X»
Picture1.Print I
Next I
For I = -3 To 3
Picture1.PSet (0, I) ‘ вывод числовых значений рядом с осью «Y»
Picture1.Print I
Next I
For X = -1 To 1 Step 0.002
Y = Exp (X) * Sin (2 * Pi * X) ‘ вывод точек графика функции Y(X)
Picture1.PSet (X, Y)
Next X
End Sub
Рис. 17. Текст программы построения графика функции
При выводе текста в графическое окно можно задавать тип и размер шрифта, а также цвет выводимых символов и линий. Для этого используются свойства объекта FontName , FontSize и ForeColor. Кроме того, свойство FontTransparent позволяет сдедать текст «прозрачным», то есть не закрывающим линии графика.
Программно цвет можно задать тремя способами.
1) Используя константы цветов (табл.7). В этом случае цвет указывается непосредственно, например: Form1.ForeColor = vbRed
Таблица 7. Константы цветов
Константа
| Цвет
| vbBlack
| Черный
| vbWhite
| Белый
| vbRed
| Красный
| vbBlue
| Синий
| vbGreen
| Зеленый
| vbYellow
| Желтый
| vbCyan
| Голубой
| vbMagenta
| Фиолетовый
| 2) С помощью функции rgb (Red-Green-Blue). Значение каждого из цветов меняется от 0 до 255. Например,
Form1.ForeColor = RGB( 255, 0, 0)
означает, что цвет символов будет ярко-красный.
Для закрашивания фигур используются свойство FillColor объектов Form и PictureBox. Цвет задается так же, как и для линий – либо с помощью констант цветов, ли с помощью функции RGB.
Кроме цвета, можно указать и способ закрашивания (свойствоFillStyle). В табл.8 приведены значения этого свойства и описание способа закрашивания.
Таблица 8. Значения свойства FillStyle.
Значения
| Описание
| Пример
|
| Сплошная закраска цветом, указанным в свойстве FillColor
|
|
| Графический объект не закрашивается (значение по умолчанию)
|
|
| Горизонтальные линии
|
|
| Вертикальные линии
|
|
| Диагональные линии снизу вверх
|
|
| Диагональные линии сверху вниз
|
|
| Прямоугольная сетка
|
|
| Диагональная сетка
|
|
При рисовании линий и контуров также можно задавать толщину и стиль. Для отрезков прямых используются свойства DrowWidth иDrowStyle, для окружностей и прямоугольников –BorderWidth и BorderStyle. Ширина задается в пикселах, для указания стиля используются числа от 0 до 5, в соответствии с табл.9.
Таблица 9. Значения свойства DrowStyle.
Значения
| Описание
| Пример
|
| Сплошная линия
| _____________
|
| Длинный пунктир
| — — — — —
|
| Короткий пунктир
| – – – – –– – –
|
| Двойной пунктир
| — - — - — - —
|
| Вариант пунктира
| — - - — - - —
|
При построении окружностей, эллипсов, круговых дуг и круговых секторов используется метод Circle объектов Form и PictureBox.
В качестве примера на рис. 12 приведен текст процедуры, в результате работы которой на экранной форме рисуются окружность, эллипс, дуга и круговой сектор.
Private Sub Form_Click()
Form1.BackColor = vbWhite
Form1.Scale (0, 10)-(10, 0)
DrawWidth = 2
pi = 3.141529
Form1.Circle (2, 7), 1 ' окружность
Form1.Circle (5, 7), 1, , , , 2 ' эллипс К = 2
Form1.Circle (8, 7), 1, , , , 0.5 ' эллипс К = 0,5
Form1.Circle (2, 4), 1, , 0, pi ' дуга от 0 до pi
Form1.Circle (5, 4), 1, , 0, pi / 2 ' дуга от 0 до pi / 2
Form1.Circle (8, 4), 1, , -0.00001, -pi / 2 ‘ круговой сектор
DrawWidth = 1 ' построение координатных линий
DrawStyle = 1
' Form1.Line (8, 0)-(8, 10)
Form1.Line (5, 0)-(5, 10)
Form1.Line (2, 0)-(2, 10)
Form1.Line (0, 4)-(10, 4)
Form1.Line (0, 7)-(10, 7)
End Sub
Рис. 18. Текст программы построения графика функции
Примечание. Следует обратить внимание на то, что при построении сектора, соответствующего дуге от 0 до pi/2, начальный угол задан не нулевым, а очень малым отрицательным числом. Если вместо него подставить 0, сектор построен не будет.
Результаты работы программы представлены на рис.19.
Рис. 19. Фигуры, построенные с помощью программного кода рис.18
|
|