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
|