从窗口到视口的映射(图形方式直观描述容易理解)【原创】
为本人原创,CSDN首发。 以前在学习窗口和视口映射关系时,难以理解其中的概念,在网上查找资料也只找到一些跟书本上一样的文字解释。后来自己建立了一对坐标系模型,终于理解了窗口和视口的关系。本文是自己的心得体会,用图形的方式直观形象地描述了上述映射关系。 窗口到视口的映射是计算机图形学中的一个重要概念,主要涉及到如何将抽象的逻辑坐标系中的图形准确地转换到实际设备,如显示器的物理坐标系(设备坐标系)上。这一过程通常在图形用户界面(GUI)开发中用于确保图形在不同分辨率和尺寸的设备上正确显示。 我们需要理解逻辑坐标系和设备坐标系的区别。逻辑坐标系是一个抽象的坐标系统,它的坐标值没有物理单位,可以代表任意单位长度,如毫米、米、像素或英寸。在这个系统中,我们可以自由定义图形的位置和大小,而不受具体硬件限制。而设备坐标系则是与特定物理设备相关的坐标系统,例如显示器的屏幕坐标系,其中每个单位通常对应于屏幕上的一个像素。 窗口和视口的概念是在这个映射过程中引入的,目的是为了更好地控制图形在设备上的显示。窗口是逻辑坐标系的一部分,它定义了一个特定的区域,图形在这个区域内被绘制。视口是设备坐标系中的对应区域,它指定在屏幕上显示的图形区域。窗口和视口之间的映射允许我们将逻辑坐标系中的图形转换到设备坐标系,实现图形在不同大小和比例的显示设备上的适配。 在Windows程序设计中,`SetWindowOrg()` 和 `SetViewportOrg()` 函数分别用来设置窗口和视口的原点。这两个函数通过改变坐标系的原点,使得图形可以在逻辑坐标系内任意位置被绘制,并且能够在设备坐标系的任何位置显示。例如,通过调整窗口原点,我们可以让一个图形的中心点对齐到视口的中心,从而在屏幕上居中显示。 映射方式可以是简单的平移,也可以涉及缩放和其他变换。例如,使用`MM_TEXT`映射模式,逻辑坐标系的每个单位代表一个像素,这使得在不同分辨率的屏幕上,图形能够保持相对大小不变。然而,如果屏幕的像素密度不一致,如垂直和水平像素间距不同,可能会导致图形变形。为了解决这个问题,可以采用如`MM_LOMETRIC`这样的映射模式,确保每个逻辑单位对应固定的物理长度,如0.1mm,这样在不同设备上,图形的形状和大小都能保持一致。 此外,对于大图形无法完全显示在有限的屏幕或应用程序客户区时,可以通过移动视口原点来改变显示的内容。就像使用放大镜看报纸,通过移动放大镜,可以看到报纸的不同部分。同样,移动视口原点可以使原本位于屏幕外的图形部分进入视口范围,从而实现滚动或其他导航效果。 窗口到视口的映射是图形渲染的关键步骤,它确保了软件中的图形在各种设备上能够正确、美观地展现,提供了一种灵活的方式来适应不断变化的硬件环境。通过理解和掌握这一映射机制,开发者可以更有效地创建适应性强、用户体验良好的图形界面。
- 老伙计2011-10-09挺好, 基本说的不叫明白, 就是视口和窗口以及cscrollveiw的关系描述太少
- littleliang2012-12-23很不错的演示,能够清晰的说明视口和窗口的关系。谢谢。
- bfcx002013-03-01很不错,简单清晰,新手学习了
- 粉丝: 1169
- 资源: 74
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 海尔:企业品牌归根到底是文化.docx
- 马蔚华:幸福企业是基业长青的企业文化.docx
- 没有“三个共同”,就没有企业文化.docx
- 马云:倒立是阿里巴巴的文化精髓.docx
- 内圣外王,用文化缔造未来.docx
- 企业家,请抱着感恩的心态做企业.docx
- 牛根生:用培训克隆企业文化.docx
- 企业家 企业文化.docx
- 企业家是企业文化的倡导者.docx
- 企业家的魅力打造.docx
- 企业家企业文化的辩证关系 所有员工的文化特征.docx
- 王均豪:百年企业的传承应靠文化.docx
- 什么是真正的企业家精神.docx
- 王石淡出万科决策层 选择理想是企业文化进步.docx
- 张瑞敏眼中的企业文化.docx
- 魏杰论企业文化的四大类型.docx