DivisionUnit.Transform Property
Gets the transformation matrix that the DivisionUnit object uses to rotate the strokes to horizontal.
Namespace: Microsoft.Ink
Assembly: Microsoft.Ink (in Microsoft.Ink.dll)
Syntax
'Declaration
Public ReadOnly Property Transform As Matrix
'Usage
Dim instance As DivisionUnit
Dim value As Matrix
value = instance.Transform
public Matrix Transform { get; }
public:
property Matrix^ Transform {
Matrix^ get ();
}
public function get Transform () : Matrix
Property Value
Type: System.Drawing.Drawing2D.Matrix
The transformation matrix that the DivisionUnit object uses to rotate the strokes to horizontal.
Remarks
Text recognizers perform best with horizontal handwriting. Apply this transformation to the Strokes property of the DivisionUnit object before passing the strokes to a RecognizerContext object.
The point of rotation of the matrix is set to the lower-left corner of the line's bounding box for both segments and lines. The rotation angle for a recognition segment is the same as that of the line that contains the segment.
Note
For a DivisionUnit object which represents a paragraph or drawing, this property returns the identity matrix.
Use this property to level handwriting or to accurately draw lines or shapes around angled handwriting.
Examples
This C# example creates a Divider object, theDivider, which contains a Strokes collection, theStrokes, and uses a RecognizerContext object, theRecognizerContext. The Divide method is called to get a snapshot of the analysis results, theResult. The ResultByType method is called with the divisionType parameter set to Line, a InkDivisionType enumeration, to retrieve all of the line units within theResult. For each line, theLine, in the collection, the DivisionType, Strokes, RecognitionString, and Transform properties are retrieved.
// Create the Divider and assign a Strokes collection to it.
Divider theDivider = new Divider(theStrokes, theRecognizerContext);
// Retrieve the analysis result, and divide the result by line.
DivisionResult theResult = theDivider.Divide();
DivisionUnits theDivisionUnits =
theResult.ResultByType(InkDivisionType.Line);
foreach (DivisionUnit theLine in theDivisionUnits)
{
// For each line element in the collection
// retrieve the division type, the strokes,
// the recognition string, and the rotation transform.
InkDivisionType theDivisionType = theLine.DivisionType;
Strokes elementStrokes = theLine.Strokes;
string theRecognitionString = theLine.RecognitionString;
System.Drawing.Drawing2D.Matrix theInkTransform =
theLine.Transform;
}
This Microsoft® Visual Basic® .NET example creates a Divider object, theDivider, which contains a Strokes collection, theStrokes, and uses a RecognizerContext object, theRecognizerContext. The Divide method is called to get a snapshot of the analysis results, theResult. The ResultByType method is called with the divisionType parameter set to Line, a InkDivisionType enumeration, to retrieve all of the line units within theResult. For each line, theLine, in the collection, the DivisionType, Strokes, RecognitionString, and Transform properties are retrieved.
' Create the Divider and assign a Strokes collection to it.
Dim theDivider As Divider = New Divider(theStrokes, theRecognizerContext)
' Retrieve the analysis result, and divide the result by line.
Dim theResult As DivisionResult = theDivider.Divide()
Dim theDivisionUnits As DivisionUnits = _
theResult.ResultByType(InkDivisionType.Line)
Dim theLine As DivisionUnit
For Each theLine In theDivisionUnits
' For each line element in the collection
' retrieve the division type, the strokes,
' the recognition string, and the rotation transform.
Dim theDivisionType As InkDivisionType = theLine.DivisionType
Dim elementStrokes As Strokes = theLine.Strokes
Dim theRecognitionString As String = theLine.RecognitionString
Dim theInkTransform As System.Drawing.Drawing2D.Matrix = _
theLine.Transform
Next
Platforms
Windows 7, Windows Vista, Windows Server 2008 R2, Windows Server 2008
The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Version Information
.NET Framework
Supported in: 3.0