Metodo LinearGradientBrush::RotateTransform (gdiplusbrush.h)
Il metodo LinearGradientBrush::RotateTransform aggiorna la matrice di trasformazione corrente del pennello con il prodotto stesso e una matrice di rotazione.
Sintassi
Status RotateTransform(
[in] REAL angle,
[in] MatrixOrder order
);
Parametri
[in] angle
Tipo: REAL
Numero reale che specifica l'angolo di rotazione in gradi.
[in] order
Tipo: MatrixOrder
Facoltativa. Elemento dell'enumerazione MatrixOrder che specifica l'ordine della moltiplicazione. MatrixOrderPrepend specifica che la matrice di rotazione si trova a sinistra e MatrixOrderAppend specifica che la matrice di rotazione è a destra. Il valore predefinito è MatrixOrderPrepend.
Valore restituito
Tipo: Stato
Se il metodo ha esito positivo, restituisce Ok, ovvero un elemento dell'enumerazione Status .
Se il metodo ha esito negativo, restituisce uno degli altri elementi dell'enumerazione Status .
Commenti
Una singola matrice di ×3 può archiviare qualsiasi sequenza di trasformazioni affine. Se sono presenti più di 3 matrici ×3, ognuna delle quali rappresenta una trasformazione affine, il prodotto di tali matrici è una matrice singola 3 ×3 che rappresenta l'intera sequenza di trasformazioni. La trasformazione rappresentata da tale prodotto è denominata trasformazione composita. Si supponga, ad esempio, che la matrice T rappresenti una traduzione e la matrice R rappresenti una rotazione. Se matrice M è il prodotto TR, la matrice M rappresenta una trasformazione composita: prima tradurre, quindi ruotare.
L'ordine della moltiplicazione della matrice è importante. In generale, il prodotto matrice RT non è lo stesso del prodotto matrice TR. Nell'esempio indicato nel paragrafo precedente, la trasformazione composita rappresentata da RT (prima ruota, quindi traduci) non è uguale alla trasformazione composita rappresentata da TR (prima tradurre, quindi ruotare).
Esempio
L'esempio seguente crea un pennello sfumatura lineare e lo usa per riempire un rettangolo. Successivamente, il codice modifica la matrice di trasformazione del pennello, applicando una trasformazione composita e quindi riempie un rettangolo con il pennello trasformato.
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);
}
Requisiti
Client minimo supportato | Windows XP, Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | gdiplusbrush.h (include Gdiplus.h) |
Libreria | Gdiplus.lib |
DLL | Gdiplus.dll |
Vedi anche
Riempimento di forme con un pennello sfumatura
LinearGradientBrush::MultipliTransform
LinearGradientBrush::ScaleTransform
LinearGradientBrush::TranslateTransform