坐标空间的转换
坐标空间是基于笛卡尔坐标系的平面空间。 此系统提供了一种指定平面上每个点的位置的方法。 它需要两个垂直且长度相等的轴。 下图显示了坐标空间。
系统支持四个坐标空间,如下表所述。
坐标空间 | 说明 |
---|---|
world | (可选)用作图形转换的起始坐标空间。 它允许缩放、平移、旋转、剪切和反射。 世界空间的宽度为 2^32 单位,高 2^32 个单位。 |
页 | 用作世界空间之后的下一个空间,或用作图形转换的起始空间。 它设置映射模式。 页面空间还测量 2^32 单位高乘 2^32 单位宽。 |
设备 | 用作页面空间后的下一个空间。 它仅允许转换,这可确保设备空间的来源映射到物理设备空间中的正确位置。 设备空间以 2^27 单位高乘 2^27 个单位宽。 |
物理设备 | 图形转换的最终 (输出) 空间。 它通常指应用程序窗口的工作区;但是,它还可以包括整个桌面、一个完整的窗口 (包括框架、标题栏和菜单栏) ,或者一页打印机或绘图纸,具体取决于获取设备上下文句柄的函数。 物理设备尺寸因显示器、打印机或绘图仪技术设置的尺寸而异。 |
页面空间与设备空间配合使用,为应用程序提供与设备无关的单位,例如毫米和英寸。 本概述将世界空间和页面空间都称为逻辑空间。
为了描述物理设备上的输出,系统会使用转换将 (或映射) 矩形区域从一个坐标空间复制到下一个坐标空间,直到输出完全出现在物理设备上。 如果应用程序调用了 SetWorldTransform 函数,则映射从应用程序的世界空间开始;否则,映射在页空间中发生。 当系统将矩形区域内的每个点从一个空间复制到另一个空间时,它会应用一种称为转换的算法。 转换更改 (或转换) 从一个坐标空间复制到另一个坐标空间的对象的大小、方向和形状。 尽管转换影响整个对象,但它应用于对象中的每一点或每一行。
下图显示了使用 SetWorldTransform 函数执行的典型转换。