Mega Code Archive

 
Categories / VB.Net Tutorial / 2D Graphics
 

GraphicsPathIterator

Imports System.Drawing Imports System.Drawing.Drawing2D Imports System.Windows.Forms public class GraphicsPathIteratorDemo    public Shared Sub Main         Application.Run(New Form1)    End Sub End class public class Form1   Inherits System.Windows.Forms.Form   Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)         Dim g As Graphics = e.Graphics         ' Create a Rectangle         Dim rect As New Rectangle(50, 50, 100, 50)         ' Create a Graphics path         Dim path As New GraphicsPath         Dim ptsArray As PointF() = {New PointF(20, 20), New PointF(60, 12), New PointF(100, 20)}         ' Add a curve, rectangle, ellipse, and a line         path.AddCurve(ptsArray)         path.AddRectangle(rect)         rect.Y += 60         path.AddEllipse(rect)         path.AddLine(120, 50, 220, 100)         ' Draw path         g.DrawPath(Pens.Blue, path)         ' Create a Graphics path iterator         Dim pathIterator As New GraphicsPathIterator(path)         ' Display total points and sub paths         Console.WriteLine("Total points = " & pathIterator.Count)         Console.WriteLine("Sub paths = " & pathIterator.SubpathCount)         pathIterator.Rewind()         ' Read all subpaths and their properties         Dim i As Integer         For i = 0 To pathIterator.SubpathCount - 1             Dim strtIdx, endIdx As Integer             Dim bClosedCurve As Boolean             pathIterator.NextSubpath(strtIdx, endIdx, bClosedCurve)             Console.WriteLine("Start Index = " & strtIdx)             Console.WriteLine("End Index = " & endIdx)             Console.WriteLine("IsClosed = " & bClosedCurve)         Next i   End Sub   Public Sub New()         MyBase.New()     Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)     Me.ClientSize = New System.Drawing.Size(292, 273)     Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen   End Sub End Class