VB.Net Tutorial/2D Graphics/GraphicsPathIterator — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Версия 16:40, 26 мая 2010
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