Поделиться через


Метод Graphics::TransformPoints(CoordinateSpace,CoordinateSpace,Point*,INT) (gdiplusgraphics.h)

Метод Graphics::TransformPoints преобразует массив точек из одного пространства координат в другой. Преобразование основано на текущих преобразованиях мира и страниц этого объекта Graphics .

Синтаксис

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

Параметры

[in] destSpace

Тип: CoordinateSpace

Элемент перечисления CoordinateSpace , задающий целевое пространство координат.

[in] srcSpace

Тип: CoordinateSpace

Элемент перечисления CoordinateSpace , указывающий исходное пространство координат.

[in, out] pts

Тип: Point*

Указатель на массив, который на входных данных содержит преобразуемые точки, а на выходных данных — преобразованные точки.

[in] count

Тип: INT

Целое число, указывающее количество элементов в массиве pts .

Возвращаемое значение

Тип: Состояние

В случае успешного выполнения метода возвращается ОК, который является элементом перечисления Status .

Если метод завершается ошибкой, он возвращает один из других элементов перечисления Status .

Комментарии

Преобразование мира преобразует точки из мирового координатного пространства в пространство координат страницы. Преобразование страницы преобразует точки из пространства координат страницы в пространство координат устройства. Дополнительные сведения о координатных пространствах см. в разделе Типы систем координат.

Примеры

В следующем примере создается объект Graphics и задается преобразование мира в виде перевода 40 единиц вправо и 30 единиц вниз. Затем код создает массив точек и передает адрес этого массива методу Graphics::TransformPoints того же объекта Graphics . Точки в массиве преобразуются путем преобразования мира объекта Graphics . Код вызывает метод Graphics::D rawLine дважды: один раз для соединения двух точек перед преобразованием и один раз для соединения двух точек после преобразования.

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

Требования

Требование Значение
Минимальная версия клиента Windows XP, Windows 2000 Профессиональная [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header gdiplusgraphics.h (включая Gdiplus.h)
Библиотека Gdiplus.lib
DLL Gdiplus.dll

См. также раздел

Графика

Graphics::GetTransform

Graphics::MultiplyTransform

Graphics::ResetTransform

Graphics::RotateTransform

Graphics::ScaleTransform

Graphics::SetTransform

Graphics::TranslateTransform

Матрица

MatrixOrder

Преобразования

Типы систем координат