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

       

Многоугольник


Если соединить последнюю точку ломаной с ее первой точкой, получится замкнутая ломаная. Если это проделать для ломаной с Рис. 17.1, то получится замкнутая ломаная, нарисованная в левой части Рис. 17.3. Получившуюся ломаную можно было бы назвать многоугольником, но всем известно, что многоугольник – это замкнутая ломаная без самопересечения. Очевидно, что мы просто неудачно подобрали точки, иначе получили бы нормальный многоугольник.

Рисует замкнутую ломаную метод DrawPolygon. Ясно, что это копия метода DrawLines, но с одним добавлением – последняя точка массива автоматически соединяется с первой, то есть ломаная замыкается.

Зададим такой же массив точек, что в 17.1.1. Вот код:

Dim Гр As Graphics = Me.CreateGraphics

Dim Массив_точек() As Point = {New Point(10, 50), New Point(100, 10), New Point(90, 80), New Point(150, 30)}

Гр.DrawPolygon(Pens.Black, Массив_точек)

Результат вы можете видеть в левой части Рис. 17.3.

Рис. 17.3

Метод FillPolygon рисует залитый многоугольник.

        Гр.FillPolygon(Brushes.OrangeRed, Массив_точек)

Если ломаная получается с самопересечением, то здесь заливка не всегда сплошная, как вы и видите в правой части Рис. 17.3, где нарисована ломаная из 5 точек. Способ заливки зависит от третьего параметра метода. Вот какой параметр делает в данном случае заливку сплошной:

        Гр.FillPolygon(Brushes.OrangeRed, Массив_точек, Drawing2D.FillMode.Winding)



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