Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по VBasic.doc
Скачиваний:
11
Добавлен:
17.09.2019
Размер:
1.16 Mб
Скачать

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

Вспоминаем, что такое метод. Это одна из характеристик класса объектов VB. Метод – это некоторое действие, которое может выполнять VB над данным объектом.

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

Метод Cls – объект полностью очищается от всего, что было построено на нем с использованием графических методов или метода Print.

Picture1.Cls Form1.Cls

Упражнение1. На форме 2 кнопки. При нажатии на одну кнопку на форме печатается текстовая информация, при нажатии на вторую все стирается.

Метод Scale – c его помощью можно задать на данном объекте подходящую для задачи декартову систему координат. Объекты Form и PictureBox имеют абсолютные координаты – положение на экране и положение на экранной форме. Эти координаты измеряются в твипах. Это достаточно большие величины, как Вы помните, и пользоваться ими неудобно. VB позволяет задать новую систему координат, которая будет привязана к данному объекту.

[имя объекта.] Scale (x1,y1)-(x2,y2)

x1, y1 – новые координаты левого верхнего угла

x2, y2 – новые координаты правого нижнего угла

Если имя объекта отсутствует, то метод по умолчанию применяется экранной формой. Координаты могут быть и положительные и отрицательные.

Например:

frm2.Scale (0,0) – (200,100) - на форме с именем frm2 будет установлена система координат с началом в левом верхнем углу, размеры формы – 200 условных единиц по горизонтали и 100 по вертикали.

pct1.Scale (-10, 10)-(10,-10) – в графическом окне начало координат в центре, координаты Х и Y меняются от -10 до +10.

Упражнение2. Напишите командные строки, устанавливающие различные системы координат для Форм и Графических Окон. Сравните и проверьте друг у друга полученное.

Задание1. На форме расположены рисунок и кнопка. По каждому нажатию кнопки свойство Left рисунка увеличивается на 1. Сначала выполните программу при абсолютных координатах, а потом при помощи метода Scale установите новую систему координат ( ширина от 0 до 10) и сравните работу программы с предыдущей.

Вместо применения метода Scale можно воспользоваться начальной установкой значений свойств объекта из категории Scale. В Окне свойств можно работать в двух режимах Alphabetic (свойства расположены в алфавитном порядке) и Categorized (свойства расположены по категориям). Выберите сейчас Categorized и выберите раздел Scale. Свойства. Для работы в собственной системе координат надо сначала установить свойство ScaleMode = 0 (User), затем установить значения свойств ScaleWidth, ScaleHeight, ScaleLeft, ScaleTop (ширина, высота, левый верхний край объекта в новых координатах). Причем, если хотим, чтобы начало координат было в центре (как в математике), высота должна быть отрицательным числом.

Метод Pset – рисование точки.

[ Имя объекта.] Pset (x, y) [ ,Цвет ]

Имя объекта может отсутствовать (по умолчанию экранная форма). Цвет – выражение (число типа Long), которым в VB кодируется цвет, если цвет отсутствует, то по умолчанию он совпадает со свойством ForeColor объекта. Удобно в качестве цвета использовать константы VB.

Размер точки устанавливается при помощи свойства DrawWidth в окне свойств или в программе, например: Pict1.DrawWidth = 3.

Если метод Print применить после любого графического метода, то вывод символов будет в точке, чуть ниже и правее точки, в которой кончилось рисование.

Задание2. На форме нарисовать несколько точек различного размера и цвета. Около каждой точки подписать с помощью Print ее координаты.

Для создания интересных программ можно использовать событие перемещения мыши

Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Вспомним значения параметров этого события:

Button – целое число, сообщающее о том, какие кнопки мыши нажаты

Shift - целое число, сообщающее какие из клавиш на клавиатуре нажаты

Х –координата указателя мыши по горизонтали

Y - координата указателя мыши по вертикали

Задание3. Установите толщину рисования точки побольше. В событии MouseMove при нажатой левой клавише всегда должна рисоваться точка. Цвет точки определяется статической переменной, которая при каждом событии увеличивается. При нажатии на правую кнопку форма очищается.

Метод Line – позволяет чертить на объекте, к которому он применен, отрезки, закрашенные и незакрашенные прямоугольники.

[Имя объекта.] Line (x1,y1) – (x2,y2) [, Цвет [, Флаг]]

x1,y1 и x2,y2 – координаты начала и конца отрезка или координаты двух углов прямоугольника (противоположные вершины)

Цвет – аналогично как в Pset

Флаг - если отсутствует – это линия

если символ ‘B’ - это прямоугольник

если символ ‘BF’ - это закрашенный прямоугольник

При использовании символа ‘В’ можно менять свойство FillStyle для получения разного типа закраски прямоугольника.

Свойство FillColor – устанавливает цвет заливки фигуры. Но при этом свойство FillStyle должно быть = 0 (Solid).

Так же, как и в Pset, можно использовать свойство DrawWidth для изменения толщины линий.

Задание4. На форме начертите несколько отрезков разного цвета и толщины (вертикальный, горизонтальный, наклонный) и несколько прямоугольников разного типа закраски. Каждую фигуру надо подписать (например: 2 пр – к, 4 отрезок).

Графические методы можно применять для красочного динамического изображения графиков. Для этого необходимо изобразить координатные оси с помощью метода Line, обозначить наиболее важные точки, провести пунктиром контрольные линии. Для постепенного рисования использовать таймер. При каждом событии таймера координата Х увеличивается на небольшую величину, вычисляется для нее координата Y и рисуется точка (Х,Y).

Задание5. На объекте PictureBox установите новую систему координат. X и Y изменяются от –5 до 5, координата (0,0) в центре. С помощью инструмента Line нарисовать координатные оси. Расположение по центру установить в окне свойств. В программе должна быть нарисована в центре точка, отмечены точки ±Р/2, ±Р, ±3Р/2, ±2Р с надписями. На форме две кнопки sin и cos. По нажатию на кнопку рисуется соответствующий график.

Домашнее задание.

        1. Дополнить предыдущую программу: рисование тангенса и котангенса, обозначить координатные оси буквами X,Y и стрелками. Около каждой нарисованной кривой должно появиться ее наименование. Обозначить пунктирами вспомогательные вертикали и горизонтали ( ±1 ).

        2. На форме три Комбинированных Окна. В одном выбираются различные режимы свойства BorderStyle , во втором – FillStyle. Третье окно определяет цвет фигуры. Применить оператор SelectCase. По одной Командной кнопке рисуется линия, по другой прямоугольник, предварительно выбирается цвет, вид линий и заливка.

Контрольные вопросы:

  1. Когда и зачем применяем метод Scale, к каким объектам?

  2. Какие свойства и какого объекта надо менять, чтобы получить рисунки различного цвета, с различными типами заливки и различной толщиной?

  3. Как подписать рисунок на форме (надпись в определенном месте).

  4. Как очистить Форму и Графическое Окно?

  5. Что определяет параметр Флаг в методе Line?

УРОК 16

Цель урока. Изучение графических методов Circle и Pset и графического элемента управления Shape. Научить студентов рисовать на компьютере с применением событий MouseUp и MouseDown.

Метод Circle – рисование окружностей, эллипсов, дуг, кругов и секторов круга.

[Имя объекта.] Circle (x,y), Радиус [, Цвет [, Угол1, Угол2 [, КоэффициентСжатия]]]

Обязательными параметрами в этом методе являются только:

x,y – координаты центра круга и радиус круга. Если не указаны остальные параметры, то рисуется полная окружность. Внутренняя заливка круга определяется установленными свойствами FillStyle и FillColor формы.

Угол1 и Угол2 – начальный или конечный углы дуги или сектора (измеряются в радианах). Если перед ненулевым значением угла стоит ‘-’, то рисуется не дуга, а сектор. При рисовании дуги или сектора движение «пера» происходит всегда против часовой стрелки от Угла1 до Угла2. При рисовании дуг целесообразно использовать константу ПИ = 3.14.

К оэффициентСжатия - положительное число,

если > 1 – рисуется эллипс, вытянутый по вертикали, КфСж =

если < 1 – вытянутый по горизонтали.

Если не указаны углы, то рисуется полный круг или эллипс.

При отсутствии каких-либо параметров, и если они не последние, надо обязательно обозначить их соответствующими запятыми.

Примеры:

1. Окружность красного цвета с радиусом=20:

Circle(100,100), 20,vbred.

2. Для рисования закрашенного круга можно применить точно такой же оператор, но предварительно изменив свойство

FillStyle ( 0) в Окне Свойств или в программе.

3. Вертикальный эллипс: Circle(100,100), 20, , , , 2

(КфСж обязательно должен стоять после пятой запятой).

4 . Горизонтальный эллипс: Circle(100,100), 20, , , , 0.4

(КфСж обязательно должен стоять после пятой запятой).

В VB применяется десятичная точка, а не запятая!!!

5. Дуга : Circle(100,100), 20, QBColor(8),0 ,3.14

6 . Дуга : p= 3.14 Circle(100,100), 20, QBColor (8),3*p/2,p/2

7. Сектор: Circle(100,100), 20, QBQolor(11), -0.001, -p/2

При рисовании секторов нельзя указывать параметр, равный 0, при необходимости надо поставить очень маленькое число.

Задание1. На форме начертите несколько фигур разного цвета и толщины и разного типа закраски (окружность, круг, эллипсы, дуги, сектора круга). В кругах и эллипсах обозначьте центр и подпишите его координаты.

Метод Point – считывает цвет пикселя. Этот метод, подобно функции, возвращает значение – число (типа Long), определяющий цвет точки с координатами x, y.

Цвет = Point(x,y)

В программе можно определить с помощью метода Point цвет, запомнить значение в контейнерной переменной и использовать

Задание2. Добавьте в предыдущее задание. По событию Form_MouseMove сначала определите цвет формы, используя аргументы события Х, Y и Button. При нажатой правой клавиши, передвигая мышку, запоминаете цвет в статической переменной, а при нажатой левой клавише, передвигая мышку, рисуете точку. Рекомендуется толщину рисования установить больше.

Метод Point удобно применять с использованием событий МouseDown и МouseUp