KlassenKlassenKlassenKlassen | | | | Operatoren

hom_mat3d_scaleT_hom_mat3d_scaleHomMat3dScalehom_mat3d_scaleHomMat3dScaleHomMat3dScale (Operator)

Name

hom_mat3d_scaleT_hom_mat3d_scaleHomMat3dScalehom_mat3d_scaleHomMat3dScaleHomMat3dScale — Fügt eine Skalierung zu einer homogenen 3D-Transformationsmatrix hinzu.

Signatur

hom_mat3d_scale( : : HomMat3D, Sx, Sy, Sz, Px, Py, Pz : HomMat3DScale)

Herror T_hom_mat3d_scale(const Htuple HomMat3D, const Htuple Sx, const Htuple Sy, const Htuple Sz, const Htuple Px, const Htuple Py, const Htuple Pz, Htuple* HomMat3DScale)

Herror hom_mat3d_scale(const HTuple& HomMat3D, const HTuple& Sx, const HTuple& Sy, const HTuple& Sz, const HTuple& Px, const HTuple& Py, const HTuple& Pz, HTuple* HomMat3DScale)

void HomMat3dScale(const HTuple& HomMat3D, const HTuple& Sx, const HTuple& Sy, const HTuple& Sz, const HTuple& Px, const HTuple& Py, const HTuple& Pz, HTuple* HomMat3DScale)

HHomMat3D HHomMat3D::HomMat3dScale(const HTuple& Sx, const HTuple& Sy, const HTuple& Sz, const HTuple& Px, const HTuple& Py, const HTuple& Pz) const

HHomMat3D HHomMat3D::HomMat3dScale(double Sx, double Sy, double Sz, double Px, double Py, double Pz) const

void HOperatorSetX.HomMat3dScale(
[in] VARIANT HomMat3d, [in] VARIANT Sx, [in] VARIANT Sy, [in] VARIANT Sz, [in] VARIANT Px, [in] VARIANT Py, [in] VARIANT Pz, [out] VARIANT* HomMat3dScale)

IHHomMat3DX* HHomMat3DX.HomMat3dScale(
[in] VARIANT Sx, [in] VARIANT Sy, [in] VARIANT Sz, [in] VARIANT Px, [in] VARIANT Py, [in] VARIANT Pz)

static void HOperatorSet.HomMat3dScale(HTuple homMat3D, HTuple sx, HTuple sy, HTuple sz, HTuple px, HTuple py, HTuple pz, out HTuple homMat3DScale)

HHomMat3D HHomMat3D.HomMat3dScale(HTuple sx, HTuple sy, HTuple sz, HTuple px, HTuple py, HTuple pz)

HHomMat3D HHomMat3D.HomMat3dScale(double sx, double sy, double sz, double px, double py, double pz)

Beschreibung

hom_mat3d_scalehom_mat3d_scaleHomMat3dScalehom_mat3d_scaleHomMat3dScaleHomMat3dScale fügt zur homogenen 3D-Transformationsmatrix HomMat3DHomMat3DHomMat3DHomMat3DHomMat3DhomMat3D eine Skalierung um die Skalierungsfaktoren SxSxSxSxSxsx, SySySySySysy und SzSzSzSzSzsz hinzu und liefert die resultierende Matrix in HomMat3DScaleHomMat3DScaleHomMat3DScaleHomMat3DScaleHomMat3DScalehomMat3DScale zurück. Die Skalierung wird beschrieben durch die 3×3 Skalierungsmatrix S. Sie wird relativ zum globalen (d.h. feststehenden) Koordinatensystem ausgeführt; dies entspricht der folgenden Kette von Transformationsmatrizen:

Der Punkt (PxPxPxPxPxpx,PyPyPyPyPypy,PzPzPzPzPzpz) ist dabei der Fixpunkt der Skalierung, d.h. dieser Punkt bleibt unverändert, wenn man ihn mit HomMat3DScaleHomMat3DScaleHomMat3DScaleHomMat3DScaleHomMat3DScalehomMat3DScale 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 Skalierung 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 HomMat3DHomMat3DHomMat3DHomMat3DHomMat3DhomMat3D beschrieben ist, durchzuführen, kann hom_mat3d_scale_localhom_mat3d_scale_localHomMat3dScaleLocalhom_mat3d_scale_localHomMat3dScaleLocalHomMat3dScaleLocal 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.

Parallelisierung

Parameter

HomMat3DHomMat3DHomMat3DHomMat3DHomMat3DhomMat3D (input_control)  hom_mat3d HHomMat3D, HTupleHTupleHTupleHHomMat3DX, VARIANTHtuple (real) (double) (double) (double) (double) (double)

Eingabe-Transformationsmatrix.

SxSxSxSxSxsx (input_control)  number HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Skalierungsfaktor in x-Richtung.

Defaultwert: 2

Wertevorschläge: 0.125, 0.25, 0.5, 1, 2, 4, 8, 112

Restriktion: Sx != 0

SySySySySysy (input_control)  number HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Skalierungsfaktor in y-Richtung.

Defaultwert: 2

Wertevorschläge: 0.125, 0.25, 0.5, 1, 2, 4, 8, 112

Restriktion: Sy != 0

SzSzSzSzSzsz (input_control)  number HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Skalierungsfaktor in z-Richtung.

Defaultwert: 2

Wertevorschläge: 0.125, 0.25, 0.5, 1, 2, 4, 8, 112

Restriktion: Sz != 0

PxPxPxPxPxpx (input_control)  point3d.x HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Fixpunkt der Transformation (x-Koordinate).

Defaultwert: 0

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

PyPyPyPyPypy (input_control)  point3d.y HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Fixpunkt der Transformation (y-Koordinate).

Defaultwert: 0

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

PzPzPzPzPzpz (input_control)  point3d.z HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Fixpunkt der Transformation (z-Koordinate).

Defaultwert: 0

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

HomMat3DScaleHomMat3DScaleHomMat3DScaleHomMat3DScaleHomMat3DScalehomMat3DScale (output_control)  hom_mat3d HHomMat3D, HTupleHTupleHTupleHHomMat3DX, VARIANTHtuple (real) (double) (double) (double) (double) (double)

Ausgabe-Transformationsmatrix.

Ergebnis

hom_mat3d_scalehom_mat3d_scaleHomMat3dScalehom_mat3d_scaleHomMat3dScaleHomMat3dScale liefert den Wert 2 (H_MSG_TRUE), falls alle drei Skalierungsfaktoren verschieden von 0 sind. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

hom_mat3d_identityhom_mat3d_identityHomMat3dIdentityhom_mat3d_identityHomMat3dIdentityHomMat3dIdentity, hom_mat3d_translatehom_mat3d_translateHomMat3dTranslatehom_mat3d_translateHomMat3dTranslateHomMat3dTranslate, hom_mat3d_scalehom_mat3d_scaleHomMat3dScalehom_mat3d_scaleHomMat3dScaleHomMat3dScale, hom_mat3d_rotatehom_mat3d_rotateHomMat3dRotatehom_mat3d_rotateHomMat3dRotateHomMat3dRotate

Nachfolger

hom_mat3d_translatehom_mat3d_translateHomMat3dTranslatehom_mat3d_translateHomMat3dTranslateHomMat3dTranslate, hom_mat3d_scalehom_mat3d_scaleHomMat3dScalehom_mat3d_scaleHomMat3dScaleHomMat3dScale, hom_mat3d_rotatehom_mat3d_rotateHomMat3dRotatehom_mat3d_rotateHomMat3dRotateHomMat3dRotate

Siehe auch

hom_mat3d_inverthom_mat3d_invertHomMat3dInverthom_mat3d_invertHomMat3dInvertHomMat3dInvert, hom_mat3d_identityhom_mat3d_identityHomMat3dIdentityhom_mat3d_identityHomMat3dIdentityHomMat3dIdentity, hom_mat3d_scale_localhom_mat3d_scale_localHomMat3dScaleLocalhom_mat3d_scale_localHomMat3dScaleLocalHomMat3dScaleLocal, pose_to_hom_mat3dpose_to_hom_mat3dPoseToHomMat3dpose_to_hom_mat3dPoseToHomMat3dPoseToHomMat3d, hom_mat3d_to_posehom_mat3d_to_poseHomMat3dToPosehom_mat3d_to_poseHomMat3dToPoseHomMat3dToPose, hom_mat3d_composehom_mat3d_composeHomMat3dComposehom_mat3d_composeHomMat3dComposeHomMat3dCompose

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren