Freigeben über


TextureBrush::ScaleTransform-Methode (gdiplusbrush.h)

Die TextureBrush::ScaleTransform-Methode aktualisiert die aktuelle Transformationsmatrix dieses Texturpinsels 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 Betrag angibt, der in x-Richtung skaliert werden soll.

[in] sy

Typ: REAL

Reelle Zahl, die den Betrag angibt, der in y-Richtung skaliert werden soll.

[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 dar, und Matrix S stellt eine Skalierung dar. Wenn Matrix M das Produkt TS ist, stellt Matrix M eine zusammengesetzte Transformation dar: zuerst übersetzen, dann skalieren.

Die Reihenfolge der Matrixmultiplikation ist wichtig. Im Allgemeinen ist das Matrixprodukt RT nicht mit dem Matrixprodukt TR identisch. Im Beispiel im vorherigen Absatz ist die durch RT dargestellte zusammengesetzte Transformation (zuerst rotieren, dann übersetzen) nicht mit der zusammengesetzten Transformation identisch, die von TR dargestellt wird (zuerst übersetzen, dann rotieren).

Beispiele

Im folgenden Beispiel wird ein Texturpinsel erstellt und die Transformation des Pinsels festgelegt. Der Code verwendet dann den transformierten Pinsel, um ein Rechteck zu füllen.

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);
}

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 gdiplusbrush.h (include Gdiplus.h)
Bibliothek Gdiplus.lib
DLL Gdiplus.dll

Weitere Informationen

Pinsel und gefüllte Formen

Füllen von Shapes mit einem Farbverlaufpinsel

Bild

Matrix

Matrixdarstellung von Transformationen

Matrixorder

Texturebrush

TextureBrush::GetTransform

TextureBrush::MultiplyTransform

TextureBrush::RotateTransform

TextureBrush::SetTransform

TextureBrush::TranslateTransform

Transformationen