Graphics::TransformPoints (坐标空间,坐标空间,PointF*,INT) 方法 (gdiplusgraphics.h)

Graphics::TransformPoints 方法将点数组从一个坐标空间转换为另一个坐标空间。 转换基于此 Graphics 对象的当前世界和页面转换。

语法

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

parameters

[in] destSpace

类型: 坐标空间

指定目标坐标空间的 坐标空间 枚举的元素。

[in] srcSpace

类型: 坐标空间

指定源坐标空间的 坐标空间 枚举的元素。

[in, out] pts

类型: *

指向数组的指针,该数组在输入时保存要转换的点,在输出中保存转换的点。

[in] count

类型: INT

指定 pts 数组中的元素数的整数。

返回值

类型: 状态

如果方法成功,则返回 Ok,这是 Status 枚举的元素。

如果 方法失败,它将返回 Status 枚举的其他元素之一。

注解

世界转换将点从世界坐标空间转换为页面坐标空间。 页面转换将点从页面坐标空间转换为设备坐标空间。 有关坐标空间的详细信息,请参阅 坐标系的类型

示例

以下示例创建 一个 Graphics 对象,并将其世界转换设置为右翻译 40 个单位,向下 30 个单位。 然后,代码创建一个点数组,并将该数组的地址传递给同一 Graphics 对象的 Graphics::TransformPoints 方法。 数组中的点由 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 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 gdiplusgraphics.h (包括 Gdiplus.h)
Library Gdiplus.lib
DLL Gdiplus.dll

另请参阅

显卡

Graphics::GetTransform

Graphics::MultiplyTransform

Graphics::ResetTransform

Graphics::RotateTransform

Graphics::ScaleTransform

Graphics::SetTransform

Graphics::TranslateTransform

矩阵

MatrixOrder

转换

坐标系类型