quat_rotate_point_3d T_quat_rotate_point_3d QuatRotatePoint3d QuatRotatePoint3d quat_rotate_point_3d (Operator)
quat_rotate_point_3d T_quat_rotate_point_3d QuatRotatePoint3d QuatRotatePoint3d quat_rotate_point_3d
— Perform a rotation by a unit quaternion.
Signature
Herror T_quat_rotate_point_3d (const Htuple Quaternion , const Htuple Px , const Htuple Py , const Htuple Pz , Htuple* Qx , Htuple* Qy , Htuple* Qz )
void QuatRotatePoint3d (const HTuple& Quaternion , const HTuple& Px , const HTuple& Py , const HTuple& Pz , HTuple* Qx , HTuple* Qy , HTuple* Qz )
double HQuaternion ::QuatRotatePoint3d (double Px , double Py , double Pz , double* Qy , double* Qz ) const
static void HOperatorSet .QuatRotatePoint3d (HTuple quaternion , HTuple px , HTuple py , HTuple pz , out HTuple qx , out HTuple qy , out HTuple qz )
double HQuaternion .QuatRotatePoint3d (double px , double py , double pz , out double qy , out double qz )
def quat_rotate_point_3d (quaternion : Sequence[float], px : float, py : float, pz : float) -> Tuple[float, float, float]
Description
Given a rotation quaternion (e.g., generated by axis_angle_to_quat axis_angle_to_quat AxisAngleToQuat AxisAngleToQuat axis_angle_to_quat
),
the operator quat_rotate_point_3d quat_rotate_point_3d QuatRotatePoint3d QuatRotatePoint3d quat_rotate_point_3d
can be used to rotate a 3D point
(Px Px Px px px
, Py Py Py py py
, Pz Pz Pz pz pz
). The rotated point is returned in
(Qx Qx Qx qx qx
, Qy Qy Qy qy qy
, Qz Qz Qz qz qz
).
The rotation of a point x by an unit quaternion q is given by
corresponds to the conjugation of a quaternion q
(see quat_conjugate quat_conjugate QuatConjugate QuatConjugate quat_conjugate
). Note that x will be transformed
into quaternion form to perform the rotation. This is done by setting the
real part to zero and the three imaginary components to the three
components of x.
Attention
The operator quat_rotate_point_3d quat_rotate_point_3d QuatRotatePoint3d QuatRotatePoint3d quat_rotate_point_3d
does not check whether
Quaternion Quaternion Quaternion quaternion quaternion
is a unit quaternion. If Quaternion Quaternion Quaternion quaternion quaternion
is not
a unit quaternion, the result of this operator is not defined.
Execution Information
Multithreading type: reentrant (runs in parallel with non-exclusive operators).
Multithreading scope: global (may be called from any thread).
Processed without parallelization.
Parameters
Quaternion Quaternion Quaternion quaternion quaternion
(input_control) quaternion →
HQuaternion , HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Rotation quaternion.
Px Px Px px px
(input_control) real →
HTuple float HTuple Htuple (real) (double ) (double ) (double )
X coordinate of the point to be rotated.
Py Py Py py py
(input_control) real →
HTuple float HTuple Htuple (real) (double ) (double ) (double )
Y coordinate of the point to be rotated.
Pz Pz Pz pz pz
(input_control) real →
HTuple float HTuple Htuple (real) (double ) (double ) (double )
Z coordinate of the point to be rotated.
Qx Qx Qx qx qx
(output_control) real →
HTuple float HTuple Htuple (real) (double ) (double ) (double )
X coordinate of the rotated point.
Qy Qy Qy qy qy
(output_control) real →
HTuple float HTuple Htuple (real) (double ) (double ) (double )
Y coordinate of the rotated point.
Qz Qz Qz qz qz
(output_control) real →
HTuple float HTuple Htuple (real) (double ) (double ) (double )
Z coordinate of the rotated point.
Possible Predecessors
axis_angle_to_quat axis_angle_to_quat AxisAngleToQuat AxisAngleToQuat axis_angle_to_quat
See also
axis_angle_to_quat axis_angle_to_quat AxisAngleToQuat AxisAngleToQuat axis_angle_to_quat
,
quat_to_hom_mat3d quat_to_hom_mat3d QuatToHomMat3d QuatToHomMat3d quat_to_hom_mat3d
,
quat_compose quat_compose QuatCompose QuatCompose quat_compose
,
quat_normalize quat_normalize QuatNormalize QuatNormalize quat_normalize
,
quat_conjugate quat_conjugate QuatConjugate QuatConjugate quat_conjugate
,
quat_interpolate quat_interpolate QuatInterpolate QuatInterpolate quat_interpolate
,
dual_quat_trans_point_3d dual_quat_trans_point_3d DualQuatTransPoint3d DualQuatTransPoint3d dual_quat_trans_point_3d
,
dual_quat_trans_line_3d dual_quat_trans_line_3d DualQuatTransLine3d DualQuatTransLine3d dual_quat_trans_line_3d
Module
Foundation