网站大量收购闲置独家精品文档,联系QQ:2885784924

计算机图形学CG07-二维观察.ppt

  1. 1、本文档共62页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机图形学CG07-二维观察

第7章 二维观察 本章目标 理解二维图形的绘制过程 图形裁剪方法 窗口到视区的变换 学会使用OpenGL的显示函数 主要内容 二维观察流水线 窗口到视区的变换 OpenGL二维观察函数 裁剪 直线段裁剪 多边形裁剪 字符裁剪 7.1 二维观察流水线 几个概念 裁剪窗口(Clipping Window) :需要显示的场景区域 又称为世界窗口或观察窗口,简称窗口 在世界坐标系(又称用户坐标系)内定义 视口(Viewport):指显示设备上用来显示图形的区域 又称视区,在设备(屏幕)坐标系内定义 裁剪(Clip):从场景中确定位于窗口内的图形 7.1 二维观察流水线 裁剪窗口和视区的关系 改变视口位置可以在输出设备的不同位置上观察物体 使用多个视口可以在屏幕不同的位置观察场景的不同部分 改变窗口的尺寸达到改变视口内显示对象的多少 改变视口的尺寸实现对象放缩 7.1 二维观察流水线 二维观察变换 二维世界坐标系场景描述到设备坐标系的映射 又称为窗口到视区的变换或窗口变换 二维图形的观察流水线(显示流程) 7.2 窗口到视区的变换 目标 将窗口之中的图形变换到视区中 变换的计算 变换的分解与合成 窗口 (xmin, ymin) : 长度(Ex); 宽度(Ey) 视区 (umin, vmin) : 长度(Eu); 宽度(Ev) 7.2 窗口到视区的变换 步骤 在世界坐标系中,平移使(xmin, ymin)至坐标原点,变换为T (-xmin, -ymin) 放缩使窗口的大小与视区相等,变换为S(Eu/Ex, Ev/Ey) 在设备坐标系中,平移使窗口与视区重合,变换为T (umin, vmin) 7.2 窗口到视区的变换 变换矩阵 7.3 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之间 7.3 OpenGL二维观察函数 投影模式 OpenGL专门为三维应用而设计,但可将三维观察函数应用于二维观察 投影函数 glMatrixMode(GL_PROJECTION); //指定投影矩阵为当前矩阵 glLoadIdentity(); //初始化 GLU裁剪窗口函数 定义函数:gluOrtho2D(left,right,bottom,top); 功能:将场景映射到屏幕的正交投影 参数为4个平面(3维) 默认大小为(-1,1,-1,1) 7.3 OpenGL二维观察函数 OpenGL视口函数 定义函数:glViewport(xvmin,yvmin,vpwidth,vpheight); 视口为矩形 在视口内绘制图形对象 指定显示内容函数:glutDisplayFunc(pictureDescrip) pictureDescrip为回调函数,主要绘制图形 启动程序 glutMainLoop() 7.3 OpenGL二维观察函数 实例7-1 7.3 OpenGL二维观察函数 实例7-1(续) 7.3 OpenGL二维观察函数 实例7-1(续) 7.3 OpenGL二维观察函数 问题 图形越出视口? 只绘制视口内 还是全绘制? 7.4 裁剪 流程 二维显示流程 扫描转换+裁剪 算法简单(判断像素是否落在视区中) 裁剪+扫描转换 最常用,节约计算时间(先对参数表示的图形裁剪) 7.4 裁剪 裁剪(clip) 判断图形元素是否落在裁剪窗口之内并找出其位于内部的部分 裁剪处理的主要步骤 图元关于窗口内外关系的判别 图元与窗口的求交 假定条件 矩形裁剪窗口: [xmin, ymin]-[xmax, ymax] 主要内容: 线段、多边形裁剪 7.5 直线段裁剪 待裁剪线段 待裁剪线段和窗口的关系 线段完全可见:端点位于窗口内 显然不可见 :端点位于边界同侧 线段至少有一端点在窗口之外, 但非显然不可见 7.5.1 点裁剪 线段的特殊情况 两端点重合 点(x, y)在窗口内的充分必要条件是 7.5.2 直接求交算法 端点与窗口位置关系 都在窗口内(完全可见)

文档评论(0)

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

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

1亿VIP精品文档

相关文档