KlassenKlassenKlassenKlassen | | | | Operatoren

axis_angle_to_quatT_axis_angle_to_quatAxisAngleToQuataxis_angle_to_quatAxisAngleToQuatAxisAngleToQuat (Operator)

Name

axis_angle_to_quatT_axis_angle_to_quatAxisAngleToQuataxis_angle_to_quatAxisAngleToQuatAxisAngleToQuat — Generiert eine Rotationsquaternion.

Signatur

axis_angle_to_quat( : : AxisX, AxisY, AxisZ, Angle : Quaternion)

Herror T_axis_angle_to_quat(const Htuple AxisX, const Htuple AxisY, const Htuple AxisZ, const Htuple Angle, Htuple* Quaternion)

Herror axis_angle_to_quat(const HTuple& AxisX, const HTuple& AxisY, const HTuple& AxisZ, const HTuple& Angle, HTuple* 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)

void HOperatorSetX.AxisAngleToQuat(
[in] VARIANT AxisX, [in] VARIANT AxisY, [in] VARIANT AxisZ, [in] VARIANT Angle, [out] VARIANT* Quaternion)

void HQuaternionX.AxisAngleToQuat(
[in] VARIANT AxisX, [in] VARIANT AxisY, [in] VARIANT AxisZ, [in] VARIANT 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)

Beschreibung

Quaternionen sind eine Erweiterung der komplexen Zahlen. Die Menge der Quaternionen ist gegeben durch . In HALCON werden Quaternionen durch Tuple der Länge vier dargestellt: [x_{0},x_{1},x_{2},x_{3}].

Einheitsquaternionen können verwendet werden, um Rotationen zu beschreiben. Eine Quaternion ist eine Einheitsquaternion, wenn ihre Norm 1 beträgt. Eine Rotation gegen den Uhrzeigersinn um einen Einheitsvektor v (AxisXAxisXAxisXAxisXAxisXaxisX,AxisYAxisYAxisYAxisYAxisYaxisY,AxisZAxisZAxisZAxisZAxisZaxisZ) um den Winkel a (AngleAngleAngleAngleAngleangle) kann durch die Einheitsquaternion q = (cos(a/2), sin(a/2) v) beschrieben werden.

Der Operator axis_angle_to_quataxis_angle_to_quatAxisAngleToQuataxis_angle_to_quatAxisAngleToQuatAxisAngleToQuat kann genutzt werden, um solch eine Quaternion zu erzeugen. Um einen Punkt mittels QuaternionQuaternionQuaternionQuaternionQuaternionquaternion zu rotieren, kann der Operator quat_rotate_point_3dquat_rotate_point_3dQuatRotatePoint3dquat_rotate_point_3dQuatRotatePoint3dQuatRotatePoint3d verwendet werden.

Zwei Rotation können mit quat_composequat_composeQuatComposequat_composeQuatComposeQuatCompose multipliziert werden. Außerdem können Rotationsquaternionen dazu verwendet werden, in set_paintset_paintSetPaintset_paintSetPaintSetPaint die Orientierung des 3D-Plots zu bestimmen.

Achtung

Der Operator axis_angle_to_quataxis_angle_to_quatAxisAngleToQuataxis_angle_to_quatAxisAngleToQuatAxisAngleToQuat überprüft nicht, ob der Vektor (AxisXAxisXAxisXAxisXAxisXaxisX, AxisYAxisYAxisYAxisYAxisYaxisY, AxisZAxisZAxisZAxisZAxisZaxisZ) ein Einheitsvektor ist (d.h. Länge 1 hat). Falls dies nicht der Fall ist, ist QuaternionQuaternionQuaternionQuaternionQuaternionquaternion keine gültige Rotationsquaternion.

Parallelisierung

Parameter

AxisXAxisXAxisXAxisXAxisXaxisX (input_control)  real HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

X-Komponente der Rotationsachse.

AxisYAxisYAxisYAxisYAxisYaxisY (input_control)  real HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Y-Komponente der Rotationsachse.

AxisZAxisZAxisZAxisZAxisZaxisZ (input_control)  real HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Z-Komponente der Rotationsachse.

AngleAngleAngleAngleAngleangle (input_control)  real HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Rotationswinkel im Bogenmaß.

QuaternionQuaternionQuaternionQuaternionQuaternionquaternion (output_control)  quaternion HQuaternion, HTupleHTupleHTupleHQuaternionX, VARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Rotationsquaternion.

Beispiel (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)

Nachfolger

quat_to_hom_mat3dquat_to_hom_mat3dQuatToHomMat3dquat_to_hom_mat3dQuatToHomMat3dQuatToHomMat3d, quat_to_posequat_to_poseQuatToPosequat_to_poseQuatToPoseQuatToPose, quat_rotate_point_3dquat_rotate_point_3dQuatRotatePoint3dquat_rotate_point_3dQuatRotatePoint3dQuatRotatePoint3d, quat_composequat_composeQuatComposequat_composeQuatComposeQuatCompose

Siehe auch

quat_normalizequat_normalizeQuatNormalizequat_normalizeQuatNormalizeQuatNormalize, quat_conjugatequat_conjugateQuatConjugatequat_conjugateQuatConjugateQuatConjugate, quat_interpolatequat_interpolateQuatInterpolatequat_interpolateQuatInterpolateQuatInterpolate, screw_to_dual_quatscrew_to_dual_quatScrewToDualQuatscrew_to_dual_quatScrewToDualQuatScrewToDualQuat

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren