Método LinearGradientBrush::RotateTransform (gdiplusbrush.h)

O método LinearGradientBrush::RotateTransform atualiza a matriz de transformação atual desse pincel com o produto de si mesmo e uma matriz de rotação.

Sintaxe

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

Parâmetros

[in] angle

Tipo: REAL

Número real que especifica o ângulo de rotação em graus.

[in] order

Tipo: MatrixOrder

Opcional. Elemento da enumeração MatrixOrder que especifica a ordem da multiplicação. MatrixOrderPrepend especifica que a matriz de rotação está à esquerda e MatrixOrderAppend especifica que a matriz de rotação está à direita. O valor padrão é MatrixOrderPrepend.

Valor retornado

Tipo: Status

Se o método for bem-sucedido, ele retornará Ok, que é um elemento da enumeração Status .

Se o método falhar, ele retornará um dos outros elementos da enumeração Status .

Comentários

Uma única matriz de 3 ×3 pode armazenar qualquer sequência de transformações afim. Se você tiver várias matrizes 3 ×3, cada uma representando uma transformação afim, o produto dessas matrizes será uma matriz única de 3 ×3 que representa toda a sequência de transformações. A transformação representada por esse produto é chamada de transformação composta. Por exemplo, suponha que a matriz T represente uma tradução e a matriz R represente uma rotação. Se a matriz M for a TR do produto, a matriz M representará uma transformação composta: primeiro traduzir e girar.

A ordem de multiplicação de matriz é importante. Em geral, o produto de matriz RT não é o mesmo que o TR do produto de matriz. No exemplo dado no parágrafo anterior, a transformação composta representada por RT (primeiro girar, depois traduzir) não é igual à transformação composta representada por TR (primeiro traduzir, depois girar).

Exemplos

O exemplo a seguir cria um pincel de gradiente linear e o usa para preencher um retângulo. Em seguida, o código modifica a matriz de transformação do pincel, aplicando uma transformação composta e preenche um retângulo com o pincel transformado.

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

Requisitos

   
Cliente mínimo com suporte Windows XP, Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho gdiplusbrush.h (inclua Gdiplus.h)
Biblioteca Gdiplus.lib
DLL Gdiplus.dll

Confira também

Pincéis e formas preenchidas

Preenchendo formas com um pincel de gradiente

LinearGradientBrush

LinearGradientBrush::MultiplyTransform

LinearGradientBrush::ScaleTransform

LinearGradientBrush::TranslateTransform

Matriz

Representação matricial de transformações

Matrixorder

Rect

Transformações