《计算机图形学基础》chap7 三维变换及三维观察.PPT

《计算机图形学基础》chap7 三维变换及三维观察.PPT

  1. 1、本文档共143页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* OpenGL中的变换 变换种类 模型视图矩阵 矩阵操作 1 2 3 4 投影变换 4 * 视图变换:指定观察者或摄影机的位置; 模型变换:在场景中移动对象; 模型视图变换:描述视图变换与模型变换的对偶性; 投影变换:对视见空间进行修剪和改变大小; 视见区变换:对窗口的最终输出进行缩放; 变换种类 * OpenGL中的变换 变换种类 模型视图矩阵 矩阵操作 1 2 3 4 投影变换 4 * 平移 void glTranslated(f)(GLdouble x,GLdouble y,GLdouble z); 旋转 void glRotated(f)(GLdouble angle,GLdouble x,GLdouble y,GLdouble z ); 比例 void glScaled(f)(GLdouble x,GLdouble y,GLdouble z); 模型视图矩阵 * 视图变换函数(定义观察坐标系) void gluLookAt(GLdouble eyex,GLdouble eyey,GLdouble eyez,GLdouble centerx,GLdouble centery,GLdouble centerz,GLdouble upx,GLdouble upy,GLdouble upz); 模型视图矩阵 * OpenGL中使用列向量矩阵 模型视图矩阵 * OpenGL中的变换 变换种类 模型视图矩阵 矩阵操作 1 2 3 4 投影变换 4 * 矩阵操作 glMatrixMode(GLenum mode); 参数mode用于确定将哪个矩阵堆栈用于矩阵操作。 GL_MODELVIEW:模型视图矩阵堆栈 GL_PROJECTION:投影矩阵堆栈 GL_TEXTURE:纹理矩阵堆栈 * 矩阵操作——单位矩阵 glTranslatef(10.0f, 0.0f, 0.0f); glutSolidSphere(1.0f, 15, 15); glTranslatef(0.0f, 10.0f, 0.0f); glutSolidSphere(1.0f , 15, 15); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); * 矩阵堆栈 OpenGL为模型视图矩阵和投影矩阵各维护着一个“矩阵堆栈”,可以把当前矩阵压到堆栈中保存它,然后对当前矩阵进行修改。把矩阵弹出堆栈即可恢复。使用的函数如下: void glPushMatrix(void); void glPopMatrix(void); * 投影变换 OpenGL中只提供了两种投影方式,一种是平行投影(正射投影),另一种是透视投影。在投影变换之前必须指定当前处理的是投影变换矩阵: glMAtrixMode(GL_PROJECTION);  glLoadIdentity(); * 投影变换 平行投影:视景体是一个矩形的平行管道,也就是一个长方体,其特点是无论物体距离相机多远,投影后的物体大小尺寸不变。 void glOrtho (GLdouble left,GLdouble right,GLdouble bottom,GLdouble top,GLdouble near,GLdouble far); * 投影变换 void gluOrtho2D (GLdouble left,GLdouble right,GLdouble bottom,GLdouble top); 一个特殊的正射投影函数,主要用于二维图像到二维屏幕上的投影。其near和far缺省值分别为-1.0和1.0,所有二维物体的Z坐标都为0.0。因此它的裁剪面是一个左下角点为(left,bottom)、右上角点为(right,top)的矩形。 透视投影 void glFrustum (GLdouble left,GLdouble Right,GLdouble bottom,GLdouble top,GLdouble near,GLdouble far);   此函数创建一个透视投影矩阵,并且用这个矩阵乘以当前矩阵。它的参数只定义近裁剪平面的左下角点和右上角点的三维空间坐标,即(left,bottom,-near)和(right,top,-near);最后一个参数far是远裁剪平面的Z负值,其左下角点和右上角点空间坐标由函数根据透视投影原理自动生成。 void gluPerspective (GLdoubl

文档评论(0)

凉州牧 + 关注
实名认证
内容提供者

资料收集自互联网,若有侵权请联系删除,谢谢~

版权声明书
用户编号:8036120077000004

1亿VIP精品文档

相关文档