Fill the area outside a Polygon (opposite of Graphics.FillPolygon)

The code snippet below will draw a polygon and then fill the area inside of that polygon.  I would like to draw a polygon (an array of points) and fill the area OUTSIDE of that polygon with a color - basically blank the area outside of a polygon with a color

Thanks
Private Sub Form1_Paint(ByVal sender As Object, ByVal e As _
      System.Windows.Forms.PaintEventArgs) Handles _
      MyBase.Paint
    Dim polypoints() As Point
 
    ' Draw a polygon.
    polypoints = New Point() { _
        New Point(20, 110), _
        New Point(90, 150), _
        New Point(90, 100), _
        New Point(20, 150) _
    }
    e.Graphics.FillPolygon(Brushes.Red, polypoints)
    e.Graphics.DrawPolygon(Pens.Green, polypoints)
  End Sub

Open in new window

tedunniAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
Mike TomlinsonConnect With a Mentor Middle School Assistant TeacherCommented:
Here is a simple example...
Imports System.Drawing.Drawing2D
Public Class Form1
 
    Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
        Dim polypoints() As Point
 
        ' Draw a polygon.
        polypoints = New Point() { _
            New Point(25, 100), _
            New Point(275, 350), _
            New Point(275, 100), _
            New Point(25, 350) _
        }
 
        Dim gp As New GraphicsPath
        gp.AddPolygon(polypoints)
        Dim rgn As New Region(gp)
        e.Graphics.ExcludeClip(rgn)
        e.Graphics.FillRectangle(Brushes.Red, Me.ClientRectangle)
    End Sub
 
End Class

Open in new window

FillOutsidePolygon.jpg
0
 
jjardineCommented:
Could you not just draw a box or rectangle over the entire screen and fill it with your color, then draw the polygon and fill it as white?
0
 
tedunniAuthor Commented:
What I receive first is a bitmap image with colors and shapes already on it.  I also receive the polygon as an input.  I then take that bitmap and then draw a polygon on it.  At that point I want to color the area outside of the polygon.  

I don't believe I can do what you are suggesting jjardine because I would lose the image data that is inside the polygon.
0
 
tedunniAuthor Commented:
Thanks, another perfect solution.
0
All Courses

From novice to tech pro — start learning today.