随笔 - 67  文章 - 171  trackbacks - 0
<2008年7月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

常用链接

留言簿(10)

随笔分类

随笔档案

连接资料

最新随笔

搜索

  •  

最新随笔

最新评论

  所谓设备坐标与逻辑坐标只是相对的概念。  
  比如点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 阅读(3543) 评论(1)  编辑 收藏 引用 所属分类: VC++

FeedBack:
# re: VC的逻辑坐标和设备坐标收藏 2008-07-22 16:43 wendel
如果你认为他是
逻辑坐标,那么经过下变换,他就变成设备坐标:
dc.DPtoLP(&pt);


写错了吧
应该是dc.LPtoDP(&pt)  回复  更多评论
  

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理