Name
axis_angle_to_quat T_axis_angle_to_quat AxisAngleToQuat AxisAngleToQuat — Create a rotation quaternion.
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 )
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: [x_{0},x_{1},x_{2},x_{3}].
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 , AxisY AxisY AxisY AxisY axisY ,
AxisZ AxisZ AxisZ AxisZ axisZ ) by an angle a (Angle Angle Angle Angle angle ) can be described by
the unit quaternion q =(cos(a/2), sin(a/2) v).
The operator axis_angle_to_quat axis_angle_to_quat AxisAngleToQuat AxisAngleToQuat AxisAngleToQuat can be used to create such a
quaternion. To rotate a point using Quaternion Quaternion Quaternion Quaternion quaternion use the operator
quat_rotate_point_3d quat_rotate_point_3d QuatRotatePoint3d QuatRotatePoint3d QuatRotatePoint3d .
Note that two rotations can be concatenated using the operator
quat_compose quat_compose QuatCompose QuatCompose QuatCompose . Further, you can use a rotation quaternion to
set the orientation of the 3D plot in set_paint set_paint SetPaint SetPaint SetPaint .
The operator axis_angle_to_quat axis_angle_to_quat AxisAngleToQuat AxisAngleToQuat AxisAngleToQuat does not check whether the vector
(AxisX AxisX AxisX AxisX axisX , AxisY AxisY AxisY AxisY axisY , AxisZ AxisZ AxisZ AxisZ axisZ ) is of unit length (i.e. of
length 1). If this is not the case, Quaternion Quaternion Quaternion Quaternion quaternion will be no valid
rotation quaternion.
Multithreading type: reentrant (runs in parallel with non-exclusive operators).
Multithreading scope: global (may be called from any thread).
Processed without parallelization.
X component of the rotation axis.
Y component of the rotation axis.
Z component of the rotation axis.
Rotation angle in radians.
** 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_pose quat_to_pose QuatToPose QuatToPose QuatToPose ,
quat_rotate_point_3d quat_rotate_point_3d QuatRotatePoint3d QuatRotatePoint3d QuatRotatePoint3d ,
quat_compose quat_compose QuatCompose QuatCompose QuatCompose
quat_normalize quat_normalize QuatNormalize QuatNormalize QuatNormalize ,
quat_conjugate quat_conjugate QuatConjugate QuatConjugate QuatConjugate ,
quat_interpolate quat_interpolate QuatInterpolate QuatInterpolate QuatInterpolate ,
screw_to_dual_quat screw_to_dual_quat ScrewToDualQuat ScrewToDualQuat ScrewToDualQuat
Foundation