GdipTransformMatrixPoints()



Syntaxe
Resultat.i = GdipTransformMatrixPoints(*matrix, @pts.PointF, count.l)
Paramètres
*matrix

[in] Pointeur sur un objet Matrix.

pts.PointF

[in, out] Tableau de type PointF (nombres flottants) contenant les points à transformer et qui recevra les points modifiés. Chaque point est transformé (multiplié par la matrice) et mis à jour avec le résultat de la transformation.

count.l

[in] Nombre entier positif qui spécifie le nombre de points à transformer.

Description

Cette fonction permet de multiplier chaque point du tableau par la matrice *matrix. Chaque point est traité comme une ligne de matrice. La multiplication est effectuée avec la matrice définie par le tableau du côté gauche et la matrice *matrix du côté droit (la multiplication des matrices n'est pas commutative).

Cette fonction utilise un tableau de nombres flottants alors que la fonction GdipTransformMatrixPointsI() utilise un tableau de nombres de type long.

Le premier fichier d'exemple crée un tableau de 5 points formant un rectangle. Le rectangle est dessiné avant l'application de la mise à l'échelle (rectangle bleu). Une matrice est crée qui est ensuite redimensionnée à l'aide d'un facteur d'échelle de 3 sur l'axe X et de 2 sur l'axe Y. Cette matrice est appliquée au tableau de points. Le tableau transformé est dessiné (rectangle rouge). Le rectangle rouge a été redimensionné en utilisant un facteur d'échelle de 3 sur l'axe X et de 2 sur l'axe Y, y compris l'angle supérieur gauche du rectangle (point initial du rectangle).

Le deuxième fichier d'exemple crée un tableau de 5 points. A partir de ce tableau, on dessine une courbe avant l'application de la mise à l'échelle du tableau (courbe bleue). Une matrice est crée qui permet de modifier l'échelle, pas de modification selon l'axe X mais il y a un doublement selon l'axe Y (m11 = 1 et m22 = 2), ensuite cette matrice est appliquée au tableau de points. On redessine la courbe à partir du tableau transformé (courbe rouge). La courbe rouge a été redimensionnée en utilisant un facteur d'échelle de 1 sur l'axe X (pas de modifications sur l'axe X) et un facteur d'échelle de 2 sur l'axe Y, y compris l'origine de la courbe en Y.

Résultat de la fonction
Si la fonction réussit, elle retourne #Ok qui est une constante de l'énumération status.
Si la fonction échoue, elle retourne une des autres valeurs de l'énumération status.
PB - OS
PureBasic v4.30 bêta 4 (Windows - x86)
Testé avec Windows Vista édition familiale Premium