Share via


LinearGradientBrush::RotateTransform-Methode (gdiplusbrush.h)

Die LinearGradientBrush::RotateTransform-Methode aktualisiert die aktuelle Transformationsmatrix dieses Pinsels mit dem Produkt selbst und einer Rotationsmatrix.

Syntax

Status RotateTransform(
  [in] REAL        angle,
  [in] MatrixOrder order
);

Parameter

[in] angle

Typ: REAL

Reelle Zahl, die den Drehwinkel in Grad angibt.

[in] order

Typ: MatrixOrder

Optional. Element der MatrixOrder-Enumeration , das die Reihenfolge der Multiplikation angibt. MatrixOrderPrepend gibt an, dass sich die Drehungsmatrix auf der linken Seite befindet, und MatrixOrderAppend gibt an, dass sich die Rotationsmatrix 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, wird eines der anderen Elemente der Status-Enumeration zurückgegeben.

Hinweise

Eine einzelne 3 ×3-Matrix kann jede Sequenz von affinen 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 durch dieses Produkt dargestellt wird, wird als zusammengesetzte Transformation bezeichnet. Angenommen, Matrix T stellt eine Übersetzung dar, und Matrix R stellt eine Drehung dar. Wenn Matrix M das Produkt TR ist, stellt Matrix M eine zusammengesetzte Transformation dar: zuerst übersetzen und dann drehen.

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

Beispiele

Im folgenden Beispiel wird ein linearer Farbverlaufspinsel erstellt und zum Ausfüllen eines Rechtecks verwendet. Als Nächstes ändert der Code die Transformationsmatrix des Pinsels und wendet eine zusammengesetzte Transformation an und füllt dann ein Rechteck mit dem transformierten Pinsel aus.

VOID Example_RotateTrans(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 rotate.
   linGrBrush.ScaleTransform(2, 1);                    // horizontal doubling
   linGrBrush.RotateTransform(20, MatrixOrderAppend);  // 20-degree rotation

   // Fill a large area with the transformed linear gradient brush.
   myGraphics.FillRectangle(&linGrBrush, 0, 200, 800, 150);  
}

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 Formen mit einem Farbverlaufpinsel

LinearGradientBrush

LinearGradientBrush::MultiplyTransform

LinearGradientBrush::ScaleTransform

LinearGradientBrush::TranslateTransform

Matrix

Matrixdarstellung von Transformationen

Matrixorder

Rect

Transformationen