Opengl和windows的逻辑坐标到设备坐标转换的理解
来源:互联网 发布:小米6相机数据怎么清除 编辑:程序博客网 时间:2024/04/29 19:18
1.绘图操作涉及到窗口,视口,屏幕几个概念(窗口是逻辑坐标,视口是设备坐标,是屏幕的一部分)。在opengl和windows中,窗口,和视口的定义是有所区别的。
opengl中,窗口是在世界坐标系中定义的一个矩形框,也就是投影面。视口是在显示窗口中定义的一个矩形框,窗口中的物体完全投影到视口中。而视口之外的窗口区域将不进行绘图操作。窗口与视口的转换公式如下:
xViewport = (xWindow - xWinOrg)*xViewExt/xWinExt + xViewOrg
yViewport = (yWindow - yWinOrg)*yViewExt/yWinExt + yViewOrg
(xWindow,yWindow)是待转换的逻辑点,(xViewport,yViewport)是转换后的设备坐标。
(xWinExt,yWinExt)是逻辑坐标的窗口范围;(xViewExt,yViewExt)是设备坐标的窗口范围
opengl严格按照此公式进行窗口与视口的转换。xWinExt,yWinExt,xViewExt,yViewExt就是根据窗口计算出来的长度。当使用opengl绘图时,我们设置分别设置窗口和视口的位置和大小(设置两个矩形区域,包括起始点、宽、高),然后在窗口中绘图,其图像的显示就是将窗口中的图像映射到物理坐标中的视口中。(opengl是窗口到视口的映射,也是原点到原点的映射,因为opengl中原点是定义在窗口/视口的左下方的)
windows中,逻辑坐标转换为物理坐标,也是使用的上面的计算公式。在逻辑坐标中设置窗口原点,在设备坐标中设置视口原点后,映射时窗口的原点映射到视口的原点,然后按照窗口和视口的比例进行大小的转换而已(MM_TEXT是1:1,MM_LOMETRIC是3:1...)。而窗口和视口的比例就是设置xviewExt/xWinExt与yViewExt/yWinExt。opengl中此比例关系是根据我们规定的窗口自动计算出来的,但在windows中,是我们自己设定的。(windows中是原点到原点的映射,而窗口与视口的概念是虚拟的,我们需要的只是设置其比值。)(opengl中是原点到原点的映射,但是不一定是窗口到窗口的映射,因为windows中的原点并不是定义在窗口和视口的左下角,他们的位置关系是任意的)。
通常我们绘图都是希望在逻辑坐标中的窗口中的图像映射到视口中,所以我们可以根据窗口的位置和视口的位置,来调整设置窗口原点和视口原点的位置,使得最终也是窗口映射到视口
为了便于理解在窗口中绘制的图像哪些部分可以显示在视口中,我们通常会进行如下判断:
opengl中,在窗口中绘制的图像就会显示在视口中,超出窗口的将被剪裁。
windows,将窗口坐标原点跟视口坐标原点重合。x正方向都像右,根据不同的映射模式,y方向有所不同。MM_TEXT下,窗口y正方向向下,其他y正方向向上。然后在视口范围内,将窗口中的物体按照一定的比例关系映射到对应的视口位置。
- Opengl和windows的逻辑坐标到设备坐标转换的理解
- windows GDI编程中关于窗口和视口,逻辑坐标和设备坐标的转换
- VC的逻辑坐标和设备坐标
- 逻辑坐标和设备坐标的区别
- 逻辑坐标和设备坐标的区别
- 逻辑坐标和设备坐标的区别
- 逻辑坐标和设备坐标的区别
- 逻辑坐标和设备坐标的区别
- windows 屏幕坐标 窗口坐标 客户区坐标 逻辑坐标 设备坐标之间的关系及转换
- windows 屏幕坐标 窗口坐标 客户区坐标 逻辑坐标 设备坐标之间的关系及转换
- windows 屏幕坐标 窗口坐标 客户区坐标 逻辑坐标 设备坐标之间的关系及转换
- 设备坐标、逻辑坐标、物理坐标的区别与转换
- Windows 逻辑坐标和设备坐标
- windows程序设计中MM_TEXT模式下的逻辑坐标与设备坐标的转换
- 逻辑坐标与设备坐标相互转换的两个公式
- 设备坐标与逻辑坐标相互转换的两个函数
- 逻辑坐标、设备坐标的比较和关系
- opengl 坐标的理解
- jQueryEasyUI Messager基本使用
- solr4.40导入mysql数据库数据建立索引
- 集合视图UICollectionView 介绍及其示例程序
- js取消按键事件的默认行为
- WPF应用程序支持多国语言解决方案
- Opengl和windows的逻辑坐标到设备坐标转换的理解
- Java的MD5加密返回32或24位的字符
- Java多维数组第二维维度可以不同
- PHP识别电脑还是手机访问网站
- jquery经典的.ready
- Win8去掉桌面图标的箭头
- 就这样
- 矩阵在初等行变换下的标准型
- Unix基本命令