Заполнить Полигон с отверстиями

Я хочу создатьзаполнить» который заполняет внутреннюю часть многоугольника, созданного с использованием списка точек, но может удалить его дыры.

Мой старый код:

Private Sub DrawSomething(ByVal points as List(of Point), _
ByVal myBrush As System.Drawing.Brush, _
ByVal myGraphics As System.Drawing.Graphics)
  myGraphics.FillPolygon(myBrush, points)
End Sub

Он просто заполняет многоугольник, созданный контуром точек в списке.

Как я могу заполнить многоугольник, но исключить отверстия в нем (которые, как я знаю, находятся внутри, я проверил):

Private Sub DrawSomething(ByVal points as List(of Point), _
ByVal holes as List(of List(of Point)), _ 
ByVal myBrush As System.Drawing.Brush, _
ByVal myGraphics As System.Drawing.Graphics)

' fill the contour created by points, excluding the contours created by holes
End Sub

Могу ли я использовать что-то, что уже было создано? Можно ли как-то нарисовать оригинальный многоугольник и убрать отверстия? Какой будет лучший подход?

Что я попробовал - пример: я сделал следующее:

Private Sub DrawSomething(ByVal points as List(of Point), _
ByVal holes as List(of List(of Point)), _ 
ByVal myBrush As System.Drawing.Brush, _
ByVal myGraphics As System.Drawing.Graphics)

  Dim myGraphicsPath As Drawing2D.GraphicsPath = New Drawing2D.GraphicsPath(Drawing2D.FillMode.Winding)
  myGraphicsPath.AddLines(points)
  Dim myRegion As System.Drawing.Region = New System.Drawing.Region(myGraphicsPath)
  Dim otherGraphicsPath As Drawing2D.GraphicsPath = New Drawing2D.GraphicsPath(Drawing2D.FillMode.Winding)  
  ForEach otherPoints as List(of Point) in holes
    otherGraphicsPath.AddLines(otherPoints)
  Next
  myRegion.Exclude(otherGraphicsPath)
  myGraphics.FillRegion(myBrush, myRegion)

End Sub

Это не так уж плохо ... это исключает внутренние многоугольники, но также рисует ряд "пустой» между контурами. Итак, я думаю, это нет работа.

Спасибо.

Редактировать: Добавление картинки:

Контур задается в виде списка точек ("точки"), дыры как список списков ("дыры»). На рисунке справа изображен грубый рисунок линий, которые я получаю (даже если у отверстий и контуров нет общих точек) - линии меняются при перемещении изображения.

Ответы на вопрос(1)

Ваш ответ на вопрос