affine_trans_object_model_3dT_affine_trans_object_model_3dAffineTransObjectModel3dAffineTransObjectModel3daffine_trans_object_model_3d仿射变换对象模型三维(算子)

名称

affine_trans_object_model_3dT_affine_trans_object_model_3dAffineTransObjectModel3dAffineTransObjectModel3daffine_trans_object_model_3d — 对三维对象模型应用任意仿射三维变换。

签名

affine_trans_object_model_3d( : : ObjectModel3D, HomMat3D : ObjectModel3DAffineTrans)

Herror T_affine_trans_object_model_3d(const Htuple ObjectModel3D, const Htuple HomMat3D, Htuple* ObjectModel3DAffineTrans)

void AffineTransObjectModel3d(const HTuple& ObjectModel3D, const HTuple& HomMat3D, HTuple* ObjectModel3DAffineTrans)

static HObjectModel3DArray HObjectModel3D::AffineTransObjectModel3d(const HObjectModel3DArray& ObjectModel3D, const HHomMat3DArray& HomMat3D)

HObjectModel3D HObjectModel3D::AffineTransObjectModel3d(const HHomMat3D& HomMat3D) const

static void HOperatorSet.AffineTransObjectModel3d(HTuple objectModel3D, HTuple homMat3D, out HTuple objectModel3DAffineTrans)

static HObjectModel3D[] HObjectModel3D.AffineTransObjectModel3d(HObjectModel3D[] objectModel3D, HHomMat3D[] homMat3D)

HObjectModel3D HObjectModel3D.AffineTransObjectModel3d(HHomMat3D homMat3D)

def affine_trans_object_model_3d(object_model_3d: MaybeSequence[HHandle], hom_mat_3d: Sequence[float]) -> Sequence[HHandle]

def affine_trans_object_model_3d_s(object_model_3d: MaybeSequence[HHandle], hom_mat_3d: Sequence[float]) -> HHandle

描述

affine_trans_object_model_3daffine_trans_object_model_3dAffineTransObjectModel3dAffineTransObjectModel3dAffineTransObjectModel3daffine_trans_object_model_3d 对三维对象模型应用任意仿射变换,即缩放、旋转和平移,并返回变换后三维对象模型的句柄。仿射变换由 HomMat3DHomMat3DHomMat3DHomMat3DhomMat3Dhom_mat_3d 中给出的齐次变换矩阵描述。

变换矩阵可通过算子 hom_mat3d_identityhom_mat3d_identityHomMat3dIdentityHomMat3dIdentityHomMat3dIdentityhom_mat3d_identityhom_mat3d_scalehom_mat3d_scaleHomMat3dScaleHomMat3dScaleHomMat3dScalehom_mat3d_scalehom_mat3d_rotatehom_mat3d_rotateHomMat3dRotateHomMat3dRotateHomMat3dRotatehom_mat3d_rotatehom_mat3d_translatehom_mat3d_translateHomMat3dTranslateHomMat3dTranslateHomMat3dTranslatehom_mat3d_translate 等创建,也可作为 pose_to_hom_mat3dpose_to_hom_mat3dPoseToHomMat3dPoseToHomMat3dPoseToHomMat3dpose_to_hom_mat3d 的输出结果(参见 affine_trans_point_3daffine_trans_point_3dAffineTransPoint3dAffineTransPoint3dAffineTransPoint3daffine_trans_point_3d)。

通常情况下,在基于形状的三维匹配场景中无需使用 affine_trans_object_model_3daffine_trans_object_model_3dAffineTransObjectModel3dAffineTransObjectModel3dAffineTransObjectModel3daffine_trans_object_model_3d 算子。若需将三维对象模型旋转至参考方向,应向 create_shape_model_3dcreate_shape_model_3dCreateShapeModel3dCreateShapeModel3dCreateShapeModel3dcreate_shape_model_3d 算子传递参数 RefRotXRefRotXRefRotXRefRotXrefRotXref_rot_xRefRotYRefRotYRefRotYRefRotYrefRotYref_rot_yRefRotZRefRotZRefRotZRefRotZrefRotZref_rot_zOrderOfRotationOrderOfRotationOrderOfRotationOrderOfRotationorderOfRotationorder_of_rotation 的相应数值。

若仅通过 HomMat3DHomMat3DHomMat3DHomMat3DhomMat3Dhom_mat_3d (N:1) 传递一个变换矩阵,affine_trans_object_model_3daffine_trans_object_model_3dAffineTransObjectModel3dAffineTransObjectModel3dAffineTransObjectModel3daffine_trans_object_model_3d 将使用相同的变换矩阵对一个或多个三维对象模型进行变换。若向 ObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d 传递单个三维对象模型,则该模型将应用所有传递的变换矩阵(1:N)进行转换。如果变换矩阵的数量与三维对象模型的数量相对应,则每个三维对象模型都会通过各自的变换矩阵单独进行变换(N:N)。在这些情况下,N 可以为零,即无法向运算符传递矩阵或三维对象模型。在此情况下 ObjectModel3DAffineTransObjectModel3DAffineTransObjectModel3DAffineTransObjectModel3DAffineTransobjectModel3DAffineTransobject_model_3daffine_trans 方法将返回一个空元组。这可用于(例如)转换其他算子的结果,而无需事先检查是否至少返回了一张矩阵。

注意

affine_trans_object_model_3daffine_trans_object_model_3dAffineTransObjectModel3dAffineTransObjectModel3dAffineTransObjectModel3daffine_trans_object_model_3d 用于转换三维点类型、三维点法线以及用于基于形状的三维匹配的预制形状模型的属性。其余所有属性均保持原样复制。若需转换三维基元,则必须使用 rigid_trans_object_model_3drigid_trans_object_model_3dRigidTransObjectModel3dRigidTransObjectModel3dRigidTransObjectModel3drigid_trans_object_model_3d 算子。

执行信息

参数

ObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d (输入控制)  object_model_3d(-array) HObjectModel3D, HTupleMaybeSequence[HHandle]HTupleHtuple (handle) (IntPtr) (HHandle) (handle)

三维对象模型的句柄。

HomMat3DHomMat3DHomMat3DHomMat3DhomMat3Dhom_mat_3d (输入控制)  hom_mat3d(-array) HHomMat3D, HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

变换矩阵。

ObjectModel3DAffineTransObjectModel3DAffineTransObjectModel3DAffineTransObjectModel3DAffineTransobjectModel3DAffineTransobject_model_3daffine_trans (输出控制)  object_model_3d(-array) HObjectModel3D, HTupleSequence[HHandle]HTupleHtuple (handle) (IntPtr) (HHandle) (handle)

转换后三维对象模型的句柄。

结果

affine_trans_object_model_3daffine_trans_object_model_3dAffineTransObjectModel3dAffineTransObjectModel3dAffineTransObjectModel3daffine_trans_object_model_3d 在所有参数正确时返回 2 ( H_MSG_TRUE )。如有必要,则抛出异常。

可能的前趋

read_object_model_3dread_object_model_3dReadObjectModel3dReadObjectModel3dReadObjectModel3dread_object_model_3d, xyz_to_object_model_3dxyz_to_object_model_3dXyzToObjectModel3dXyzToObjectModel3dXyzToObjectModel3dxyz_to_object_model_3d

可能的后继

project_object_model_3dproject_object_model_3dProjectObjectModel3dProjectObjectModel3dProjectObjectModel3dproject_object_model_3d, object_model_3d_to_xyzobject_model_3d_to_xyzObjectModel3dToXyzObjectModel3dToXyzObjectModel3dToXyzobject_model_3d_to_xyz

另见

affine_trans_point_3daffine_trans_point_3dAffineTransPoint3dAffineTransPoint3dAffineTransPoint3daffine_trans_point_3d, rigid_trans_object_model_3drigid_trans_object_model_3dRigidTransObjectModel3dRigidTransObjectModel3dRigidTransObjectModel3drigid_trans_object_model_3d, projective_trans_object_model_3dprojective_trans_object_model_3dProjectiveTransObjectModel3dProjectiveTransObjectModel3dProjectiveTransObjectModel3dprojective_trans_object_model_3d

模块

三维计量