Метод 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 |