Método PathGradientBrush::ScaleTransform (gdipluspath.h)

O método PathGradientBrush::ScaleTransform atualiza a matriz de transformação atual desse pincel com o produto de si mesmo e uma matriz de dimensionamento.

Sintaxe

Status ScaleTransform(
  [in] REAL        sx,
  [in] REAL        sy,
  [in] MatrixOrder order
);

Parâmetros

[in] sx

Tipo: REAL

Número real que especifica o fator de escala horizontal.

[in] sy

Tipo: REAL

Número real que especifica o fator de escala vertical.

[in] order

Tipo: MatrixOrder

Opcional. Elemento da enumeração MatrixOrder que especifica a ordem da multiplicação. MatrixOrderPrepend especifica que a matriz de dimensionamento está à esquerda e MatrixOrderAppend especifica que a matriz de dimensionamento 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 três ×3 pode armazenar qualquer sequência de transformações de afins. Se você tiver várias matrizes de três ×3, cada uma delas representa uma transformação de afinação, o produto dessas matrizes é uma única matriz de três ×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 uma matriz S represente um dimensionamento. Se matrix M for o TS do produto, a matriz M representará uma transformação composta: primeiro traduzir e, em seguida, dimensionar.

Exemplos

O exemplo a seguir cria um objeto PathGradientBrush baseado em um caminho triangular. As chamadas para os métodos PathGradientBrush::TranslateTransform e PathGradientBrush::ScaleTransform do objeto PathGradientBrush definem os elementos da matriz de transformação do pincel para que ele represente uma transformação composta: primeiro traduza e depois dimensione. O código usa o pincel de gradiente de caminho duas vezes para pintar um retângulo: uma vez antes da transformação ser definida e uma vez após a transformação ser definida.

VOID Example_ScaleTransform(HDC hdc)
{
   Graphics graphics(hdc);

   // Create a path gradient brush based on an array of points.
   Point pts[] = {Point(0, 0), Point(50, 0), Point(50, 50)};
   PathGradientBrush pthGrBrush(pts, 3);

   // Fill an area with the path gradient brush (no transformation).
   graphics.FillRectangle(&pthGrBrush, 0, 0, 500, 500);

   pthGrBrush.TranslateTransform(50.0f, 40.0f);               // translate
   pthGrBrush.ScaleTransform(3.0f, 2.0f, MatrixOrderAppend);  // then scale

   // Fill the same area with the transformed path gradient brush.
   graphics.FillRectangle(&pthGrBrush, 0, 0, 500, 500); 
}

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 gdipluspath.h (inclua Gdiplus.h)
Biblioteca Gdiplus.lib
DLL Gdiplus.dll

Confira também

Pincéis e formas preenchidas

Criando um Gradiente de Caminho

Preenchendo uma forma com um Gradiente de Cor

Matriz

Representação matricial de transformações

Matrixorder

Pathgradientbrush

PathGradientBrush::GetTransform

PathGradientBrush::MultiplyTransform

PathGradientBrush::ResetTransform

PathGradientBrush::RotateTransform

PathGradientBrush::SetTransform

PathGradientBrush::TranslateTransform

Transformações