Returns the current physical transformation System.Drawing.Drawing2D.Matrix of this AnnObject.
public virtual Matrix PhysicalTransform { get; }
Public Overridable ReadOnly Property PhysicalTransform As Matrix
public:
virtual property Matrix^ PhysicalTransform {
Matrix^ get();
}
The current physical transformation matrix of this AnnObject.
The physical transformation System.Drawing.Drawing2D.Matrix of an AnnObject is the result of multiplying the object Transform matrix by the Containertransform matrix.
This matrix can be used to transform points from logical (in the object coordinate) coordinates to physical coordinates. For example, the annotation toolkit uses this matrix during hit-testing.
This example will perform various transformation on an annotation object then shows its transformation matrix.
using Leadtools;
using Leadtools.Annotations;
using Leadtools.Codecs;
using Leadtools.WinForms;
using Leadtools.Drawing;
private void AnnObject_PhysicalTransform(AnnObject obj)
{
// this example only works with line objects
if (obj is AnnLineObject)
{
AnnLineObject line = obj as AnnLineObject;
// show the logical coordinates of this line
PointF[] pts =
{
line.StartPoint.ConvertTo(line.Container.UnitConverter, AnnUnit.Pixel).ToPointF(),
line.EndPoint.ConvertTo(line.Container.UnitConverter, AnnUnit.Pixel).ToPointF()
};
Console.WriteLine("Logical coordinates: {0}, {1}", pts[0], pts[1]);
// show the physical coordinates of this line
using (Matrix mat = line.PhysicalTransform)
{
AnnTransformer transformer = new AnnTransformer(line.Container.UnitConverter, mat);
pts = transformer.PointToPhysical(pts);
Console.WriteLine("Physical coordinates: {0}, {1}", pts[0], pts[1]);
}
}
else
Console.WriteLine("Not an annotation line object!");
}
Imports Leadtools
Imports Leadtools.Annotations
Imports Leadtools.Codecs
Imports Leadtools.WinForms
Imports Leadtools.Drawing
Private Sub AnnObject_PhysicalTransform(ByVal obj As AnnObject)
' this example only works with line objects
If TypeOf obj Is AnnLineObject Then
Dim line As AnnLineObject = CType(IIf(TypeOf obj Is AnnLineObject, obj, Nothing), AnnLineObject)
' show the logical coordinates of this line
Dim pts As PointF() = {line.StartPoint.ConvertTo(line.Container.UnitConverter, AnnUnit.Pixel).ToPointF(), line.EndPoint.ConvertTo(line.Container.UnitConverter, AnnUnit.Pixel).ToPointF()}
Console.WriteLine("Logical coordinates: {0}, {1}", pts(0), pts(1))
' show the physical coordinates of this line
Dim mat As Matrix = line.PhysicalTransform
Try
Dim transformer As AnnTransformer = New AnnTransformer(line.Container.UnitConverter, mat)
pts = transformer.PointToPhysical(pts)
Console.WriteLine("Physical coordinates: {0}, {1}", pts(0), pts(1))
Finally
CType(mat, IDisposable).Dispose()
End Try
Else
Console.WriteLine("Not an annotation line object!")
End If
End Sub
Raster .NET | C API | C++ Class Library | JavaScript HTML5
Document .NET | C API | C++ Class Library | JavaScript HTML5
Medical .NET | C API | C++ Class Library | JavaScript HTML5
Medical Web Viewer .NET