Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
конспект лекций по программированию.doc
Скачиваний:
168
Добавлен:
22.03.2016
Размер:
1.09 Mб
Скачать

9. Графические возможности языка 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(2x) на отрезке –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.

Значения

Описание

Пример

0

Сплошная закраска цветом, указанным в свойстве FillColor

1

Графический объект не закрашивается (значение по умолчанию)

2

Горизонтальные линии

3

Вертикальные линии

4

Диагональные линии снизу вверх

5

Диагональные линии сверху вниз

6

Прямоугольная сетка

7

Диагональная сетка

При рисовании линий и контуров также можно задавать толщину и стиль. Для отрезков прямых используются свойства DrowWidth и DrowStyle, для окружностей и прямоугольников –BorderWidth и BorderStyle. Ширина задается в пикселах, для указания стиля используются числа от 0 до 5, в соответствии с табл.9.

Таблица 9. Значения свойства DrowStyle.

Значения

Описание

Пример

0

Сплошная линия

_____________

1

Длинный пунктир

— — — — —

2

Короткий пунктир

– – – – –– – –

3

Двойной пунктир

— - — - — - —

4

Вариант пунктира

— - - — - - —

При построении окружностей, эллипсов, круговых дуг и круговых секторов используется метод 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