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 |