世界坐标、页面坐标和设备坐标

本文摘自《C#高级编程(第6版)》。不过并不推荐初学者学习本书,初学者可以学习《C#入门经典》。

《C#高级编程(第6版)》以.NET 3.5和VS2008为基础,是C# 2008及其环境的最终指南。本书首先介绍了.NET的体系结构和方法论,解释了C#语言不能孤立看待,而必须放在.NET Framework中考虑的原因。在论述了C#的基础知识之后,深入探讨了C#编程的所有内容。第33章介绍用GDI+绘图的功能。本节说的是世界、页面和设备坐标。

33.5  世界、页面和设备坐标

测量相对于文档区域左上角的位置和测量相对于屏幕(桌面)左上角的位置之间的区别非常重要,GDI+为它们指定了不同的名称:

● 世界坐标(World Coordinate):要测量的点距离文档区域左上角的位置(以像素为单位)。

● 页面坐标(Page Coordinate):要测量的点距离客户区域左上角的位置(以像素为单位)。

注意:

熟悉GDI的开发人员要注意,世界坐标对应于GDI中的逻辑坐标。页面坐标对应于设备坐标。还要注意,编写逻辑和设备坐标之间的转换代码在GDI+中有了变化。在GDI中,转换是使用Windows API函数LPtoDP()和DPtoLP()通过设备环境进行的,而在GDI+中,由Control类来维护转换过程中所需要的信息,Form和各种Windows 窗体控件设备派生于Control类。

GDI+还有第3种坐标,即设备坐标(Device Coordinate)。设备坐标类似于页面坐标,但其测量单位不是像素,而是用户通过调用Graphics.PageUnit属性指定的单位。它可以使用的单位除了默认的像素外,还包括英寸和毫米。本章虽然没有使用PageUnit属性,但它可用作获取设备的不同像素密度的方式。例如,在大多数监视器上,100像素大约是1英寸。但是,激光打印机可以达到1 200 dpi(点/英寸)-- 这表示一个100像素宽的图形在该激光打印机上打印时会比较小。把单位设置为英寸,指定图形为1英寸宽,就可以确保图形在不同的设备上有相同的大小。

 

Graphics dc = this.CreateGraphics();
dc.PageUnit = GraphicsUnit.Inch;

GraphicsUnit枚举中的可用值如下:

● Display:指定显示的测量单位

● Document:把文档单位(1/300英寸)定义为测量单位

● Inch:把英寸定义为测量单位

● Millimeter:把毫米定义为测量单位

● Pixel:把像素定义为测量单位

● Point:把打印机的点数(1/72英寸)定义为测量单位

● World:把世界坐标系统定义为测量单位

 

转载于:https://www.cnblogs.com/ebusi/archive/2011/01/12/1933732.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值