VB.Net by API/System.Drawing.Drawing2D/GraphicsPathIterator
GraphicsPathIterator.Count
<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 Dim rect As New Rectangle(50, 50, 100, 50) Dim path As New GraphicsPath Dim ptsArray As PointF() = {New PointF(20, 20), New PointF(60, 12), New PointF(100, 20)} path.AddCurve(ptsArray) path.AddRectangle(rect) rect.Y += 60 path.AddEllipse(rect) path.AddLine(120, 50, 220, 100) g.DrawPath(Pens.Blue, path) Dim pathIterator As New GraphicsPathIterator(path) Console.WriteLine("Total points = " & pathIterator.Count) Console.WriteLine("Sub paths = " & pathIterator.SubpathCount) pathIterator.Rewind() 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>
GraphicsPathIterator.SubpathCount
<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 Dim rect As New Rectangle(50, 50, 100, 50) Dim path As New GraphicsPath Dim ptsArray As PointF() = {New PointF(20, 20), New PointF(60, 12), New PointF(100, 20)} path.AddCurve(ptsArray) path.AddRectangle(rect) rect.Y += 60 path.AddEllipse(rect) path.AddLine(120, 50, 220, 100) g.DrawPath(Pens.Blue, path) Dim pathIterator As New GraphicsPathIterator(path) Console.WriteLine("Total points = " & pathIterator.Count) Console.WriteLine("Sub paths = " & pathIterator.SubpathCount) pathIterator.Rewind() 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>
New 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 Dim rect As New Rectangle(50, 50, 100, 50) Dim path As New GraphicsPath Dim ptsArray As PointF() = {New PointF(20, 20), New PointF(60, 12), New PointF(100, 20)} path.AddCurve(ptsArray) path.AddRectangle(rect) rect.Y += 60 path.AddEllipse(rect) path.AddLine(120, 50, 220, 100) g.DrawPath(Pens.Blue, path) Dim pathIterator As New GraphicsPathIterator(path) Console.WriteLine("Total points = " & pathIterator.Count) Console.WriteLine("Sub paths = " & pathIterator.SubpathCount) pathIterator.Rewind() 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>