Les matrices
Groupe : Matrice affine
Fonctions matricielles permettant d'initialiser, de transformer et d'effectuer diverses autres opérations sur ces matrices. Elles peuvent être utilisées
avec gdTransformAffineCopy et sont également utilisées dans diverses fonctions de transformation dans GD.
Les matrices sont créées à l'aide d'un tableau double à 6 éléments :
- matrix[0] == xx
- matrix[1] == yx
- matrix[2] == xy
- matrix[3] == xy
- matrix[4] == x0
- matrix[5] == y0
où la transformation d'un point donné (x,y) est donnée par :
- x_new = xx * x + xy * y + x0;
- y_new = yx * x + yy * y + y0;
Les fonctions
Groupe de matrices : matrice affine
Applique une transformation affine à un point (virgule flottante gdPointF).
Paramètre
Nom |
Description |
dst |
Ce paramètre permet d'indiquer où entreposer le point résultant. |
affine |
Ce paramètre permet d'indiquer le point source. |
flip_horz |
Ce paramètre permet d'indiquer la matrice affine. |
Retour
Valeur |
Description |
Entier |
GD_TRUE si l'affine est rectiligne ou GD_FALSE |
Trouver l'inverse d'une transformation affine.
Toutes les transformations affines non dégénérées sont inversibles. L'application de la matrice inversée restaurera les valeurs d'origine. La
multiplication de src par dst (commutatif) renverra l'identité affine (erreur d'arrondi possible).
Paramètre
Nom |
Description |
dst |
Ce paramètre permet d'indiquer où entreposer la transformation affine résultante. |
src_affine |
Ce paramètre permet d'indiquer la matrice affine originale. |
flip_horz |
Ce paramètre permet d'indiquer s'il faut ou non retourner horizontalement. |
flip_vert |
Ce paramètre permet d'indiquer s'il faut ou non retourner verticalement. |
Voir également
Retour
Valeur |
Description |
Entier |
GD_TRUE en cas de succès ou GD_FALSE en cas d'échec |
int gdAffineFlip(double dst[6], const double src[6], const int flip_h, const int flip_v);
|
Inverser une transformation affine horizontalement ou verticalement.
Inverse la transformation affine, en donnant GD_FALSE pour flip_horz et flip_vert pour cloner la matrice affine. GD_TRUE pour
les deux copiera une rotation de 180°.
Paramètre
Nom |
Description |
dst |
Ce paramètre permet d'indiquer où entreposer la transformation affine résultante. |
src_affine |
Ce paramètre permet d'indiquer une matrice affine originale. |
flip_h |
Ce paramètre permet d'indiquer s'il faut ou non retourner horizontalement. |
flip_v |
Ce paramètre permet d'indiquer s'il faut ou non retourner verticalement. |
|
Retour
Valeur |
Description |
Entier |
GD_TRUE en cas de succès ou GD_FALSE |
int gdAffineConcat(double dst[6], const double m1[6], const double m2[6]);
|
Concatène (multiplier) deux matrices de transformation affine.
Concatène deux transformations affines ensemble, c'est-à-dire que le résultat sera l'équivalent de faire d'abord la transformation m1 puis m2.
Tous les paramètres peuvent être la même matrice (il est possible de l'appeler en toute sécurité en utilisant le même tableau pour les trois paramètres).
Paramètre
Nom |
Description |
dst |
Ce paramètre permet d'indiquer où entreposer la transformation affine résultante. |
m1 |
Ce paramètre permet d'indiquer la première matrice affine. |
m2 |
Ce paramètre permet d'indiquer la deuxième matrice affine. |
Retour
Valeur |
Description |
Entier |
GD_TRUE en cas de succès ou GD_FALSE |
Mettre en place la matrice d'identité.
Paramètre
Nom |
Description |
dst |
Ce paramètre permet d'indiquer où entreposer la transformation affine résultante. |
Retour
Valeur |
Description |
Entier |
GD_TRUE en cas de succès ou GD_FALSE |
int gdAffineScale(double dst[6], const double scale_x, const double scale_y);
|
Mettre en place une matrice de mise à l'échelle.
Paramètre
Nom |
Description |
scale_x |
Ce paramètre permet d'indiquer le facteur d'échelle X. |
scale_y |
Ce paramètre permet d'indiquer le facteur d'échelle Y. |
Retour
Valeur |
Description |
Entier |
GD_TRUE en cas de succès ou GD_FALSE |
Configurez une transformation affine de rotation.
Comme l'autre angle dans libGD, dans lequel l'augmentation de y se déplace vers le bas, il s'agit d'une rotation dans le sens inverse des aiguilles d'une montre.
Paramètre
Nom |
Description |
dst |
Ce paramètre permet d'indiquer où entreposer la transformation affine résultante. |
angle |
Ce paramètre permet d'indiquer l'angle de rotation en degrés. |
Retour
Valeur |
Description |
Entier |
GD_TRUE en cas de succès ou GD_FALSE |
Configurer une matrice de cisaillement horizontal || devient \\.
Paramètre
Nom |
Description |
dst |
Ce paramètre permet d'indiquer où entreposer la transformation affine résultante. |
angle |
Ce paramètre permet d'indiquer l'angle de cisaillement en degrés. |
Retour
Valeur |
Description |
Entier |
GD_TRUE en cas de succès ou GD_FALSE |
Configurez une matrice de cisaillement vertical, les colonnes ne sont pas touchées.
Paramètre
Nom |
Description |
dst |
Ce paramètre permet d'indiquer où entreposer la transformation affine résultante |
angle |
Ce paramètre permet d'indiquer l'angle de cisaillement en degrés. |
Retour
Valeur |
Description |
Entier |
GD_TRUE en cas de succès ou GD_FALSE |
Mettre en place une matrice de traduction.
Paramètre
Nom |
Description |
dst |
Ce paramètre permet d'indiquer où entreposer la transformation affine résultante. |
offset_x |
Ce paramètre permet d'indiquer un montant de la translation horizontale. |
offset_y |
Ce paramètre permet d'indiquer le montant de la translation verticale. |
Retour
Valeur |
Description |
Entier |
GD_TRUE en cas de succès ou GD_FALSE |
Détermine si la transformation affine est alignée sur l'axe. Une tolérance a été implémentée à l'aide de GD_EPSILON.
Paramètre
Nom |
Description |
m |
Ce paramètre permet d'indiquer la transformation affine. |
Retour
Valeur |
Description |
Entier |
GD_TRUE si l'affine est rectiligne ou GD_FALSE |
Détermine si deux transformations affines sont égales. Une tolérance a été implémentée à l'aide de GD_EPSILON.
Paramètre
Nom |
Description |
m1 |
La première transformation affine |
m2 |
La deuxième transformation affine |
Retour
Valeur |
Description |
Entier |
GD_TRUE en cas de succès ou GD_FALSE |
Dernière mise à jour : Mardi, le 8 octobre 2024