〈新〉计算机图形学4 图形变换end1.ppt

  1. 1、本文档共132页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Chapter four 图形变换 图形变换是计算机图形学的基础内容之一,通过图形变换,可由简单图形生成复杂图形,可用二维图形表示三维形体,甚至可以对静态图形经过快速变换而获得图形的动态显示效果 4.1图形变换中的数学方法 第二节 二维图形的几何变换 图形变换一般是指对图形的几何信息经过几何变换后产生新图形。 对于线框图的变换,通常以点变换作为基础,把图形的一系列顶点作几何变换后,连接新的顶点系列即可产生新的图形。 4.5 窗口视区变换 几个概念 裁剪窗口(Clipping Window) :需要显示的场景区域 又称为世界窗口或观察窗口,简称窗口 在世界坐标系(又称用户坐标系)内定义 视口(Viewport):指显示设备上用来显示图形的区域 又称视区,在设备(屏幕)坐标系内定义 裁剪(Clip):从场景中确定位于窗口内的图形 4.5窗口视区变换 裁剪窗口和视区的关系 改变视口位置可以在输出设备的不同位置上观察物体 使用多个视口可以在屏幕不同的位置观察场景的不同部分 改变窗口的尺寸达到改变视口内显示对象的多少 改变视口的尺寸实现对象放缩 4.5窗口视区变换 二维观察变换 二维世界坐标系场景描述到设备坐标系的映射 又称为窗口到视区的变换或窗口变换 例子 Weiler-Atherton algorithm 4.7 OpenGL二维观察函数 流程 程序窗口- 裁剪窗口- 视区 GLUT显示窗口 初始化:glutInit(argc, argv); //参数与main函数一致 位置:glutInitWindowPosition(xTopLeft, yTopLeft); 大小:glutInitWindowSize(dwWidth, dwHeight); 建立:glutCreateWindow(“Title of Display Windows”); 模式:glutInitDisplayMode(mode); 选择颜色和缓存,如GLUT_RGB|GLUT_SINGLE 背景颜色:glClearColor(red, green, blue, alpha) 参数与选择的颜色模式相关,取值在0和1之间 4.7 OpenGL二维观察函数 投影模式 OpenGL专门为三维应用而设计,但可将三维观察函数应用于二维观察 投影函数 glMatrixMode(GL_PROJECTION); //指定投影矩阵为当前矩阵 glLoadIdentity(); //初始化 GLU裁剪窗口函数 定义函数:gluOrtho2D(left,right,bottom,top); 功能:将场景映射到屏幕的正交投影 参数为4个平面(3维) 默认大小为(-1,1,-1,1) 4.7 OpenGL二维观察函数 OpenGL视口函数 定义函数:glViewport(xvmin,yvmin,vpwidth,vpheight); 视口为矩形 在视口内绘制图形对象 指定显示内容函数:glutDisplayFunc(pictureDescrip) pictureDescrip为回调函数,主要绘制图形 启动程序 glutMainLoop() 4.7 OpenGL几何变换函数 说明 在核心库中,每种几何变换是一个独立的函数 所有变换都是在三维坐标系中定义 基本几何变换函数 平移函数:glTranslate{fd}(tx, ty, tz) 对二维变换而言,取tz=0 旋转函数:glRotate{fd}(theta, vx, vy, vz) 向量(vx, vy, vz)为通过坐标原点旋转轴 theta为旋转角的度数 放缩函数:glScale{fd}(sx, sy, sz) 相对坐标原点的缩放 4.7 OpenGL几何变换函数 矩阵操作 模型观察矩阵:glMatrixMode(GL_MODELVIEW) 建立当前观察矩阵 还有两种方式:纹理和颜色模式,默认为观察模式 设置当前矩阵为单位矩阵:glLoadIdentity() 矩阵栈 4种:观察、投影、纹理 初始状态下,每栈仅包含一单位栈 压栈:glPushMatrix() 出栈:glPopMatrix() 4.7 OpenGL几何变换函数 矩阵运算 获取当前几何变换矩阵glGetDoublev(GL_MODELVIEW_MATRIX, modelview); modelview为16个元素的实数, 如定义为:GLdouble modelview[16]; 可以用来计算图形变换后的坐标(如多边形顶点坐标) 4.7 OpenGL二维观察函数 实例1 4.7 OpenGL二维观察函数 实例1(续) 4.7 OpenGL二维观察函数 实例1(续) 4.7 OpenGL二维观察函数

文档评论(0)

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

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

1亿VIP精品文档

相关文档