设为首页 加入收藏

TOP

17.2.1 坐标类
2013-10-07 01:03:51 来源: 作者: 【 】 浏览:62
Tags:17.2.1 坐标

17.2.1  坐标类

绘制图形到用像素定义坐标系统的设备上。设备上的每个点均有一个(x,y)坐标,从位于设备左上角的原点度量而得。其中,x坐标沿着向右的方向递增,y坐标沿着向下的方向递增。

在本章的后面,我们将学习像素坐标与现实中的单位,比如英寸或厘米,是如何相联系的。现在,我们着重介绍面向像素和屏幕的图形。

支持点、矩形、尺寸和区域的类在e32std.h中定义。

TPoint包含iX和iY坐标。

TRect包含两个点:表示左上角的iTl和表示右下角的iBr。

TSize包含iWidth和iHeight尺寸。 这些类装备了各种大量的构造函数、运算符和函数,操纵它们或组合它们,但并未试图封装它们的成员。不需要使用 get 和 set 函数来访问点的(x,y)坐标等内容。这样做意义实在不大,因为这些对象的表示完全公开。

定义TRect的两个点可以按不同的方式由特定的图形实现来解释。一种常见的解释是,把左上角点放到矩形中,把右下角点放到矩形外,如图17.4所示。

  

这一定义使某些事情更容易做到,比如计算大小,因为简单地用右下角点的x和y 坐标减去左上角点的x和y坐标即可得到。但它也使得其他事更难完成,比如交互绘制矩形时的计算,因为必须将(1,1)加到指针坐标上,从而正确地包含它的右下角。如果TRect定义为包含它的右下角,则让有些事更容易、有些事更难。重要的是,要记住矩形的定义依赖于特定的图形解释。

矩形应该正规化,使iTl的坐标绝不会比相应的iBr坐标大。如果在某TRect上进行可能会破坏这一条件的计算,则调用Normalize(),根据需要交换x坐标的值和y坐标的值,完成清理工作。

【责任编辑:董书 TEL:(010)68476606】

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇17.2.4 绘制函数 下一篇17.1.5 垂直对齐

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: