Name
hom_mat3d_scaleT_hom_mat3d_scaleHomMat3dScaleHomMat3dScale — Fügt eine Skalierung zu einer homogenen 3D-Transformationsmatrix hinzu.
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)
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
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)
hom_mat3d_scalehom_mat3d_scaleHomMat3dScaleHomMat3dScaleHomMat3dScale fügt zur homogenen 3D-Transformationsmatrix
HomMat3DHomMat3DHomMat3DHomMat3DhomMat3D eine Skalierung um die Skalierungsfaktoren SxSxSxSxsx,
SySySySysy und SzSzSzSzsz hinzu und liefert die resultierende Matrix in
HomMat3DScaleHomMat3DScaleHomMat3DScaleHomMat3DScalehomMat3DScale 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 (PxPxPxPxpx,PyPyPyPypy,PzPzPzPzpz) ist dabei der Fixpunkt der
Skalierung, d.h. dieser Punkt bleibt unverändert, wenn man ihn mit
HomMat3DScaleHomMat3DScaleHomMat3DScaleHomMat3DScalehomMat3DScale 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
HomMat3DHomMat3DHomMat3DHomMat3DhomMat3D beschrieben ist, durchzuführen, kann
hom_mat3d_scale_localhom_mat3d_scale_localHomMat3dScaleLocalHomMat3dScaleLocalHomMat3dScaleLocal verwendet werden.
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.
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Eingabe-Transformationsmatrix.
SxSxSxSxsx (input_control) number → HTupleHTupleHtuple (real / integer) (double / int / long) (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
SySySySysy (input_control) number → HTupleHTupleHtuple (real / integer) (double / int / long) (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
SzSzSzSzsz (input_control) number → HTupleHTupleHtuple (real / integer) (double / int / long) (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
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
Ausgabe-Transformationsmatrix.
hom_mat3d_scalehom_mat3d_scaleHomMat3dScaleHomMat3dScaleHomMat3dScale liefert den Wert 2 (H_MSG_TRUE), falls alle drei
Skalierungsfaktoren verschieden von 0 sind. Gegebenenfalls wird eine
Fehlerbehandlung durchgeführt.
hom_mat3d_identityhom_mat3d_identityHomMat3dIdentityHomMat3dIdentityHomMat3dIdentity,
hom_mat3d_translatehom_mat3d_translateHomMat3dTranslateHomMat3dTranslateHomMat3dTranslate,
hom_mat3d_scalehom_mat3d_scaleHomMat3dScaleHomMat3dScaleHomMat3dScale,
hom_mat3d_rotatehom_mat3d_rotateHomMat3dRotateHomMat3dRotateHomMat3dRotate
hom_mat3d_translatehom_mat3d_translateHomMat3dTranslateHomMat3dTranslateHomMat3dTranslate,
hom_mat3d_scalehom_mat3d_scaleHomMat3dScaleHomMat3dScaleHomMat3dScale,
hom_mat3d_rotatehom_mat3d_rotateHomMat3dRotateHomMat3dRotateHomMat3dRotate
hom_mat3d_inverthom_mat3d_invertHomMat3dInvertHomMat3dInvertHomMat3dInvert,
hom_mat3d_identityhom_mat3d_identityHomMat3dIdentityHomMat3dIdentityHomMat3dIdentity,
hom_mat3d_scale_localhom_mat3d_scale_localHomMat3dScaleLocalHomMat3dScaleLocalHomMat3dScaleLocal,
pose_to_hom_mat3dpose_to_hom_mat3dPoseToHomMat3dPoseToHomMat3dPoseToHomMat3d,
hom_mat3d_to_posehom_mat3d_to_poseHomMat3dToPoseHomMat3dToPoseHomMat3dToPose,
hom_mat3d_composehom_mat3d_composeHomMat3dComposeHomMat3dComposeHomMat3dCompose
Foundation