hom_mat3d_scale T_hom_mat3d_scale HomMat3dScale HomMat3dScale hom_mat3d_scale (Operator)
Name
hom_mat3d_scale T_hom_mat3d_scale HomMat3dScale HomMat3dScale hom_mat3d_scale — Fügt eine Skalierung zu einer homogenen 3D-Transformationsmatrix hinzu.
Signatur
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 )
def hom_mat3d_scale (hom_mat_3d : Sequence[float], sx : Union[float, int], sy : Union[float, int], sz : Union[float, int], px : Union[float, int], py : Union[float, int], pz : Union[float, int]) -> Sequence[float]
Beschreibung
hom_mat3d_scale hom_mat3d_scale HomMat3dScale HomMat3dScale HomMat3dScale hom_mat3d_scale fügt zur homogenen 3D-Transformationsmatrix
HomMat3D HomMat3D HomMat3D HomMat3D homMat3D hom_mat_3d eine Skalierung um die Skalierungsfaktoren Sx Sx Sx Sx sx sx ,
Sy Sy Sy Sy sy sy und Sz Sz Sz Sz sz sz hinzu und liefert die resultierende Matrix in
HomMat3DScale HomMat3DScale HomMat3DScale HomMat3DScale homMat3DScale hom_mat_3dscale 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 (Px Px Px Px px px ,Py Py Py Py py py ,Pz Pz Pz Pz pz pz ) ist dabei der Fixpunkt der
Skalierung, d.h. dieser Punkt bleibt unverändert, wenn man ihn mit
HomMat3DScale HomMat3DScale HomMat3DScale HomMat3DScale homMat3DScale hom_mat_3dscale 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
HomMat3D HomMat3D HomMat3D HomMat3D homMat3D hom_mat_3d beschrieben ist, durchzuführen, kann
hom_mat3d_scale_local hom_mat3d_scale_local HomMat3dScaleLocal HomMat3dScaleLocal HomMat3dScaleLocal hom_mat3d_scale_local 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
Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
Wird ohne Parallelisierung verarbeitet.
Parameter
HomMat3D HomMat3D HomMat3D HomMat3D homMat3D hom_mat_3d (input_control) hom_mat3d → HHomMat3D , HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Eingabe-Transformationsmatrix.
Sx Sx Sx Sx sx sx (input_control) number → HTuple Union[float, int] HTuple Htuple (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
Sy Sy Sy Sy sy sy (input_control) number → HTuple Union[float, int] HTuple Htuple (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
Sz Sz Sz Sz sz sz (input_control) number → HTuple Union[float, int] HTuple Htuple (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
Px Px Px Px px px (input_control) point3d.x → HTuple Union[float, int] HTuple Htuple (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
Py Py Py Py py py (input_control) point3d.y → HTuple Union[float, int] HTuple Htuple (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
Pz Pz Pz Pz pz pz (input_control) point3d.z → HTuple Union[float, int] HTuple Htuple (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
HomMat3DScale HomMat3DScale HomMat3DScale HomMat3DScale homMat3DScale hom_mat_3dscale (output_control) hom_mat3d → HHomMat3D , HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Ausgabe-Transformationsmatrix.
Ergebnis
hom_mat3d_scale hom_mat3d_scale HomMat3dScale HomMat3dScale HomMat3dScale hom_mat3d_scale 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_identity hom_mat3d_identity HomMat3dIdentity HomMat3dIdentity HomMat3dIdentity hom_mat3d_identity ,
hom_mat3d_translate hom_mat3d_translate HomMat3dTranslate HomMat3dTranslate HomMat3dTranslate hom_mat3d_translate ,
hom_mat3d_scale hom_mat3d_scale HomMat3dScale HomMat3dScale HomMat3dScale hom_mat3d_scale ,
hom_mat3d_rotate hom_mat3d_rotate HomMat3dRotate HomMat3dRotate HomMat3dRotate hom_mat3d_rotate
Nachfolger
hom_mat3d_translate hom_mat3d_translate HomMat3dTranslate HomMat3dTranslate HomMat3dTranslate hom_mat3d_translate ,
hom_mat3d_scale hom_mat3d_scale HomMat3dScale HomMat3dScale HomMat3dScale hom_mat3d_scale ,
hom_mat3d_rotate hom_mat3d_rotate HomMat3dRotate HomMat3dRotate HomMat3dRotate hom_mat3d_rotate
Siehe auch
hom_mat3d_invert hom_mat3d_invert HomMat3dInvert HomMat3dInvert HomMat3dInvert hom_mat3d_invert ,
hom_mat3d_identity hom_mat3d_identity HomMat3dIdentity HomMat3dIdentity HomMat3dIdentity hom_mat3d_identity ,
hom_mat3d_scale_local hom_mat3d_scale_local HomMat3dScaleLocal HomMat3dScaleLocal HomMat3dScaleLocal hom_mat3d_scale_local ,
pose_to_hom_mat3d pose_to_hom_mat3d PoseToHomMat3d PoseToHomMat3d PoseToHomMat3d pose_to_hom_mat3d ,
hom_mat3d_to_pose hom_mat3d_to_pose HomMat3dToPose HomMat3dToPose HomMat3dToPose hom_mat3d_to_pose ,
hom_mat3d_compose hom_mat3d_compose HomMat3dCompose HomMat3dCompose HomMat3dCompose hom_mat3d_compose
Modul
Foundation