对视区和窗口的理解_第1页
对视区和窗口的理解_第2页
对视区和窗口的理解_第3页
对视区和窗口的理解_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.一.窗口和视区定义上的区别窗口定义:用户可以在输入的图形上选定一个观察区域。这个观察区域被称为窗口视区定义:在图形输出设备上用来复制窗口内容的矩形区域被称为视区关于窗口和视区的区别见2. 窗口和视区单位上的区别窗口的单位是逻辑单位视区的单位是像素实例一:窗口是1000*1000,而视区是400*300,如果我们要画一个圆,那么在窗口上看到的是一个圆,但是将1000*1000窗口中的圆放到400*300的视区中时就会发现圆已经变成了椭圆.代码如下:pDC->SetMapMode(MM_ANISOTROPIC);/设置映射模式pDC->SetWindowExt(1000,1000);

2、/设置窗口的范围pDC->SetViewportExt(400,-300);/设置视区的范围pDC->SetViewportOrg(200,150);/设置视口的原点CPen myPen,*oldPen;myPen.CreatePen(PS_SOLID,1,RGB(0,0,255);oldPen=pDC->SelectObject(&myPen);CBrush myBrush,*oldBrush;myBrush.CreateSolidBrush(RGB(255,0,0);oldBrush=pDC->SelectObject(&myBrush);pDC-&

3、gt;Ellipse(-500,-500,500,500);pDC->SelectObject(oldPen);myPen.DeleteObject();pDC->SelectObject(oldBrush);myBrush.DeleteObject();运行如下:因为我的电脑的分辨率是1366*768的,所以这个对话框还显示了其他部分.在图中以A为左上角顶点,以B为右下角的矩形就代表了400*300的视区,而在1000*1000的窗口上画了个半径为500的圆完全放在这个视区上就变成了椭圆.在这里我们就可以解释为什么视区的单位是像素,而窗口的单位却是逻辑单位(400*300的视区在

4、屏幕上就是400像素*300像素,而1000*1000的窗口在屏幕上具体的宽度和高度却是受视区大小的影响,所以就不能用像素这样具体的单位来作为窗口单位.在这个例中1000*1000的窗口中宽度上一个单位是400/1000个像素,高度上一个单位是300/1000个像素).3. 对SetWindowExt,SetViewportExt和SetViewportOrg的理解如上注释SetWindowExt(X,Y)是设置窗口的宽度为X,高度为YSetViewportExt(X,Y)是设置视区的宽度为X,高度为YSetViewportOrg(x,y)是设置视区的原心是(x,y)坐标不过我们在上面看到了S

5、etViewportExt(X,-Y)这样的表述,其实它还是设置视区的宽度为X,高度为Y,不过这里的"-"号代表着Y轴的正方向与默认的方向(x轴是水平向右,y轴是竖直向下)相反.对于SetViewportOrg(x,y)是设置视区的原心坐标在(x,y),这里的(x,y)是相对于视区默认的原点(视区这个矩形的左上角的顶点)实例二:代码如下:pDC->SetMapMode(MM_ANISOTROPIC);/设置映射模式pDC->SetWindowExt(400,300);/设置窗口的范围pDC->SetViewportExt(400,-300);/设置视区的范围pDC->SetViewportOrg(200,-150);/设置视口的原点CPen myPen,*oldPen;myPen.CreatePen(PS_SOLID,10,RGB(0,0,255);/用新画笔替换原画笔,*同时将指向原画笔的指针返回给oldPen*,以备新画笔用完之后可以用oldPen来将设备上下文恢复原状oldPen=pDC->SelectObject(&myPen);pDC->MoveTo(-200,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论