hom_mat3d_rotateT_hom_mat3d_rotateHomMat3dRotateHomMat3dRotate (Operator)

Name

hom_mat3d_rotateT_hom_mat3d_rotateHomMat3dRotateHomMat3dRotate — Fügt eine Rotation zu einer homogenen 3D-Transformationsmatrix hinzu.

Signatur

hom_mat3d_rotate( : : HomMat3D, Phi, Axis, Px, Py, Pz : HomMat3DRotate)

Herror T_hom_mat3d_rotate(const Htuple HomMat3D, const Htuple Phi, const Htuple Axis, const Htuple Px, const Htuple Py, const Htuple Pz, Htuple* HomMat3DRotate)

void HomMat3dRotate(const HTuple& HomMat3D, const HTuple& Phi, const HTuple& Axis, const HTuple& Px, const HTuple& Py, const HTuple& Pz, HTuple* HomMat3DRotate)

HHomMat3D HHomMat3D::HomMat3dRotate(const HTuple& Phi, const HTuple& Axis, const HTuple& Px, const HTuple& Py, const HTuple& Pz) const

HHomMat3D HHomMat3D::HomMat3dRotate(double Phi, const HString& Axis, double Px, double Py, double Pz) const

HHomMat3D HHomMat3D::HomMat3dRotate(double Phi, const char* Axis, double Px, double Py, double Pz) const

HHomMat3D HHomMat3D::HomMat3dRotate(double Phi, const wchar_t* Axis, double Px, double Py, double Pz) const   (Nur Windows)

static void HOperatorSet.HomMat3dRotate(HTuple homMat3D, HTuple phi, HTuple axis, HTuple px, HTuple py, HTuple pz, out HTuple homMat3DRotate)

HHomMat3D HHomMat3D.HomMat3dRotate(HTuple phi, HTuple axis, HTuple px, HTuple py, HTuple pz)

HHomMat3D HHomMat3D.HomMat3dRotate(double phi, string axis, double px, double py, double pz)

Beschreibung

hom_mat3d_rotatehom_mat3d_rotateHomMat3dRotateHomMat3dRotateHomMat3dRotate fügt zur homogenen 3D-Transformationsmatrix HomMat3DHomMat3DHomMat3DHomMat3DhomMat3D eine Rotation um den Winkel PhiPhiPhiPhiphi um die im Parameter AxisAxisAxisAxisaxis übergebene Achse hinzu. Die Achse kann dabei entweder durch die Strings 'x', 'y' oder 'z' oder als Vektor [x,y,z] in Form eines Tupels festgelegt werden.

Die Rotation wird beschrieben durch die 3×3 Rotationsmatrix R. Sie wird relativ zum globalen (d.h. feststehenden) Koordinatensystem ausgeführt; dies entspricht der folgenden Kette von Transformationsmatrizen:

AxisAxisAxisAxisaxis = 'x'"x""x""x""x":

AxisAxisAxisAxisaxis = 'y'"y""y""y""y":

AxisAxisAxisAxisaxis = 'z'"z""z""z""z":

AxisAxisAxisAxisaxis = [x,y,z]:

Der Punkt (PxPxPxPxpx,PyPyPyPypy,PzPzPzPzpz) ist dabei der Fixpunkt der Rotation, d.h. dieser Punkt bleibt unverändert, wenn man ihn mit HomMat3DRotateHomMat3DRotateHomMat3DRotateHomMat3DRotatehomMat3DRotate transformiert. Dieses Verhalten wird erreicht, indem zur Eingabe-Transformationsmatrix zuerst eine Translation hinzugefügt wird, die den Fixpunkt in den Ursprung des globalen Koordinatensystems verschiebt. Dann wird die Rotation hinzugefügt, und zuletzt eine Translation, die den Fixpunkt wieder zurück in seine Ausgangsposition verschiebt. Dies entspricht der folgenden Kette von Transformationsmatrizen:

Um die Transformation im lokalen Koordinatensystem, das durch HomMat3DHomMat3DHomMat3DHomMat3DhomMat3D beschrieben ist, durchzuführen, kann hom_mat3d_rotate_localhom_mat3d_rotate_localHomMat3dRotateLocalHomMat3dRotateLocalHomMat3dRotateLocal verwendet werden.

Achtung

Homogene Transformationsmatrizen werden zeilenweise in Form eines Tupels abgespeichert; die letzte Zeile wird im Normalfall nicht gespeichert, da sie für alle affinen Transformationsmatrizen identisch ist. Zum Beispiel wird die Matrix als das Tupel [ra, rb, rc, td, re, rf, rg, th, ri, rj, rk, tl] gespeichert. Es ist aber auch möglich, volle 4×4 Matrizen, die eine projektive 3D-Transformation darstellen können, zu verarbeiten.

Ausführungsinformationen

Parameter

HomMat3DHomMat3DHomMat3DHomMat3DhomMat3D (input_control)  hom_mat3d HHomMat3D, HTupleHTupleHtuple (real) (double) (double) (double)

Eingabe-Transformationsmatrix.

PhiPhiPhiPhiphi (input_control)  angle.rad HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Rotationswinkel.

Defaultwert: 0.78

Wertevorschläge: 0.1, 0.2, 0.3, 0.4, 0.78, 1.57, 3.14

Typischer Wertebereich: 0 ≤ Phi Phi Phi Phi phi ≤ 6.28318530718

AxisAxisAxisAxisaxis (input_control)  string(-array) HTupleHTupleHtuple (string / real / integer) (string / double / int / long) (HString / double / Hlong) (char* / double / Hlong)

Achse, um die gedreht wird.

Defaultwert: 'x' "x" "x" "x" "x"

Wertevorschläge: 'x'"x""x""x""x", 'y'"y""y""y""y", 'z'"z""z""z""z"

PxPxPxPxpx (input_control)  point3d.x HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Fixpunkt der Transformation (x-Koordinate).

Defaultwert: 0

Wertevorschläge: 0, 16, 32, 64, 128, 256, 512, 1024

PyPyPyPypy (input_control)  point3d.y HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Fixpunkt der Transformation (y-Koordinate).

Defaultwert: 0

Wertevorschläge: 0, 16, 32, 64, 128, 256, 512, 1024

PzPzPzPzpz (input_control)  point3d.z HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Fixpunkt der Transformation (z-Koordinate).

Defaultwert: 0

Wertevorschläge: 0, 16, 32, 64, 128, 256, 512, 1024

HomMat3DRotateHomMat3DRotateHomMat3DRotateHomMat3DRotatehomMat3DRotate (output_control)  hom_mat3d HHomMat3D, HTupleHTupleHtuple (real) (double) (double) (double)

Ausgabe-Transformationsmatrix.

Ergebnis

Sind die Parameterwerte korrekt, dann liefert hom_mat3d_rotatehom_mat3d_rotateHomMat3dRotateHomMat3dRotateHomMat3dRotate den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

hom_mat3d_identityhom_mat3d_identityHomMat3dIdentityHomMat3dIdentityHomMat3dIdentity, hom_mat3d_translatehom_mat3d_translateHomMat3dTranslateHomMat3dTranslateHomMat3dTranslate, hom_mat3d_scalehom_mat3d_scaleHomMat3dScaleHomMat3dScaleHomMat3dScale, hom_mat3d_rotatehom_mat3d_rotateHomMat3dRotateHomMat3dRotateHomMat3dRotate

Nachfolger

hom_mat3d_translatehom_mat3d_translateHomMat3dTranslateHomMat3dTranslateHomMat3dTranslate, hom_mat3d_scalehom_mat3d_scaleHomMat3dScaleHomMat3dScaleHomMat3dScale, hom_mat3d_rotatehom_mat3d_rotateHomMat3dRotateHomMat3dRotateHomMat3dRotate

Siehe auch

hom_mat3d_inverthom_mat3d_invertHomMat3dInvertHomMat3dInvertHomMat3dInvert, hom_mat3d_identityhom_mat3d_identityHomMat3dIdentityHomMat3dIdentityHomMat3dIdentity, hom_mat3d_rotate_localhom_mat3d_rotate_localHomMat3dRotateLocalHomMat3dRotateLocalHomMat3dRotateLocal, pose_to_hom_mat3dpose_to_hom_mat3dPoseToHomMat3dPoseToHomMat3dPoseToHomMat3d, hom_mat3d_to_posehom_mat3d_to_poseHomMat3dToPoseHomMat3dToPoseHomMat3dToPose, hom_mat3d_composehom_mat3d_composeHomMat3dComposeHomMat3dComposeHomMat3dCompose

Modul

Foundation