axis_angle_to_quat T_axis_angle_to_quat AxisAngleToQuat AxisAngleToQuat axis_angle_to_quat (算子名称)
名称
axis_angle_to_quat T_axis_angle_to_quat AxisAngleToQuat AxisAngleToQuat axis_angle_to_quat — 创建旋转四元数。
参数签名
void AxisAngleToQuat (const HTuple& AxisX , const HTuple& AxisY , const HTuple& AxisZ , const HTuple& Angle , HTuple* Quaternion )
void HQuaternion ::HQuaternion (const HTuple& AxisX , const HTuple& AxisY , const HTuple& AxisZ , const HTuple& Angle )
void HQuaternion ::HQuaternion (double AxisX , double AxisY , double AxisZ , double Angle )
void HQuaternion ::AxisAngleToQuat (const HTuple& AxisX , const HTuple& AxisY , const HTuple& AxisZ , const HTuple& Angle )
void HQuaternion ::AxisAngleToQuat (double AxisX , double AxisY , double AxisZ , double Angle )
static void HOperatorSet .AxisAngleToQuat (HTuple axisX , HTuple axisY , HTuple axisZ , HTuple angle , out HTuple quaternion )
public HQuaternion (HTuple axisX , HTuple axisY , HTuple axisZ , HTuple angle )
public HQuaternion (double axisX , double axisY , double axisZ , double angle )
void HQuaternion .AxisAngleToQuat (HTuple axisX , HTuple axisY , HTuple axisZ , HTuple angle )
void HQuaternion .AxisAngleToQuat (double axisX , double axisY , double axisZ , double angle )
def axis_angle_to_quat (axis_x : Union[float, int], axis_y : Union[float, int], axis_z : Union[float, int], angle : Union[float, int]) -> Sequence[Union[float, int]]
描述
Quaternions are an extension of the complex numbers. The set of quaternions
is given by
. In HALCON, quaternions are
represented by a tuple containing four elements:
.
Unit quaternions can be used to describe rotations. A quaternion is a unit
quaternion if its norm is 1. A
counterclockwise rotation around an unit vector v
(AxisX AxisX AxisX AxisX axisX axis_x , AxisY AxisY AxisY AxisY axisY axis_y ,
AxisZ AxisZ AxisZ AxisZ axisZ axis_z ) by an angle a (Angle Angle Angle Angle angle angle ) can be described by
the unit quaternion q =(cos(a/2), sin(a/2) v).
该算子 axis_angle_to_quat axis_angle_to_quat AxisAngleToQuat AxisAngleToQuat AxisAngleToQuat axis_angle_to_quat can be used to create such a
quaternion. To rotate a point using Quaternion Quaternion Quaternion Quaternion quaternion quaternion use 该算子
quat_rotate_point_3d quat_rotate_point_3d QuatRotatePoint3d QuatRotatePoint3d QuatRotatePoint3d quat_rotate_point_3d .
Note that two rotations can be concatenated using 该算子
quat_compose quat_compose QuatCompose QuatCompose QuatCompose quat_compose . Further, you can use a rotation quaternion to
set the orientation of the 3D plot in set_paint set_paint SetPaint SetPaint SetPaint set_paint .
注意
该算子 axis_angle_to_quat axis_angle_to_quat AxisAngleToQuat AxisAngleToQuat AxisAngleToQuat axis_angle_to_quat does not check whether the vector
(AxisX AxisX AxisX AxisX axisX axis_x , AxisY AxisY AxisY AxisY axisY axis_y , AxisZ AxisZ AxisZ AxisZ axisZ axis_z ) is of unit length (i.e. of
length 1). If this is not the case, Quaternion Quaternion Quaternion Quaternion quaternion quaternion will be no valid
rotation quaternion.
运行信息
多线程类型:可重入(与非独占操作符并行运行)。
多线程作用域:全局(可以从任何线程调用)。
未经并行化处理。
参数表
AxisX AxisX AxisX AxisX axisX axis_x (input_control) real → HTuple Union[float, int] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
X component of the rotation axis.
AxisY AxisY AxisY AxisY axisY axis_y (input_control) real → HTuple Union[float, int] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Y component of the rotation axis.
AxisZ AxisZ AxisZ AxisZ axisZ axis_z (input_control) real → HTuple Union[float, int] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Z component of the rotation axis.
Angle Angle Angle Angle angle angle (input_control) real → HTuple Union[float, int] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Rotation angle in radians.
Quaternion Quaternion Quaternion Quaternion quaternion quaternion (output_control) quaternion → HQuaternion , HTuple Sequence[Union[float, int]] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Rotation quaternion.
例程 (HDevelop)
** Normalize a vector and create a rotation quaternion
Length := sqrt(AxisX*AxisX+AxisY*AxisY+AxisZ*AxisZ)
AxisX := AxisX/Length
AxisY := AxisY/Length
AxisZ := AxisZ/Length
axis_angle_to_quat (AxisX, AxisY, AxisZ, rad(90), Quaternion)
可能的后置算子
quat_to_hom_mat3d quat_to_hom_mat3d QuatToHomMat3d QuatToHomMat3d QuatToHomMat3d quat_to_hom_mat3d ,
quat_to_pose quat_to_pose QuatToPose QuatToPose QuatToPose quat_to_pose ,
quat_rotate_point_3d quat_rotate_point_3d QuatRotatePoint3d QuatRotatePoint3d QuatRotatePoint3d quat_rotate_point_3d ,
quat_compose quat_compose QuatCompose QuatCompose QuatCompose quat_compose
参考其它
quat_normalize quat_normalize QuatNormalize QuatNormalize QuatNormalize quat_normalize ,
quat_conjugate quat_conjugate QuatConjugate QuatConjugate QuatConjugate quat_conjugate ,
quat_interpolate quat_interpolate QuatInterpolate QuatInterpolate QuatInterpolate quat_interpolate ,
screw_to_dual_quat screw_to_dual_quat ScrewToDualQuat ScrewToDualQuat ScrewToDualQuat screw_to_dual_quat
模块
Foundation