第四章 三维变换.ppt

  1. 1、本文档共59页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机图形学 三维变换 主讲:汪日伟 Email:craftcub@163.com 实例03 变换 三维图形显示流程 OpenGL三维图形显示流程 OpenGL三维图形显示流程 视图变换(Viewing Transformation) 第一步,将相机置于三角架上,让它对准三维景物 模型变换(Modeling Transformation ) 第二步,将三维物体放在适当的位置 投影变换(Projection Transformation) 第三步,选择相机镜头)并调焦,使三维物体投影在二维胶片上 视口变换(Viewport Transformation) 第四步,决定二维像片的大小 The Camera Analogy 照相机的成像过程 模型变换 投影变换 视口变换 模型视图变换 平移变换 旋转变换 比例缩放变换 void glTranslate{fd}(TYPEx, TYPE y, TYPEz); void glRotate{fd}(TYPE angle, TYPE x, TYPE y, TYPE z); void glScale{fd}(TYPEx, TYPE y, TYPEz); 组合变换 通用变换及变换顺序 glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glMultMatrixf(N); glMultMatrixf(M); glMultMatrixf(L); glBegin(GL_POINTS); glVertex3f(v); glEnd(); //N(M(Lv)) 左乘:变换矩阵在乘号的左边(OpenGL) 矩阵堆栈 模型视图矩阵堆栈 投影矩阵堆栈 矩阵堆栈操作函数 void glPushMatrix(void); void glPopMatrix(void); void glLoadMatrix{fd}(const TYPE *m); void glMultMatrix{fd}(const TYPE *m); void glLoadIdentity(void); void glMatrixMode(GLenum mode); GL_MODELVIEW, GL_PROJECTION, or GL_TEXTURE 例 绘制小车 draw_body_and_wheel_and_bolts() draw_wheel_and_bolts() draw_wheel() draw_bolt() draw_car_body() 例 绘制小车 例 绘制小车 练习04 组合变换 三维几何变换 平移变换矩阵(左乘法则) 旋转变换 三维几何变换 以X为轴的旋转变换 以Y为轴的旋转变换 组合变换 变换顺序 复杂变换的分解 例:绕任意基准点的旋转变换 例:绕任意轴的旋转变换 基本思想:因任意轴不是坐标轴,应设法旋转该轴,使之与某一坐标轴重合,然后进行旋转θ角的变换,最后按逆过程,恢复该轴的原始位置。 绕任意轴的旋转变换(2) 1 平移使P1与坐标原点重合 绕任意轴的旋转变换(3) 2绕X轴旋转使指定旋转轴落在XZ面上 三维观察步骤 观察变换 透视投影投影方程 投影变换 灭点 主灭点:平行于坐标轴的平行线产生的灭点。 一点透视 两点透视 三点透视 void gluPerspective(GLdouble fovy, GLdouble aspect, GLdouble near, GLdouble far); void glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far); 练习05 投影变换实现漫游 漫游具有窗户和门的房子 视区变换 裁减窗口 投影平面内的裁减窗口 设窗口的四条边界WXL,WXR,WYB,WYT 视图的四条边界VXL,VXR,VYB,VYT 则用户坐标系下的点(即窗口内的一点)(Xw,Yw)对应屏幕视图区中的点(Xs,Ys),其变换公式为 视口变换 void glViewport(GLint x, GLint y, GLsizei width, GLsizei height); (3) 绕y轴顺时针旋转?角(使之与Z轴重合) 由于绕x轴旋转时,x坐标不变 A L’ L ? Sin ?=A/L cos ?=L’/L L2-A2= B2+ C2=L’2 绕任意轴的旋转变换 (4)绕z轴旋转θ角 绕任意轴的旋转变换 (5)绕y轴逆时针旋转?角(使之位于XOZ平面内) (6)绕x轴顺时针旋转〆(使之恢复通过原点的直线) 绕任意轴的旋转变换 (7)平移使坐标原点返回到它原始位置 绕任意轴的旋转变换 X Y Z O P

文档评论(0)

awang118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档