Стиль заполнения замкнутых фигур




Фигуры, которые строятся с помощью методов Line и Circle, в частности, прямоугольники, круги, эллипсы, секторы кругов и эллипсов, – могут не только заливаться каким-либо цветом или оставаться «прозрачными» (ничем не заливаться), но и заполняться другим способом.

На рисунке 19 приведён список значений свойства FillStyle, которые обеспечивают автоматическое заполнение этих фигур. Кроме уже известных Вам двух значений этого свойства (0 – Solid и 1 – Transparent) в этом списке есть ещё 6 значений, с помощью которых фигуры заполняются различными видами штриховки. Примеры приведены на том же рисунке.

 

Упражнение 6. Добавьте к приложению форму (Form 3), демонстрирующую использование различных стилей заполнения.

1. На форме установить следующие элементы:

· рамка (Frame 1);

· два переключателя (Option 1, Option 2);

· командная кнопка (Command 1);

· графическое поле (Picture 1).

2. Расположить их аналогично показанному на рис. 19.

3. Значениям свойства Caption в окне свойств присвоить:

· форме – «Штриховка»;

· элементу Frame 1 – «Выбор цвета»;

· переключателям – «Зеленый» и «Черный», соответственно;

· элементу Command 1 – «Рисовать».

4. Свойству Value переключателя Option 2 присвоить значение True. Таким образом, по умолчанию цвет рисования будет черным.

5. В окне процедуры Command1_Click () написать следующий код:

 

Private Sub Command1_Click()

 

If Option1.Value = True Then

Picture1.FillColor = vbGreen

Else

Picture1.FillColor = vbBlack

End If

 

Picture1.Scale (0, 0)-(480, 510)

Picture1.FillStyle = 0

Picture1.Line (30, 30)-(210, 120),, B

Picture1.FillStyle = 1

Picture1.Line (270, 30)-(450, 120),, B

Picture1.FillStyle = 2

Picture1.Line (30, 150)-(210, 240),, B

Picture1.FillStyle = 3

Picture1.Line (270, 150)-(450, 240),, B

Picture1.FillStyle = 4

Picture1.Line (30, 270)-(210, 360),, B

Picture1.FillStyle = 5

Picture1.Line (270, 270)-(450, 360),, B

Picture1.FillStyle = 6

Picture1.Line (30, 390)-(210, 480),, B

Picture1.FillStyle = 7

Picture1.Line (270, 390)-(450, 480),, B

End Sub

 

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

Как и в методе Line, не только значения перечисленных параметровметода Circle влияют на вид фигуры, которая будет построена этим методом. Напомним, что у объекта, на котором производится рисование, есть свойства, которые определяют внешний вид изображаемой фигуры – цвет её контура (свойство ForeColor), стиль её заполнения (свойство FillStyle), а также цвет её заполнения (свойство FillColor).

Приведём пример программы, которая демонстрирует разнообразие комбинаций значений параметров метода Circle и свойств объектов, на которых этот метод работает.

Упражнение 7.

Пусть на экранной форме находятся три объекта класса PictureBox с именами Picture 1, Picture 2 и Picture З, а также командная кнопка (Command 1).

После щелчка командной кнопки в графических полях с помощью метода Circle должны быть нарисованы:

· в Picture 1 – окружность, круг и два эллипса;

· в Picture 2 – дуга окружности и различные варианты секторов круга и эллипса;

· в Picture З – разноцветные секторы, которые получаются путём деления круга на 7 равных частей.

На рис. 20 показан результат работы программы. Предлагается создать подобное приложение, используя знания данного лабораторного занятия[5].

1. В новом проекте создать форму (Form 1). Свойство Caption изменить в соответствии с рисунком.

2. На форме разместить три графических поля Picture 1, Picture 2 и Picture З и командную кнопку Command 1.

3. В разделе General написать:

 

Dim Angle As Double

Const pi = 3.14159265358979

 
 
Рис.20 Результат работы приложения Упражнения 7

 

 


4. В процедуре командной кнопки написать код, представленный ниже. Комментарии даны к каждому логическому блоку программы.

 

Private Sub Command1_Click()

'Масштабирование графических полей

Picture1.Scale (0, 35)-(15, 0)

Picture2.Scale (-5, 20)-(45, 0)

Picture3.Scale (-25, 15)-(15, -15)

'Рисование окружности, круга и эллипса:

Picture1.Circle (5, 25), 2.5, 0

Picture1.ForeColor = vbCyan

Picture1.FillStyle = 0

Picture1.Circle (11, 25), 2.5 'Круг

Picture1.FillColor = vbCyan

Picture1.ForeColor = vbBlue

Picture1.Circle (8, 6), 5.5,,,, 0.5 ‘Эллипс, вытянутый по горизонтали

Picture1.Circle (8, 16), 4.5,,,, 1.5 ‘Эллипс, вытянутый по вертикали

'Рисование дуги и секторов круга и эллипса:

Picture2.FillStyle = 0

Picture2.FillColor = vbCyan

Picture2.ForeColor = vbCyan

Picture2.Circle (5, 8), 4.5 '4 фоновых круга

Picture2.Circle (15, 8), 4.5

Picture2.Circle (25, 8), 4.5

Picture2.Circle (35, 8), 4.5

Picture2.FillColor = vbRed

Picture2.DrawWidth = 2

Picture2.Circle (5, 8), 4.5, vbBlack, 1, 5 ' Дуга окружности

Picture2.Circle (15, 8), 4.5, vbBlack, -1, -5

Picture2.Circle (25, 8), 4.5, vbBlack, -5, -1

Picture2.Circle (35, 8), 4.5, vbBlack, -0.3, -5.8, 1.5

'Рисование семи разноцветных секторов

Angle = 2 * pi / 7

Picture3.ForeColor = 0

Picture3.FillStyle = 0

Picture3.FillColor = vbRed

Picture3.Circle (0, 0), 10,, -6 * Angle, -7 * Angle

Picture3.FillColor = vbYellow

Picture3.Circle (0, 0), 10,, -5 * Angle, -6 * Angle

Picture3.FillColor = vbGreen

Picture3.Circle (0, 0), 10,, -4 * Angle, -5 * Angle

Picture3.FillColor = vbBlue

Picture3.Circle (0, 0), 10,, -3 * Angle, -4 * Angle

Picture3.FillColor = vbCyan

Picture3.Circle (0, 0), 10,, -2 * Angle, -3 * Angle

Picture3.FillColor = vbWhite

Picture3.Circle (0, 0), 10,, -Angle, -2 * Angle

Picture3.FillColor = vbMagenta

Picture3.Circle (0, 0), 10,, -7 * Angle, -Angle

End Sub

 

5. Запустите приложение. Если это необходимо, исправьте ошибки.




Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-07-22 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: