Método LinearGradientBrush::TranslateTransform (gdiplusbrush.h)
O método LinearGradientBrush::TranslateTransform atualiza a matriz de transformação atual desse pincel com o produto de si mesmo e uma matriz de tradução.
Sintaxe
Status TranslateTransform(
[in] REAL dx,
[in] REAL dy,
[in] MatrixOrder order
);
Parâmetros
[in] dx
Tipo: REAL
Número real que especifica o componente horizontal da tradução.
[in] dy
Tipo: REAL
Número real que especifica o componente vertical da tradução.
[in] order
Tipo: MatrixOrder
Opcional. Elemento da enumeração MatrixOrder que especifica a ordem da multiplicação. MatrixOrderPrepend especifica que a matriz de tradução está à esquerda e MatrixOrderAppend especifica que a matriz de tradução está à direita. O valor padrão é MatrixOrderPrepend.
Retornar valor
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 S represente um dimensionamento e a matriz T represente uma tradução. Se a matriz M for o ST do produto, a matriz M representará uma transformação composta: primeiro dimensionar e, em seguida, traduzir.
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_TranslateTrans(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 translate.
linGrBrush.ScaleTransform(2, 1); // horizontal doubling
linGrBrush.TranslateTransform(30, MatrixOrderAppend);// translation
// Fill a large area with the transformed linear gradient brush.
myGraphics.FillRectangle(&linGrBrush, 0, 200, 800, 150);
}
Requisitos
Requisito | Valor |
---|---|
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
Preenchendo formas com um pincel de gradiente
LinearGradientBrush::MultiplyTransform
LinearGradientBrush::ResetTransform
LinearGradientBrush::RotateTransform
LinearGradientBrush::ScaleTransform