PathGradientBrush::ScaleTransform-Methode (gdipluspath.h)
Die PathGradientBrush::ScaleTransform-Methode aktualisiert die aktuelle Transformationsmatrix dieses Pinsels mit dem Produkt aus sich selbst und einer Skalierungsmatrix.
Syntax
Status ScaleTransform(
[in] REAL sx,
[in] REAL sy,
[in] MatrixOrder order
);
Parameter
[in] sx
Typ: REAL
Reelle Zahl, die den horizontalen Skalierungsfaktor angibt.
[in] sy
Typ: REAL
Reelle Zahl, die den vertikalen Skalierungsfaktor angibt.
[in] order
Typ: MatrixOrder
Optional. Element der MatrixOrder-Enumeration , das die Reihenfolge der Multiplikation angibt. MatrixOrderPrepend gibt an, dass sich die Skalierungsmatrix auf der linken Seite befindet, und MatrixOrderAppend gibt an, dass sich die Skalierungsmatrix auf der rechten Seite befindet. Der Standardwert ist MatrixOrderPrepend.
Rückgabewert
Typ: Status
Wenn die Methode erfolgreich ist, gibt sie OK zurück, ein Element der Status-Enumeration .
Wenn die Methode fehlschlägt, gibt sie eines der anderen Elemente der Status-Enumeration zurück.
Hinweise
Eine einzelne 3 ×3-Matrix kann jede Sequenz affiner Transformationen speichern. Wenn Sie über mehrere 3 ×3 Matrizen verfügen, von denen jede eine affine Transformation darstellt, ist das Produkt dieser Matrizen eine einzelne 3 ×3-Matrix, die die gesamte Sequenz von Transformationen darstellt. Die transformation, die von diesem Produkt dargestellt wird, wird als zusammengesetzte Transformation bezeichnet. Angenommen, Matrix T stellt eine Übersetzung und Matrix S eine Skalierung dar. Wenn Matrix M das Produkt TS ist, stellt Matrix M eine zusammengesetzte Transformation dar: zuerst übersetzen, dann skalieren.
Beispiele
Im folgenden Beispiel wird ein PathGradientBrush-Objekt basierend auf einem dreieckigen Pfad erstellt. Die Aufrufe der Methoden PathGradientBrush::TranslateTransform und PathGradientBrush::ScaleTransform des PathGradientBrush-Objekts legen die Elemente der Transformationsmatrix des Pinsels so fest, dass sie eine zusammengesetzte Transformation darstellt: zuerst übersetzen, dann skalieren. Der Code verwendet den Pfadverlaufspinsel zweimal, um ein Rechteck zu zeichnen: einmal vor dem Festlegen der Transformation und einmal nach dem Festlegen der Transformation.
VOID Example_ScaleTransform(HDC hdc)
{
Graphics graphics(hdc);
// Create a path gradient brush based on an array of points.
Point pts[] = {Point(0, 0), Point(50, 0), Point(50, 50)};
PathGradientBrush pthGrBrush(pts, 3);
// Fill an area with the path gradient brush (no transformation).
graphics.FillRectangle(&pthGrBrush, 0, 0, 500, 500);
pthGrBrush.TranslateTransform(50.0f, 40.0f); // translate
pthGrBrush.ScaleTransform(3.0f, 2.0f, MatrixOrderAppend); // then scale
// Fill the same area with the transformed path gradient brush.
graphics.FillRectangle(&pthGrBrush, 0, 0, 500, 500);
}
Anforderungen
Unterstützte Mindestversion (Client) | Windows XP, Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | gdipluspath.h (include Gdiplus.h) |
Bibliothek | Gdiplus.lib |
DLL | Gdiplus.dll |
Weitere Informationen
Füllen einer Form mit einem Farbverlauf
Matrixdarstellung von Transformationen
PathGradientBrush::GetTransform
PathGradientBrush::MultiplyTransform
PathGradientBrush::ResetTransform
PathGradientBrush::RotateTransform
PathGradientBrush::SetTransform