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_3daffine_trans_object_model_3dAffineTransObjectModel3dAffineTransObjectModel3dAffineTransObjectModel3daffine_trans_object_model_3d 对三维对象模型应用任意仿射变换,即缩放、旋转和平移,并返回变换后三维对象模型的句柄。仿射变换由 HomMat3DHomMat3DHomMat3DHomMat3DhomMat3Dhom_mat_3d 中给出的齐次变换矩阵描述。
变换矩阵可通过算子 hom_mat3d_identityhom_mat3d_identityHomMat3dIdentityHomMat3dIdentityHomMat3dIdentityhom_mat3d_identity、 hom_mat3d_scalehom_mat3d_scaleHomMat3dScaleHomMat3dScaleHomMat3dScalehom_mat3d_scale、
hom_mat3d_rotatehom_mat3d_rotateHomMat3dRotateHomMat3dRotateHomMat3dRotatehom_mat3d_rotate、 hom_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_x、
RefRotYRefRotYRefRotYRefRotYrefRotYref_rot_y、 RefRotZRefRotZRefRotZRefRotZrefRotZref_rot_z 及 OrderOfRotationOrderOfRotationOrderOfRotationOrderOfRotationorderOfRotationorder_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
模块
三维计量