vc 中有众多的坐标系,有时候不好分清楚,总的说来有逻辑坐标和设备坐标,各坐标存在着交叉的地方。
逻辑坐标是系统用作记录的坐标,具有广泛性,只要是原始数据都存在着这种逻辑坐标,是我们转换设备坐标的标准和依据。当客户区不具有滚动功能时,设备坐标和逻辑坐标是一致的。
设备坐标(Device Coordinate)又称为物理坐标(Physical Coordinate),是指输出设备上的坐标。通常将屏幕上的设备坐标称为屏幕坐标。设备坐标用对象距离窗口左上角的水平距离和垂直距离来指定对象的位置,是以像素为单位来表示的,设备坐标的X轴向右为正,Y轴向下为正,坐标原点位于窗口的左上角。
所谓的桌面,客户区坐标都是相对于设备坐标来说的。存在几种模式的转换问题。
1、映射模式:影像像素坐标相对于地面点的转换以及设备坐标的映射模式的选取问题
2 、逻辑坐标和设备坐标的相互转化:可以使用CDC 函数DptoLP()将设备坐标转化为逻辑坐标,同样可以用LptoDP()将逻辑坐标转化为设备坐标。
3 、屏幕坐标和客户区坐标转换:ScreenToClient和ClientToScreen
4 、坐标原点定义:有时候,为了是视觉的方便,常把坐标原点定于非左上角的地方,就算是影像坐标也不一定是定义在左上角,视口转换:CDC::SetViewportOrg()函数