affine_trans_point_3d T_affine_trans_point_3d AffineTransPoint3d AffineTransPoint3d (Operator)
Name
affine_trans_point_3d T_affine_trans_point_3d AffineTransPoint3d AffineTransPoint3d
— Wendet eine beliebige affine 3D-Transformation auf Punkte an.
Signatur
Herror T_affine_trans_point_3d (const Htuple HomMat3D , const Htuple Px , const Htuple Py , const Htuple Pz , Htuple* Qx , Htuple* Qy , Htuple* Qz )
void AffineTransPoint3d (const HTuple& HomMat3D , const HTuple& Px , const HTuple& Py , const HTuple& Pz , HTuple* Qx , HTuple* Qy , HTuple* Qz )
HTuple HHomMat3D ::AffineTransPoint3d (const HTuple& Px , const HTuple& Py , const HTuple& Pz , HTuple* Qy , HTuple* Qz ) const
double HHomMat3D ::AffineTransPoint3d (double Px , double Py , double Pz , double* Qy , double* Qz ) const
static void HOperatorSet .AffineTransPoint3d (HTuple homMat3D , HTuple px , HTuple py , HTuple pz , out HTuple qx , out HTuple qy , out HTuple qz )
HTuple HHomMat3D .AffineTransPoint3d (HTuple px , HTuple py , HTuple pz , out HTuple qy , out HTuple qz )
double HHomMat3D .AffineTransPoint3d (double px , double py , double pz , out double qy , out double qz )
Beschreibung
affine_trans_point_3d affine_trans_point_3d AffineTransPoint3d AffineTransPoint3d AffineTransPoint3d
wendet eine beliebige affine 3D-Transformation
(Skalierung, Drehung, Verschiebung) auf die Eingabepunkte
(Px Px Px Px px
,Py Py Py Py py
,Pz Pz Pz Pz pz
) an und liefert die Ergebnispunkte in
(Qx Qx Qx Qx qx
,Qy Qy Qy Qy qy
,Qz Qz Qz Qz qz
) zurück. Die Transformation wird durch
eine homogene Transformationsmatrix beschrieben, die in HomMat3D HomMat3D HomMat3D HomMat3D homMat3D
übergeben wird. Dies entspricht der folgenden Gleichung (Ein- und
Ausgabepunkte als homogene Vektoren dargestellt):
Die Transformationsmatrix kann mit Hilfe der Operatoren
hom_mat3d_identity hom_mat3d_identity HomMat3dIdentity HomMat3dIdentity HomMat3dIdentity
, hom_mat3d_scale hom_mat3d_scale HomMat3dScale HomMat3dScale HomMat3dScale
,
hom_mat3d_rotate hom_mat3d_rotate HomMat3dRotate HomMat3dRotate HomMat3dRotate
, hom_mat3d_translate hom_mat3d_translate HomMat3dTranslate HomMat3dTranslate HomMat3dTranslate
etc. aufgebaut werden
oder das Resultat von pose_to_hom_mat3d pose_to_hom_mat3d PoseToHomMat3d PoseToHomMat3d PoseToHomMat3d
sein.
Falls zum Beispiel HomMat3D HomMat3D HomMat3D HomMat3D homMat3D
eine starre Transformation ist,
also aus Rotation und Translation besteht, werden die Punkte
folgendermaßen transformiert:
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
(input_control) hom_mat3d →
HHomMat3D , HTuple HTuple Htuple (real) (double ) (double ) (double )
Eingabe-Transformationsmatrix.
Px Px Px Px px
(input_control) point3d.x(-array) →
HTuple HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Eingabepunkt(e) (x-Koordinate).
Defaultwert: 64
Wertevorschläge: 0, 16, 32, 64, 128, 256, 512, 1024
Py Py Py Py py
(input_control) point3d.y(-array) →
HTuple HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Eingabepunkt(e) (y-Koordinate).
Defaultwert: 64
Wertevorschläge: 0, 16, 32, 64, 128, 256, 512, 1024
Pz Pz Pz Pz pz
(input_control) point3d.z(-array) →
HTuple HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Eingabepunkt(e) (z-Koordinate).
Defaultwert: 64
Wertevorschläge: 0, 16, 32, 64, 128, 256, 512, 1024
Qx Qx Qx Qx qx
(output_control) point3d.x(-array) →
HTuple HTuple Htuple (real) (double ) (double ) (double )
Ausgabepunkt(e) (x-Koordinate).
Qy Qy Qy Qy qy
(output_control) point3d.y(-array) →
HTuple HTuple Htuple (real) (double ) (double ) (double )
Ausgabepunkt(e) (y-Koordinate).
Qz Qz Qz Qz qz
(output_control) point3d.z(-array) →
HTuple HTuple Htuple (real) (double ) (double ) (double )
Ausgabepunkt(e) (z-Koordinate).
Ergebnis
Sind die Parameterwerte korrekt, dann liefert
affine_trans_point_3d affine_trans_point_3d AffineTransPoint3d AffineTransPoint3d AffineTransPoint3d
den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine
Fehlerbehandlung durchgeführt.
Vorgänger
hom_mat3d_translate hom_mat3d_translate HomMat3dTranslate HomMat3dTranslate HomMat3dTranslate
,
hom_mat3d_translate_local hom_mat3d_translate_local HomMat3dTranslateLocal HomMat3dTranslateLocal HomMat3dTranslateLocal
,
hom_mat3d_scale hom_mat3d_scale HomMat3dScale HomMat3dScale HomMat3dScale
,
hom_mat3d_scale_local hom_mat3d_scale_local HomMat3dScaleLocal HomMat3dScaleLocal HomMat3dScaleLocal
,
hom_mat3d_rotate hom_mat3d_rotate HomMat3dRotate HomMat3dRotate HomMat3dRotate
,
hom_mat3d_rotate_local hom_mat3d_rotate_local HomMat3dRotateLocal HomMat3dRotateLocal HomMat3dRotateLocal
Nachfolger
hom_mat3d_translate hom_mat3d_translate HomMat3dTranslate HomMat3dTranslate HomMat3dTranslate
,
hom_mat3d_translate_local hom_mat3d_translate_local HomMat3dTranslateLocal HomMat3dTranslateLocal HomMat3dTranslateLocal
,
hom_mat3d_scale hom_mat3d_scale HomMat3dScale HomMat3dScale HomMat3dScale
,
hom_mat3d_scale_local hom_mat3d_scale_local HomMat3dScaleLocal HomMat3dScaleLocal HomMat3dScaleLocal
,
hom_mat3d_rotate hom_mat3d_rotate HomMat3dRotate HomMat3dRotate HomMat3dRotate
,
hom_mat3d_rotate_local hom_mat3d_rotate_local HomMat3dRotateLocal HomMat3dRotateLocal HomMat3dRotateLocal
Modul
Foundation