КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Графические методыСтр 1 из 2Следующая ⇒ Модуль 4. Графические возможности языка Visual Basic 1. Понятие координатной системы 2. Графические методы 2.1 Основные графические методы 2.2 Способы задания цвета 2.3Примеры 3. Элементы управления, применяемые для работы с графикой
Без использования графики интерфейс созданного приложения будет скучным, а часто и недостаточно понятным. Графика широко применяется для выделения определенной информации на экране, для разнообразия вариантов отображения информации на экране (например, построение графиков, диаграмм), для поддержки интуитивно-понятного интерфейса приложения. В Visual Basic графику можно применять двумя основными способами: с помощью графических методов или элементов управления.
Понятие координатной системы При использовании графических методов или элементов управления нужно описывать, где именно на форме (в графическом поле) должен располагаться нужный элемент или нарисована геометрическая фигура, то есть необходимо задать координаты. В отличие от математики, в Visual Basic значение вертикальной координаты Y возрастает сверху вниз. Таким образом, получаем систему координат указанного вида:
Стандартной единицей измерения в системе Visual Basic является твип (1/1440 дюйма). Это более точная единица измерения, чем привычные для пользователей пиксели, размер которых зависит от установленного в данный момент разрешения экрана.
Графические методы Графические методы – это функции, которые содержатся в языке Visual Basic и вызываются во время работы приложения. Их можно применять для рисования изображений в форме, в графическом поле PictureBox, а также для объекта Printer. В среде Visual Basic с помощью графических методов можно решать уже ставшие традиционными графические задачи: «Неоновая реклама», «Мыльные пузыри», «Конфетти», «Падающий снег», «Змейка», строить орнаменты, имитировать движение геометрических фигур по разным траекториям и многое другое (как, например, в языке Basic). В то же время Visual Basic предоставляет новые возможности при работе с графикой (например, богатая цветовая палитра, разнообразные способы закраски, выбор единиц измерения, возможность установить новый масштаб, более простой способ создания анимации и др.). Основные графические методы: 1) Сls: объект.Cls Удаляет графические изображения, созданные в результате работы графических методов. 2) Pset: объект.Pset(X,Y) [, цвет] Построение точки, например, команда Pset (300,100), RGB(0, 0, 255) строит точку на текущей форме с координатами x = 300, y = 100 ярко-синего цвета. 3) Point: объект.Point(X,Y) Возвращает RGB-цвет точки. 4) 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). 5) Circle:Построение окружности, эллипса, дуги, сектора. объект.Circle(X,Y), радиус [, цвет, начальн. угол, конечн. угол, коэффициент сжатия] Здесь (X,Y) – координаты центра, начальный и конечный углы задаются в радианах для построения дуг (от 0 до 2p или от 0 до -2p) и секторов (углы должны принимать отрицательные значения), коэффициент сжатия задается для построения эллипса. Пример: Команда Circle(1000, 1000), 300, , 3*Pi/4, Pi/3 строит дугу окружности, а команда 6) 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 разные числовые последовательности Line (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 – правая), Программный код: 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
|