VB.Net Tutorial/2D Graphics/GraphicsPathIterator

Материал из VB Эксперт
Перейти к: навигация, поиск

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