Imports System.Drawing
Imports System.Drawing.Drawing2D
Imports System.Windows.Forms
public class TransformPathGradientBrush
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 = Me.CreateGraphics()
g.Clear(Me.BackColor)
' Create a GraphicsPath object
Dim path As New GraphicsPath
' Create a rectangle and add it to path
Dim rect As New Rectangle(20, 20, 200, 200)
path.AddRectangle(rect)
' Create a path gradient brush
Dim pgBrush As New PathGradientBrush(path.PathPoints)
' Set its center and surrounding colors
pgBrush.CenterColor = Color.Green
pgBrush.SurroundColors = New Color() {Color.Blue}
' Create matrix
Dim M As New Matrix
' Translate
M.Translate(20.0F, 10.0F, MatrixOrder.Prepend)
' Rotate
M.Rotate(10.0F, MatrixOrder.Prepend)
' Scale
M.Scale(2, 1, MatrixOrder.Prepend)
' shear
M.Shear(0.05F, 0.03F, MatrixOrder.Prepend)
' Apply matrix to the brush
pgBrush.MultiplyTransform(M)
' Use brush after transformation
' to fill a rectangle
g.FillRectangle(pgBrush, 20, 100, 400, 400)
' Dispose
pgBrush.Dispose()
g.Dispose()
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
|