LinearGradientBrush ::TranslateTransform, méthode (gdiplusbrush.h)
La méthode LinearGradientBrush ::TranslateTransform met à jour la matrice de transformation actuelle de ce pinceau avec le produit de lui-même et une matrice de traduction.
Syntaxe
Status TranslateTransform(
[in] REAL dx,
[in] REAL dy,
[in] MatrixOrder order
);
Paramètres
[in] dx
Type : REAL
Nombre réel qui spécifie le composant horizontal de la traduction.
[in] dy
Type : REAL
Nombre réel qui spécifie le composant vertical de la traduction.
[in] order
Type : MatrixOrder
facultatif. Élément de l’énumération MatrixOrder qui spécifie l’ordre de la multiplication. MatrixOrderPrepend spécifie que la matrice de traduction se trouve à gauche, et MatrixOrderAppend spécifie que la matrice de traduction 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 .
Remarques
Une seule matrice 3 ×3 peut stocker n’importe quelle séquence de transformations affines. Si vous avez plusieurs matrices de 3 ×3, chacune représentant une transformation affine, le produit de ces matrices est une matrice unique 3 ×3 qui représente la séquence entière de transformations. La transformation représentée par ce produit est appelée transformation composite. Par exemple, supposons que la matrice S représente une mise à l’échelle et que la matrice T représente une traduction. Si la matrice M est la st du produit, la matrice M représente une transformation composite : d’abord mettre à l’échelle, puis traduire.
L’ordre de multiplication des matrices est important. En général, le produit de matrice RT n’est pas le même que le 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 la même que la transformation composite représentée par TR (d’abord traduire, puis pivoter).
Exemples
L’exemple suivant crée un pinceau de dégradé linéaire et l’utilise pour remplir un rectangle. Ensuite, le code modifie la matrice de transformation du pinceau, en appliquant une transformation composite, puis remplit un rectangle avec le pinceau transformé.
VOID Example_TranslateTrans(HDC hdc)
{
Graphics myGraphics(hdc);
LinearGradientBrush linGrBrush(
Rect(0, 0, 80, 40),
Color(255, 255, 0, 0), // red
Color(255, 0, 0, 255), // blue
LinearGradientModeHorizontal);
// Fill a large area with the linear gradient brush (no transformation).
myGraphics.FillRectangle(&linGrBrush, 0, 0, 800, 150);
// Apply a composite transformation: first scale, then translate.
linGrBrush.ScaleTransform(2, 1); // horizontal doubling
linGrBrush.TranslateTransform(30, MatrixOrderAppend);// translation
// Fill a large area with the transformed linear gradient brush.
myGraphics.FillRectangle(&linGrBrush, 0, 200, 800, 150);
}
Configuration requise
Condition requise | Valeur |
---|---|
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é
LinearGradientBrush ::MultiplyTransform
LinearGradientBrush ::ResetTransform
LinearGradientBrush ::RotateTransform
LinearGradientBrush ::ScaleTransform