Многоугольник
Если соединить последнюю точку ломаной с ее первой точкой, получится замкнутая ломаная. Если это проделать для ломаной с Рис. 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)