▲坐标空间
坐标用以确定图形在确定空间中的位置,在windows操作系统中存在着四个不同的空间,每个空间都有相互独立的坐标系,即四个坐标空间。
世界坐标空间(World-Space):支持几何变换。只有调用SetWorldTransform函数才会使用世界坐标空间。
页面坐标空间(Page-Space):被默认使用的坐标空间。
设备坐标空间(Device-Space):同设备上下文相关联的设备空间。可以表示物理设备的一小块或者整个物理设备。
物理设备坐标空间(Physical-Device Space):图形设备的物理表面的部分或全部,是图形驱动程序所使用的坐标空间。该空间完全由系统管理。
世界坐标空间和页面坐标空间统称为逻辑坐标空间,是GDI用户所能够直接使用的坐标空间。也就是说进行GDI输出时,你所指定的位置、大小等信息只能是相对于逻辑坐标空间的数据。
▲绘图过程
前提:获取DC(即与输出设备上输出区域相关的设备描述表,包括了相关的坐标空间)
1.绘图指令(作用于窗口,采用逻辑单位)
↓ (按指定映射模式)
2.图形映射至设备空间(作用于视口,采用设备单位)
↓ (系统内部管理)
3.图形映射至物理设备空间(显示在输出设备上)
▲映射模式
映射模式指定了窗口中使用的是那一种逻辑单位,以及原点位置和Y轴的方向。缺省的映射模式为MM_TEXT,此时逻辑单位为像素,原点在窗口左上角,Y轴方向向下为正。
SetMapMode(...) //改变映射模式
▲坐标原点、范围