Name
quat_rotate_point_3dT_quat_rotate_point_3dQuatRotatePoint3dquat_rotate_point_3dQuatRotatePoint3dQuatRotatePoint3d — Perform a rotation by a unit quaternion.
Herror T_quat_rotate_point_3d(const Htuple Quaternion, const Htuple Px, const Htuple Py, const Htuple Pz, Htuple* Qx, Htuple* Qy, Htuple* Qz)
Herror quat_rotate_point_3d(const HTuple& Quaternion, const HTuple& Px, const HTuple& Py, const HTuple& Pz, double* Qx, double* Qy, double* 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
void HOperatorSetX.QuatRotatePoint3d(
[in] VARIANT Quaternion, [in] VARIANT Px, [in] VARIANT Py, [in] VARIANT Pz, [out] VARIANT* Qx, [out] VARIANT* Qy, [out] VARIANT* Qz)
double HQuaternionX.QuatRotatePoint3d(
[in] double Px, [in] double Py, [in] double Pz, [out] double* Qy, [out] double* Qz)
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)
Given a rotation quaternion (e.g. generated by axis_angle_to_quataxis_angle_to_quatAxisAngleToQuataxis_angle_to_quatAxisAngleToQuatAxisAngleToQuat),
the operator quat_rotate_point_3dquat_rotate_point_3dQuatRotatePoint3dquat_rotate_point_3dQuatRotatePoint3dQuatRotatePoint3d can be used to rotate a 3D point
(PxPxPxPxPxpx, PyPyPyPyPypy, PzPzPzPzPzpz). The rotated point is returned in
(QxQxQxQxQxqx, QyQyQyQyQyqy, QzQzQzQzQzqz).
The rotation of a point x by an unit quaterion q is given by
x' = q * x * conj(q).
conj(q) corresponds to the conjugation of a quaternion q
(see quat_conjugatequat_conjugateQuatConjugatequat_conjugateQuatConjugateQuatConjugate). 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.
The operator quat_rotate_point_3dquat_rotate_point_3dQuatRotatePoint3dquat_rotate_point_3dQuatRotatePoint3dQuatRotatePoint3d does not check whether
QuaternionQuaternionQuaternionQuaternionQuaternionquaternion is a unit quaternion. If QuaternionQuaternionQuaternionQuaternionQuaternionquaternion is not
a unit quaternion, the result of this operator is not defined.
- Multithreading type: reentrant (runs in parallel with non-exclusive operators).
- Multithreading scope: global (may be called from any thread).
- Processed without parallelization.
X coordinate of the point to be rotated.
Y coordinate of the point to be rotated.
Z coordinate of the point to be rotated.
QxQxQxQxQxqx (output_control) real → HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)
X coordinate of the rotated point.
QyQyQyQyQyqy (output_control) real → HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)
Y coordinate of the rotated point.
QzQzQzQzQzqz (output_control) real → HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)
Z coordinate of the rotated point.
axis_angle_to_quataxis_angle_to_quatAxisAngleToQuataxis_angle_to_quatAxisAngleToQuatAxisAngleToQuat
axis_angle_to_quataxis_angle_to_quatAxisAngleToQuataxis_angle_to_quatAxisAngleToQuatAxisAngleToQuat,
quat_to_hom_mat3dquat_to_hom_mat3dQuatToHomMat3dquat_to_hom_mat3dQuatToHomMat3dQuatToHomMat3d,
quat_composequat_composeQuatComposequat_composeQuatComposeQuatCompose,
quat_normalizequat_normalizeQuatNormalizequat_normalizeQuatNormalizeQuatNormalize,
quat_conjugatequat_conjugateQuatConjugatequat_conjugateQuatConjugateQuatConjugate,
quat_interpolatequat_interpolateQuatInterpolatequat_interpolateQuatInterpolateQuatInterpolate
Foundation