VB.Net Tutorial/2D Graphics/GraphicsPathIterator
GraphicsPathIterator
<source lang="vbnet">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</source>