Модуль Графические возможности языка Visual Basic



Скачать 82.61 Kb.
Дата12.11.2016
Размер82.61 Kb.

Программирование на языке Visual Basic. Бурденко Е.Э.

Центр информатизации и оценки качества образования


Модуль 4. Графические возможности языка Visual Basic


1. Понятие координатной системы

2. Графические методы

2.1 Основные графические методы

2.2 Способы задания цвета

2.3Примеры

3. Элементы управления, применяемые для работы с графикой


Без использования графики интерфейс созданного приложения будет скучным, а часто и недостаточно понятным. Графика широко применяется для выделения определенной информации на экране, для разнообразия вариантов отображения информации на экране (например, построение графиков, диаграмм), для поддержки интуитивно-понятного интерфейса приложения.

В Visual Basic графику можно применять двумя основными способами: с помощью графических методов или элементов управления.




  1. Понятие координатной системы


При использовании графических методов или элементов управления нужно описывать, где именно на форме (в графическом поле) должен располагаться нужный элемент или нарисована геометрическая фигура, то есть необходимо задать координаты. В отличие от математики, в Visual Basic значение вертикальной координаты Y возрастает сверху вниз.

Таким образом, получаем систему координат указанного вида:



Стандартной единицей измерения в системе Visual Basic является твип (1/1440 дюйма). Это более точная единица измерения, чем привычные для пользователей пиксели, размер которых зависит от установленного в данный момент разрешения экрана.




  1. Графические методы


Графические методы – это функции, которые содержатся в языке Visual Basic и вызываются во время работы приложения. Их можно применять для рисования изображений в форме, в графическом поле PictureBox, а также для объекта Printer. В среде Visual Basic с помощью графических методов можно решать уже ставшие традиционными графические задачи: «Неоновая реклама», «Мыльные пузыри», «Конфетти», «Падающий снег», «Змейка», строить орнаменты, имитировать движение геометрических фигур по разным траекториям и многое другое (как, например, в языке Basic). В то же время Visual Basic предоставляет новые возможности при работе с графикой (например, богатая цветовая палитра, разнообразные способы закраски, выбор единиц измерения, возможность установить новый масштаб, более простой способ создания анимации и др.).

Основные графические методы:

  1. Сls: объект.Cls

Удаляет графические изображения, созданные в результате работы графических методов.

  1. Pset: объект.Pset(X,Y) [, цвет]

Построение точки, например, команда Pset (300,100), RGB(0, 0, 255) строит точку на текущей форме с координатами x = 300, y = 100 ярко-синего цвета.

  1. Point: объект.Point(X,Y) Возвращает RGB-цвет точки.

  2. Line: объект.Line(X1,Y1)-(X2,Y2) [, цвет, B/BF]

Построение линии, прямоугольника (если указан параметр B), закрашенного прямоугольника (если указан параметр BF), например:

Команда Line(200, 300) – (600, 800), vbRed строит на форме линию красным цветом, а команда Line(200, 300) – (600, 800), vbBlue, В строит на форме прямоугольник (прямоугольник задается своей диагональю).

Если значения (X1,Y1) в команде не указано, то построение начнется в текущей точке, например, Line - (2000, 300).


  1. Circle: Построение окружности, эллипса, дуги, сектора.

объект.Circle(X,Y), радиус [, цвет, начальн. угол, конечн. угол, коэффициент сжатия]

Здесь (X,Y) – координаты центра, начальный и конечный углы задаются в радианах для построения дуг (от 0 до 2 или от 0 до -2) и секторов (углы должны принимать отрицательные значения), коэффициент сжатия задается для построения эллипса.

Пример: Команда Circle(1000, 1000), 300, , 3*Pi/4, Pi/3 строит дугу окружности, а команда
Circle(1000, 1000), 300, , , , 2 строит вытянутый по вертикальной оси эллипс.


  1. 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-ой позиции строки.

Способы задания цвета:


  1. В Visual Basic имеются встроенные константы для обозначения некоторых цветов: vbBlack, vbRed, vbGreen, vbYellow, vbBlue, vbMagenta, vbCyan, vbWhite.

  2. Значение цвета можно определить также с помощью функции RGB(r, g, b), где параметры r, g, b принимают целые значения от 0 до 255 и определяют интенсивность красной, зеленой и синей составляющей цвета. Этим способом можно задать более 16 миллионов цветов. Например, следующая команда строит линию серого цвета (поровну красного, зеленого и синего компонента): Line(100, 100) – (300, 400), RGB(200, 200, 200)

  3. Еще одна полезная функция для работы с цветом 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


  1. Элементы управления, применяемые для работы с графикой


Простейшими элементами управления для работы с графикой являются Line и Shape.

  1. Л
    иния (
    Line): используются для размещения на форме линий различной толщины и стилей. Некоторые свойства:

Name: по умолчанию Line1

X1, Y1, X2, Y2: координаты начальной и конечной точек

BorderColor: цвет линии, BorderWidth: толщина линии

BorderStyle: стиль линии (если свойство BorderWidth=1, то может принимать целые значения от 0 до 6: сплошная, пунктирная, штрих-пунктирная и другие стили).

  1. Фигура (Shape): используются для размещения на форме геометрических фигур (прямоугольник, квадрат, овал, окружность, скругленный прямоугольник, скругленный квадрат).

Некоторые свойства: Name: по умолчанию Shape1

Shape: задает тип фигуры (целые значения от 0 до 5)

BorderColor: цвет линии границы, BorderWidth: толщина линии границы

BorderStyle: стиль линии границы (если BorderWidth=1, то целые значения от 0 до 6)

FillColor: цвет заполнения фигуры, FillStyle: стиль заполнения (целые значения от 0 до 7: прозрачный, сплошная заливка, вертикальные линии и другие стили).

Отличие линий и фигур от других элементов управления заключается в том, что для них не обрабатываются никакие события.

П
ример: в зависимости от заданного значения свойства Shape строятся разные типы фигур (проект «Фигуры»).

Private Sub HScroll1_Change()

Shape1.Shape = HScroll1.Value

Label2.Caption = HScroll1.Value

End Sub
Private Sub HScroll1_Scroll()

HScroll1_Change

End Sub
В Visual Basic существуют специальные элементы управления для размещения на форме готовых изображений, хранящихся в графических файлах формата JPG, GIF, BMP, ICO.



  1. Поле образа (Image) – элемент управления, который помещает изображение в нужное место формы, может изменять его размеры и пропорции.

Некоторые свойства:

Name: по умолчанию Image1

Stretch: способ подгонки изображения

а) Если Stretch=True, то размер загружаемого изображения подгоняется под размер Image

б) Если Stretch=False, то размер Image подгоняется под размер загружаемого изображения

Picture: путь доступа к файлу, хранящему загружаемое в Image изображение

П
ример: представлено одно и то же изображение, помещенное в элементы Image с разным значением свойства Stretch: в первом изображение исходного размера (Stretch = False), а в других показаны возможные эффекты при изменении размера Image (Stretch = True).



  1. Графическое поле (Picture Box) – элемент управления, который помещает изображение в нужное место формы, а также имеет собственную систему координат и позволяет использовать графические методы и анимацию. В отличие от элемента Image, элемент Picture Box не может изменять исходный размер изображения.

Некоторые свойства: Name: по умолчанию Picture1

AutoSize:

а) Если AutoSize =True, то размер Picture подгоняется под размер загружаемого изображения

б) Если AutoSize =False, то размер Picture не подгоняется под размер загружаемого изображения

Picture: путь доступа к файлу, хранящему загружаемое в Picture изображение

AutoRedraw: перерисовка изображения

П
ример 1
: представлено одно и то же изображение, помещенное в элементы Picture Box, у которых разные размеры и значения свойства AutoSize. В последнем случае графическое поле подгоняется по размеру изображения.

Пример 2: На форму помещаем элемент Picture и командную кнопку Нарисовать, после щелчка по которой создается «картина» из 50 разноцветных прямоугольников («Авангард»).

П
рограммный код:

Private Sub Command1_Click()

Dim i As Integer 'номер фигуры

Dim x1, x2, y1, y2 As Integer 'координаты фигуры

Randomize Timer

Picture1.Cls 'очищаем графическое поле

'строится 50 закрашенных прямоугольников

'координаты и цвет задаются случайным образом

For i = 1 To 50

x1 = Picture1.Width * Rnd

y1 = Picture1.Height * Rnd

x2 = Picture1.Width * Rnd

y2 = Picture1.Height * Rnd

Picture1.Line (x1, y1)-(x2, y2), RGB(Rnd * 255, Rnd * 255, Rnd * 255), BF

Next i


End Sub
Замечание: Во время выполнения приложения для загрузки изображения на форму, командную кнопку, в элементы Image и Picture Box применяется функция LoadPicture():

Image1.Picture = LoadPicture(“C:\Рисунки\ris1.bmp”)

Для удаления изображения надо вместо полного имени файла указать пустую строку:



Picture1.Picture = LoadPicture(“”)







База данных защищена авторским правом ©bezogr.ru 2016
обратиться к администрации

    Главная страница