Método Graphics::TransformPoints(CoordinateSpace,CoordinateSpace,PointF*,INT) (gdiplusgraphics.h)

O método Graphics::TransformPoints converte uma matriz de pontos de um espaço de coordenadas em outro. A conversão é baseada no mundo atual e nas transformações de página deste objeto Graphics .

Sintaxe

Status TransformPoints(
  [in]      CoordinateSpace destSpace,
  [in]      CoordinateSpace srcSpace,
  [in, out] PointF          *pts,
  [in]      INT             count
);

Parâmetros

[in] destSpace

Tipo: CoordinateSpace

Elemento da enumeração CoordinateSpace que especifica o espaço de coordenadas de destino.

[in] srcSpace

Tipo: CoordinateSpace

Elemento da enumeração CoordinateSpace que especifica o espaço de coordenadas de origem.

[in, out] pts

Tipo: Ponto*

Ponteiro para uma matriz que, na entrada, mantém os pontos a serem convertidos e, na saída, mantém os pontos convertidos.

[in] count

Tipo: INT

Inteiro que especifica o número de elementos na matriz pts .

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

A transformação de mundo converte pontos do espaço de coordenadas do mundo para o espaço de coordenadas da página. A transformação de página converte pontos do espaço de coordenadas da página para o espaço de coordenadas do dispositivo. Para obter mais informações sobre espaços de coordenadas, consulte Tipos de sistemas de coordenadas.

Exemplos

O exemplo a seguir cria um objeto Graphics e define sua transformação de mundo para uma tradução de 40 unidades à direita e 30 unidades para baixo. Em seguida, o código cria uma matriz de pontos e passa o endereço dessa matriz para o método Graphics::TransformPoints do mesmo objeto Graphics . Os pontos na matriz são transformados pela transformação mundial do objeto Graphics . O código chama o método Graphics::D rawLine duas vezes: uma para conectar os dois pontos antes da transformação e uma vez para conectar os dois pontos após a transformação.

VOID Example_TransformPoints(HDC hdc)
{
   Graphics graphics(hdc);
   Pen pen(Color(255, 0, 0, 255));

   // Create an array of two Point objects.
   Point points[2] = {Point(0, 0), Point(100, 50)};

   // Draw a line that connects the two points.
   // No transformation has been performed yet.
   graphics.DrawLine(&pen, points[0], points[1]);

   // Set the world transformation of the Graphics object.
   graphics.TranslateTransform(40.0f, 30.0f);

   // Transform the points in the array from world to page coordinates.
   graphics.TransformPoints(
      CoordinateSpacePage, 
      CoordinateSpaceWorld, 
      points, 
      2);

   // It is the world transformation that takes points from world
   // space to page space. Because the world transformation is a
   // translation 40 to the right and 30 down, the
   // points in the array are now (40, 30) and (140, 80).

   // Draw a line that connects the transformed points.
   graphics.ResetTransform();
   graphics.DrawLine(&pen, points[0], points[1]);
}

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

Confira também

Elementos gráficos

Graphics::GetTransform

Graphics::MultiplyTransform

Graphics::ResetTransform

Graphics::RotateTransform

Graphics::ScaleTransform

Graphics::SetTransform

Graphics::TranslateTransform

Matriz

Matrixorder

Transformações

Tipos de sistemas de coordenadas