VB.Net by API/System.Drawing.Drawing2D/GraphicsPathIterator
Версия от 16:40, 26 мая 2010; (обсуждение)
GraphicsPathIterator.Count
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
GraphicsPathIterator.SubpathCount
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
New 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
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