Stroke.Transform Method
Stroke.Transform Method |
Applies a linear transformation to a Stroke object.
Definition
Visual Basic .NET Public Sub Transform( _
ByVal inkTransform As Matrix _
)C# public void Transform(
Matrix inkTransform
);Managed C++ public: void Transform(
Matrix *inkTransform
);
Parameters
inkTransform System.Drawing.Drawing2D.Matrix. The System.Drawing.Drawing2D.Matrix transform to use on the Stroke object.
Remarks
The transformation applies to the points, but not the pen width. To set a value that includes the pen width in the transformation, use the Transform(Matrix,Boolean) overload of this method.
The linear transform can represent scaling, rotation, translation, and combinations of transformations.
Examples
[C#]
This C# example rotates a Stroke object, theStroke, by 180 degrees around the center of the Stroke object's bounding box.
using System.Drawing.Drawing2D; //... Matrix inkTransform = new Matrix(); Rectangle inkBounds = theStroke.GetBoundingBox(); PointF center = new PointF(0.5f * (inkBounds.Left + inkBounds.Right), 0.5f * (inkBounds.Top + inkBounds.Bottom)); // Translate to center of bounding box inkTransform.Translate(center.X, center.Y); // Rotate by 180 degrees inkTransform.Rotate(180f); // Translate back inkTransform.Translate(-center.X, -center.Y); // Transform stroke theStroke.Transform(inkTransform);
[VB.NET]
This Microsoft® Visual Basic® .NET example rotates a Stroke object, theStroke, by 180 degrees around the center of the Stroke object's bounding box.
Imports System.Drawing.Drawing2D '... Dim inkTransform As New Matrix() Dim inkBounds As Rectangle = theStroke.GetBoundingBox() Dim center As New PointF(0.5F * (inkBounds.Left + inkBounds.Right), _ 0.5F * (inkBounds.Top + inkBounds.Bottom)) 'Translate to center of bounding box inkTransform.Translate(center.X, center.Y) 'Rotate by 180 degrees inkTransform.Rotate(180.0F) 'Translate back inkTransform.Translate(-center.X, -center.Y) 'Transform stroke theStroke.Transform(inkTransform)
See Also