所谓设备坐标与逻辑坐标只是相对的概念。
比如点pt(1000,1000),如果你认为他是
设备坐标,那么经过下变换,他就变成逻辑
坐标:
dc.DPtoLP(&pt);
如果你认为他是
逻辑坐标,那么经过下变换,他就变成设备坐标:
dc.DPtoLP(&pt);
是设备坐标还是逻辑坐标,与DC的影射模式(MapMode)
无关,任何影射模式都有设备坐标与逻辑坐标。其中,设备坐标
是统一的的,即都是指设备象素坐标。
1.首先、设备坐标指的是物理设备以象素点为单位。
逻辑坐标除MM_TEXT外均指物理尺寸,如mm,inch等
2.数字本身没有逻辑与设备之分
CRect r=CRect(0,0,50,30);
CSize size(100,80);
CPoint point(50,60);
孤立的看待这些点或坐标是没有意义的,他是逻辑还是设备坐标
取决于编程着的主观愿望,和上下文的意义。
3.DPtoLP指将象素点数坐标转换为在相应设备上该数目的象素点
在该设备上实际物理长度(尺寸)坐标。
LPtoDP指将相应设备实际物理长度(尺寸)坐标转换为在相应设备
上该物理长度(尺寸)所占用的象素点书目坐标
一般dc所接受的参数是逻辑坐标,窗口函数都是接受设备坐标。
在使用自己产生的dc之前要先调用OnPrepareDC,确保dc的原点与逻辑坐标原点重合,因为dc的函数都是使用的逻辑坐标
posted on 2008-07-21 14:19
cpsprogramer 阅读(3723)
评论(1) 编辑 收藏 引用 所属分类:
VC++