该接口对应一个 2D 坐标系。
该接口用于定义 2D 坐标系的平移、缩放或旋转等变换以及坐标映射,其内部包含了一个完整的 \( 3 \times 3 \) 变换矩阵。
该变换矩阵可以通过 Scale(), Rotate() 和 Translate() 等函数构建,也可直接修改 LMatrix33 的数据。 或者,也可以基于多个一一对应的点对,通过 Build() 函数计算最优的映射矩阵。
使用这个接口,需要创建一个 LTransform 对象。
示例代码
C++
Code snippets: snippets/LinearTransform.cpp
ILTransformPtr tf = LTransform::Create();
double err = tf.Build(srcPoints, dstPoints, LPVTransformType::LPVTransformHomography);
if (err < 0 || err > 100) return;
ILPointPtr newPoint = pnt->Transform(tf);
ILCirclePtr newCircle = circle->Transform(tf);
C#
Code snippets: snippets/LinearTransform.cs
LTransform tf = new LTransform();
double err = tf->Build(srcPoints, dstPoints,
LPVTransformType.LPVTransformHomography);
if (err < 0 || err > 100) return;
LPoint newPoint = pnt.Transform(tf);
LCircle newCircle = circle.Transform(tf);
LPVTransformType
变换矩阵的类型
Definition: LPVCore.idl:977
COM
ILTransformPtr tf = LTransform::Create();
double err = tf.Build(srcPoints, dstPoints, LPVTransformType::LPVTransformHomography);
if (err < 0 || err > 100) return;
ILPointPtr newPoint = pnt->Transform(tf);
ILCirclePtr newCircle = circle->Transform(tf);