Графические возможности языка 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
Дата добавления: 2016-02-11; просмотров: 1625;