首页 opengl坐标变换

opengl坐标变换

举报
开通vip

opengl坐标变换nullOpenGL坐标变换OpenGL坐标变换null**计算机图形学一、了解OpenGL中的变换 变换使得把3D坐标投影到2D场景成为可能。变换还使你能够旋转对象、移动对象,甚至拉伸、压缩和弯曲它们。和直接修改对象不同,在我们计算机的实现中,实际上是将物件的局部坐标系统变换成另外的坐标系统。null**计算机图形学1、眼坐标 眼坐标来自观察者的观察点,与可能发生的任何变换无关,可以把它们视为“绝对”屏幕坐标。因此,眼坐标并不是真正的坐标,而是代表一个虚拟的固定坐标系,用作参考的公共框架。+y...

opengl坐标变换
nullOpenGL坐标变换OpenGL坐标变换null**计算机图形学一、了解OpenGL中的变换 变换使得把3D坐标投影到2D场景成为可能。变换还使你能够旋转对象、移动对象,甚至拉伸、压缩和弯曲它们。和直接修改对象不同,在我们计算机的实现中,实际上是将物件的局部坐标系统变换成另外的坐标系统。null**计算机图形学1、眼坐标 眼坐标来自观察者的观察点,与可能发生的任何变换无关,可以把它们视为“绝对”屏幕坐标。因此,眼坐标并不是真正的坐标,而是代表一个虚拟的固定坐标系,用作参考的公共框架。+y-y+x-x+x-x+y-y-z+zobservernull**计算机图形学2、视图变换 视图变换是第一个应用到场景上的变换。它用于确定场景的有利位置。默认情况下,观察点位于原点(0,0,0),顺着z轴的负向看。 在工作时间表上,必须先指定视图变换再指定其他任何变换。这是因为它将把当前工作坐标系相对于眼坐标系移动。所有后继变换都将在最近修改的坐标系的基础上进行的。 如何创建观察变换?    首先要做的就是清除当前的矩阵。使用glLoadIdentity( ) 功能函数来实现它。 初始化好当前的矩阵后,就可以使用不同的方法来创建视图矩阵: null**计算机图形学(1)将视图矩阵设置为单位矩阵相同。它将使“摄像机”恢复为默认位置和方向,即位于原点并朝向z的负轴。 (2)使用gluLookAt( )功能函数指定一条从“摄像机”伸延出来的视线。 (3)使用平移和旋转命令glTranslate( )和glRotate( )。使用它们将世界中的物体相对于固定的“摄像机”进行移动。 (4)使用平移和旋转功能函数为你自己的坐标系统创建函数。null**计算机图形学3、模型变换 模型变换是让你去定位和定向一个模型,移动旋转以及缩放它。 在模型变换中指定次序是非常重要的,因为它们会影响到场景的 最终结果。yxyxx1y1y1x1yxnull**计算机图形学yxxx1y1yyy1x1x4、模型视图的对偶性 实际上,从内部效果和它们对场景最终外观的效果来说,视图变换 和模型变换是相同的,把这两者区分开完全是为了程序员的方便,向 后移动对象和向前移动参考系之间并没有本质差别。 “模型视图”表示你可以把这类变换视为模型变换或视图变换,但 实际上并无区别。因此称它为“模型视图变换”null**计算机图形学5、投影变换 投影变换定义了观察面积和剪切平面,它将在视图变换和模型变换 之后执行。可以将投影变换想象成它是用来确定哪些物件是位于观察 面积之内的,以及这些物件看上去是怎样的。 两种类型的投影: 正射投影 透视投影null**计算机图形学6、视口变换最后的变换是视口变换。这种变换将投影变换创建的剪切坐标映射到 窗口的渲染表面。视口变换就是根据渲染表面的大小尺寸,来确定最 终图像是否被放大或者缩小。二、OpenGL和矩阵在OpenGL中如何实际地使用以上的变换? OpenGL中的变换依赖的 数学计算就是矩阵。 OpenGL使用了一个被称为矩阵堆栈的东西,它 对于构造由许多简单物体组成的复杂模型非常有用。1、模型视图矩阵模型视图矩阵定义了一个坐标系统,这个坐标系统是用来定位和定向 物体的。 在调用任何变换命令之前,必须指定是否想要去修改模型视图矩阵或 者投影矩阵。对这两个矩阵的修改是通过OpenGL的glMatrixMode( ) 功能函数来完成的。null**计算机图形学glMatrixMode( ) 用途:指定当前矩阵 (GL_PROJECTION、GL_MODELVIEW、或 GL_TEXTTURE) 描述:这个函数用于确定将哪个矩阵堆栈(GL_PROJECTION、 GL_MODELVIEW、或GL_TEXTTURE) 例:恢复模型视图矩阵到默认的位置。 glMatrixMode(GL_MODELVIEW ); glLoadIdentity( ); (1)平移 实现平移函数: void glTranslate{fd} (TYPE x, TYPE y, TYPE z)(2)旋转 实现旋转函数: void glRotate{fd} (TYPE angle, TYPE x, TYPE y, TYPE z)null**计算机图形学(3)缩放 实现缩放函数: void glScale{fd} (TYPE x, TYPE y, TYPE z)例:恢复投影矩阵到默认的位置。 glMatrixMode(GL_PROJECTION ); glLoadIdentity( ); 2、投影矩阵(1)正交投影矩阵 实现函数: void glOrtho (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far);void glOrtho2D (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top);null**计算机图形学(2)透视投影矩阵 实现函数: void glFrustum (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far);void gluPerspective (GLdouble fov, GLdouble aspect, GLdouble near, GLdouble far);null**计算机图形学gluLookAt ( ) 用途:定义视图变换 句法:void gluLookAt(GLdouble eyex,GLdouble eyey, GLdouble eyez, GLdouble centerx, GLdouble centery, GLdouble centerz, GLdouble upx, GLdouble upy, GLdouble upz); 描述:根据眼睛的位置、场景中心的位置和从观察者的角度 往上指的矢量,定义一个视图变换。
本文档为【opengl坐标变换】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_926239
暂无简介~
格式:ppt
大小:609KB
软件:PowerPoint
页数:0
分类:理学
上传时间:2013-09-03
浏览量:34