关于窗口与视口

关于窗口与视口

ID:33056571

大小:68.28 KB

页数:4页

时间:2019-02-19

关于窗口与视口_第1页
关于窗口与视口_第2页
关于窗口与视口_第3页
关于窗口与视口_第4页
资源描述:

《关于窗口与视口》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、关于窗口与视口,设备坐标与逻辑坐标‘SetWindowExt与SetViewportExt,SetWindowOrg与SetViewportOrg一,窗口与视口视口即为程序的客户区,窗口是自己定义的逻辑区域.窗口的概念就是为了实现设备无关性的•不管何种设备(比如屏幕打印机等),都与窗口无关,因为窗口是自己定义的,是个虚拟屏幕而与设备有关的是视口.所以,视口的单位是像素,而窗口的单位可以自己定义,可以为像素,英寸,毫米或者其它单位.二,设备坐标与逻辑坐标设备坐标依赖于视口,逻辑坐标依赖于窗口.也即

2、视口使用的是设备坐标,而窗口使用的逻辑坐标.设备坐标始终是以客户区左上角为原点,以右为X轴正方向,以下为y轴正方向.单位是像素.这个坐标体系是不变的.逻辑坐标则需要函数口己定义.如在默认的映像模式下(MM.TEXT),逻辑坐标与设备坐标是一致的,单位也相同.定义自己需要的逻辑坐标,在下面会提到.三,SetWIndowExt与SetViewportExt这两个函数可以定义窗口与视口之间的映射关系•用法是(MSDN):virtualCSizeSetWindowExt(intex,intcy);CSiz

3、eSetWindowExt(SIZEsize);virtualCSizeSetViewportExt(intex,intcy);CSizeSetViewportExt(SIZEsize);注意:SetViewportExt的参数使用的设备坐标,单位是像素.SetWindowExt的参数使用的逻辑坐标•映像的方式是将SetWindowExt参数中所定义的窗口大小投影到SetViewportExt参数所定义的视口大小.如有以下两句语句:SetWindowExt(600,400);//定义一个窗口大小,

4、但不是说窗口就这么大,是为了//投影到SetViewportExt所设定的视口中SetViewportExt(200,200);//定义了一个视口大小,把之前定义的窗口(宽为600,高为400个逻辑单位)投影到视口(宽为200像素,高为200像素).那么根据不同的映像模式,投影方式也不同•又如:窗口为(600,400):视口为(200,200):如果是MM_TEXT,MM_IS0TR0PIC等模式,映像到视口中则为:可以看到时,视口下而多岀一片空白区域.如果是MM_ANISOTROPIC模式,映像

5、到视口屮则为:窗口图像发生了拉伸.这是因为MM_ANISOTROPIC映像模式X,Y轴的投影比例可以不同,其他映像模式X,Y轴映像比例相同.另夕卜:在SetViewportExt(intx,inty)中,如果x或者y为负的时候,则表示在窗口中该轴的正方向与视口该轴的正方向相反(为什么是窗口中的轴方向发生了变化,而不是视口中的呢?这是因为视口的XY的正方向始终是向右和向下.当然,负号放在哪一个函数中结果都是一样的,只不过要保证只能有一个有负号.)如:视口坐标系:窗口坐标系:vsetwindowext

6、(600,400);setviewportext(200,-200);窗口坐标系则变为:以上三张图原点都在客户区的左上角.当然,下而的语句与上而两句的结果完全相同:setwindowext(600,-400);//i^h这儿加上负号setviewportext(200,200);//PH/SetWIndowOrg与SetViewportOrg这两个函数的作用是实现窗口坐标系的移动•(可不是视口坐标系哦,它可是不会变的)其原理是窗口在映射到视口的时候,两者的坐标原点始终都是重合的.如:红线为窗口处标

7、系,黑线为视口坐标系;并假定是在MM_TEXT模式下(单位都是像素);运行以下语句:SetWindowOrg(10,40);〃则变为:(10,40)是设备坐标系原点在逻辑坐标系屮坐标(注意:是以逻辑坐标系为基准),单位是逻辑单位•也就是说这个函数是设定设备坐标系原点在逻辑坐标系中的位置.再运行以下语句:SetViewportOrg(20,10);//则变为:▲40+10=50先看看MSDN上的定义:Specifiesthex-coordinate(indeviceunits)oftheorigin

8、oftheviewport・Thevaluemustbewithintherangeofthedevicecoordinatesystem.ySpecifiesthey-coordimate(indeviceunits)oftheoriginoftheviewport・Thevaluemustbewithintherangeofthedevicecoordinatesystem.x指的是视口原点的X坐标,单位是设备单位(即像素);后面乂说它的值必须在设备坐标系范围之内•但没说明这个

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。