Imports System.Drawing
Imports System.Drawing.Drawing2D
Imports System.Windows.Forms
public class MatrixRotateAt
public Shared Sub Main
Application.Run(New RotateForm)
End Sub
End class
Public Class RotateForm
Inherits System.Windows.Forms.Form
Public Sub New()
MyBase.New()
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(280, 214)
Me.Name = "RotateForm"
Me.Text = "RotateForm"
End Sub
Sub RotateForm_Paint(ByVal sender As Object, ByVal e As PaintEventArgs) Handles MyBase.Paint
Dim g As Graphics = e.Graphics
Dim x As Integer = 400
Dim y As Integer = 400
Dim width As Integer = 250
Dim height As Integer = 250
Dim textWidth As Single = g.MeasureString("00", Me.Font).Width
Dim length As Single = 250
Dim textRect As RectangleF = New RectangleF(x + length, y - Me.Font.GetHeight(g) / 2, length, textWidth)
Dim format As StringFormat = New StringFormat()
format.Alignment = StringAlignment.Near
format.LineAlignment = StringAlignment.Center
Dim i As Integer
For i = 0 To 360 Step 5
Dim matrix As Matrix = New Matrix()
matrix.RotateAt(i, New PointF(x, y))
g.Transform = matrix
g.DrawLine(Pens.Black, x, y, x + length, y)
g.DrawString(i.ToString(), Me.Font, Brushes.Black, textRect, format)
Next
End Sub
End Class
|