TextureBrush::ScaleTransform, méthode (gdiplusbrush.h)
La méthode TextureBrush::ScaleTransform met à jour la matrice de transformation actuelle de ce pinceau de texture avec le produit lui-même et une matrice de mise à l’échelle.
Syntaxe
Status ScaleTransform(
[in] REAL sx,
[in] REAL sy,
[in] MatrixOrder order
);
Paramètres
[in] sx
Type : REAL
Nombre réel qui spécifie la quantité à mettre à l’échelle dans le sens x.
[in] sy
Type : REAL
Nombre réel qui spécifie la quantité à mettre à l’échelle dans le sens y.
[in] order
Type : MatrixOrder
Optionnel. Élément de l’énumération MatrixOrder qui spécifie l’ordre de la multiplication. MatrixOrderPrepend spécifie que la matrice de mise à l’échelle se trouve à gauche et MatrixOrderAppend spécifie que la matrice de mise à l’échelle se trouve à droite. La valeur par défaut est MatrixOrderPrepend.
Valeur retournée
Type : État
Si la méthode réussit, elle retourne Ok, qui est un élément de l’énumération Status .
Si la méthode échoue, elle retourne l’un des autres éléments de l’énumération Status .
Notes
Une seule matrice 3×3 peut stocker n’importe quelle séquence de transformations affines. Si vous avez plusieurs matrices 3×3, chacune représentant une transformation affine, le produit de ces matrices est une matrice 3×3 unique qui représente l’ensemble de la séquence de transformations. La transformation représentée par ce produit est appelée transformation composite. Par exemple, supposons que la matrice T représente une traduction et que la matrice S représente une mise à l’échelle. Si la matrice M est le TS de produit, la matrice M représente une transformation composite : d’abord traduire, puis mettre à l’échelle.
L’ordre de multiplication matricielle est important. En général, le produit de matrice RT n’est pas identique au produit de matrice TR. Dans l’exemple donné dans le paragraphe précédent, la transformation composite représentée par RT (d’abord pivoter, puis traduire) n’est pas identique à la transformation composite représentée par TR (d’abord traduire, puis pivoter).
Exemples
L’exemple suivant crée un pinceau de texture et définit la transformation du pinceau. Le code utilise ensuite le pinceau transformé pour remplir un rectangle.
VOID Example_ScaleTransform(HDC hdc)
{
Graphics graphics(hdc);
Image image(L"HouseAndTree.Gif");
TextureBrush textureBrush(&image);
textureBrush.RotateTransform(30); // first rotate
textureBrush.ScaleTransform(3, 1, MatrixOrderAppend); // then scale
graphics.FillRectangle(&textureBrush, 0, 0, 400, 200);
}
Configuration requise
Client minimal pris en charge | Windows XP, Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | gdiplusbrush.h (inclure Gdiplus.h) |
Bibliothèque | Gdiplus.lib |
DLL | Gdiplus.dll |
Voir aussi
Remplissage de formes avec un pinceau dégradé
Représentation matricielle des transformations
TextureBrush::MultiplyTransform