Name
hom_mat2d_to_affine_parT_hom_mat2d_to_affine_parHomMat2dToAffineParhom_mat2d_to_affine_parHomMat2dToAffineParHomMat2dToAffinePar — Berechnet die affinen Transformationsparameter aus einer homogenen
2D-Transformationsmatrix.
Herror T_hom_mat2d_to_affine_par(const Htuple HomMat2D, Htuple* Sx, Htuple* Sy, Htuple* Phi, Htuple* Theta, Htuple* Tx, Htuple* Ty)
Herror hom_mat2d_to_affine_par(const HTuple& HomMat2D, double* Sx, double* Sy, double* Phi, double* Theta, double* Tx, double* Ty)
void HomMat2dToAffinePar(const HTuple& HomMat2D, HTuple* Sx, HTuple* Sy, HTuple* Phi, HTuple* Theta, HTuple* Tx, HTuple* Ty)
double HHomMat2D::HomMat2dToAffinePar(double* Sy, double* Phi, double* Theta, double* Tx, double* Ty) const
void HOperatorSetX.HomMat2dToAffinePar(
[in] VARIANT HomMat2d, [out] VARIANT* Sx, [out] VARIANT* Sy, [out] VARIANT* Phi, [out] VARIANT* Theta, [out] VARIANT* Tx, [out] VARIANT* Ty)
double HHomMat2DX.HomMat2dToAffinePar(
[out] double* Sy, [out] double* Phi, [out] double* Theta, [out] double* Tx, [out] double* Ty)
static void HOperatorSet.HomMat2dToAffinePar(HTuple homMat2D, out HTuple sx, out HTuple sy, out HTuple phi, out HTuple theta, out HTuple tx, out HTuple ty)
double HHomMat2D.HomMat2dToAffinePar(out double sy, out double phi, out double theta, out double tx, out double ty)
hom_mat2d_to_affine_parhom_mat2d_to_affine_parHomMat2dToAffineParhom_mat2d_to_affine_parHomMat2dToAffineParHomMat2dToAffinePar berechnet aus einer homogenen
2D-Transformationsmatrix HomMat2DHomMat2DHomMat2DHomMat2DHomMat2DhomMat2D die zugehörigen affinen
Transformationsparameter. Die Parameter SxSxSxSxSxsx und SySySySySysy geben an, wie
stark die ursprünglichen x- und y-Achsen von der Transformation skaliert
werden. Die beiden Skalierungsfaktoren sind immer positv. Der Winkel
ThetaThetaThetaThetaThetatheta beschreibt, ob die transformierten Koordinatenachsen
orthogonal sind (ThetaThetaThetaThetaThetatheta = 0) oder ob die y-Achse geschert ist. Falls
|ThetaThetaThetaThetaThetatheta| > pi/2, enthält die
Transformation eine Spiegelung. Der Winkel PhiPhiPhiPhiPhiphi beschreibt die
Rotation der x-Achse des transformierten Koordinatensystems gegenüber der
x-Achse des ursprünglichen Koordinatensystems. Die Parameter TxTxTxTxTxtx und
TyTyTyTyTyty beschreiben die Verschiebung der beiden Koordinatensysteme. Die
Matrix HomMat2DHomMat2DHomMat2DHomMat2DHomMat2DhomMat2D lässt sich mit folgender Operatorsequenz aus den
sechs Transformationsparametern erzeugen:
hom_mat2d_identity (HomMat2DIdentity)
hom_mat2d_scale (HomMat2DIdentity, Sx, Sy, 0, 0, HomMat2DScale)
hom_mat2d_slant (HomMat2DScale, Theta, 'y', 0, 0, HomMat2DSlant)
hom_mat2d_rotate (HomMat2DSlant, Phi, 0, 0, HomMat2DRotate)
hom_mat2d_translate (HomMat2DRotate, Tx, Ty, HomMat2D)
Dies entspricht der folgenden Kette von Transformationsmatrizen:
/ 1 0 +Tx \ / cos(Phi) -sin(Phi) 0 \ / 1 -sin(Theta) 0 \ / Sx 0 0 \
HomMat2D = | 0 1 +Ty | * | sin(Phi) cos(Phi) 0 | * | 0 cos(Theta) 0 | * | 0 Sy 0 |
\ 0 0 1 / \ 0 0 1 / \ 0 0 1 / \ 0 0 1 /
- 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.
SxSxSxSxSxsx (output_control) real → HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)
Skalierung in x-Richtung.
SySySySySysy (output_control) real → HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)
Skalierung in y-Richtung.
TxTxTxTxTxtx (output_control) point.x → HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)
Translation in x-Richtung.
TyTyTyTyTyty (output_control) point.y → HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)
Translation in y-Richtung.
Falls die Matrix HomMat2DHomMat2DHomMat2DHomMat2DHomMat2DhomMat2D nicht degeneriert ist und eine
affine Abbildung darstellt (d.h. keine projektive Abbildung),
liefert hom_mat2d_to_affine_parhom_mat2d_to_affine_parHomMat2dToAffineParhom_mat2d_to_affine_parHomMat2dToAffineParHomMat2dToAffinePar den Wert 2 (H_MSG_TRUE) zurück.
Ansonsten wird eine Ausnahmebehandlung durchgeführt.
vector_to_hom_mat2dvector_to_hom_mat2dVectorToHomMat2dvector_to_hom_mat2dVectorToHomMat2dVectorToHomMat2d,
vector_to_rigidvector_to_rigidVectorToRigidvector_to_rigidVectorToRigidVectorToRigid,
vector_to_similarityvector_to_similarityVectorToSimilarityvector_to_similarityVectorToSimilarityVectorToSimilarity
hom_mat2d_translatehom_mat2d_translateHomMat2dTranslatehom_mat2d_translateHomMat2dTranslateHomMat2dTranslate,
hom_mat2d_scalehom_mat2d_scaleHomMat2dScalehom_mat2d_scaleHomMat2dScaleHomMat2dScale,
hom_mat2d_rotatehom_mat2d_rotateHomMat2dRotatehom_mat2d_rotateHomMat2dRotateHomMat2dRotate,
hom_mat2d_slanthom_mat2d_slantHomMat2dSlanthom_mat2d_slantHomMat2dSlantHomMat2dSlant
Foundation