FillPolygon z otworami

Chcę utworzyć „wypełnienie”, które wypełnia wnętrze wielokąta, utworzone za pomocą listy punktów, ale można usunąć jego otwory.

Mój stary kod:

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

Po prostu wypełnia wielokąt utworzony przez kontur punktów na liście.

Jak mogę wypełnić wielokąt, ale wykluczyć w nim dziury (które, jak wiem, są w środku, testowałem):

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

Czy mogę użyć czegoś, co już zostało stworzone? Czy mogę jakoś narysować oryginalny wielokąt i usunąć otwory? Jakie byłoby najlepsze podejście?

Co próbowałem - przykład: zrobiłem co następuje:

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

To nie jest takie złe ... wyklucza wewnętrzne wielokąty, ale również rysuje pokos „pusty” między konturami. Myślę, że to nie działa.

Dziękuję Ci.

Edytuj: Dodawanie zdjęcia:

Kontur jest podany jako lista punktów („punktów”), a otwory jako lista list („dziury”). Obraz po prawej stronie ma przybliżony rysunek pokosów linii, które otrzymuję (nawet jeśli otwory i kontury nie mają wspólnych punktów) - linie zmieniają się wraz z ruchem obrazu.

questionAnswers(1)

yourAnswerToTheQuestion