ПОНЯТНО О Visual Basic NET (том 2)

Рисуем дуги, сектора и закрашенные фигуры


Поставим задачу нарисовать на форме 8 фигур, таких, как на Рис. 6.5.

Рис. 6.5

Вот программа, решающая задачу:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim Граф As Graphics = Me.CreateGraphics

        'Закрашенный прямоугольник

        Граф.FillRectangle(Brushes.Yellow, 50, 50, 150, 100)

        'Закрашенный эллипс

        Граф.FillEllipse(Brushes.Yellow, 250, 50, 150, 100)

        'Дуга величиной 60 градусов, начиная от 30 градуса:

        Граф.DrawArc(Pens.Black, 50, 150, 100, 100, 30, 60)

        'Дуга величиной 270 градусов, начиная от 0 градуса:



        Граф.DrawArc(Pens.Black, 50, 300, 100, 100, 0, 270)

        'Сектор величиной 60 градусов, начиная от 30 градуса:

        Граф.DrawPie(Pens.Black, 200, 150, 100, 100, 30, 60)

        'Сектор величиной 270 градусов, начиная от 0 градуса:

        Граф.DrawPie(Pens.Black, 200, 300, 100, 100, 0, 270)

        'Закрашенный сектор величиной 60 градусов, начиная от 30 градуса:

        Граф.FillPie(Brushes.Yellow, 350, 150, 100, 100, 30, 60)

        'Закрашенный сектор величиной 270 градусов, начиная от 0 градуса:

        Граф.FillPie(Brushes.Yellow, 350, 300, 100, 100, 0, 270)

    End Sub

Пояснения: Аналогично тому, как для рисования линий фигур вы должны выбрать перо, для рисования закрашенных фигур вы должны выбрать кисть. Подобно тому, как существует класс Pens, содержащий несколько десятков перьев различных цветов, существует и специальный класс Brushes, содержащий несколько десятков кистей различных цветов. Запись Brushes.Blue означает взятую кисть синего цвета.

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

Рассмотрим верхние две фигуры рисунка.

Закрашенный прямоугольник рисуется методом FillRectangle.

Закрашенный эллипс рисуется методом FillEllipse.

Что касается дуг и секторов, то если вы не знакомы с градусной мерой угла, вам придется туговато. Напомню для тех, кто ее забыл: разрежьте круглый торт от центра на 360 одинаковых кусков, тогда остренький уголок каждого куска называется градусом.


Обратите внимание, что все три фигуры в нижнем ряду имеют одну и ту же градусную меру. То же можно сказать и про три фигуры в среднем ряду.
Две дуги (на рисунке они слева) рисуются методом DrawArc. Под дугой понимается дуга (кусок) эллипса (окружности). Поэтому первые пять параметров метода имеют тот же смысл, что и первые пять параметров метода DrawEllipse. Но добавляются еще два параметра, задающие в градусах размер и положение дуги на эллипсе (или окружности). На Рис. 6.6 поясняется смысл этих параметров. Конкретно, показана верхняя из двух дуг. Для простоты я выбрал дугу окружности. Углы измеряются по часовой стрелке от направления направо (на восток). Первый из двух параметров указывает начало дуги (30о), второй – длину дуги (60о).

Рис. 6.6
Два сектора (на рисунке они в центре) рисуются методом DrawPie. Все параметры имеют тот же смысл, что и в DrawArc.
Два закрашенные сектора (на рисунке они справа) рисуются методом FillPie. Отличается он от DrawPie только наличием кисти вместо пера.
Задание 2.   
Нарисуйте цветочек, как на Рис. 6.7.

Рис. 6.7
Подсказка: Нарисуйте в одном месте два прямоугольника: сначала закрашенный, а потом – незакрашенный.
Следите пока, чтобы параметры не были дробными. О причинах такой осторожности я расскажу еще.

Содержание раздела