计算机图形学电子教案c5.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机图形学电子教案c5.ppt

第5章 交互绘图技术 5.1 窗口系统和事件驱动模式 5.2 交互式的显示控制技术 5.3 交互式的图形生成技术 5.4 交互式的图形编辑技术 5.5 OpenGL对图形交互的支持 5.1窗口系统和事件驱动模式 事件驱动程序设计模式 5.2 交互式的显示控制技术 5.3 交互式的图形生成技术 5.4 交互式的图形编辑技术 5.5 OpenGL对图形交互的支持 用OpenGL缓冲区技术实现橡皮筋功能 * * Windows操作系统是一个窗口式的多任务操作系统,在Windows环境下编写应用程序,采用事件驱动机制。传统的MS-DOS程序主要采用顺序的、关联的、过程驱动的程序设计方法。 一个程序是一系列预先定义好的操作序列的组合,它具有一定的开头、中间过程和结束。程序直接控制事件和过程的顺序。这样的程序设计方法是面向程序而不是面向用户的,交互性差,用户界面不够友好,因为它强迫用户按照某种不可更改的模式进行工作。它的基本模型如图所示。 对于需要用户交互的应用程序来说,事件驱动的程序设计有着过程驱动方法无法替代的优点。它是一种面向用户的程序设计方法,它在程序设计过程中除了完成所需功能之外,更多的考虑了用户可能的各种输入,并针对性的设计相应的处理程序。它是一种“被动”式程序设计方法,程序开始运行时,处于等待用户输入事件状态,然后取得事件并作出相应反应,处理完毕又返回并处于等待事件状态。它的基本模型如图所示。 Windows下基于消息的事件驱动编程 消息MSG结构是Windows的一种数据结构,包含消息的窗口来源、消息种类、与此消息相关的附加信息、消息发生时鼠标的位置等。接收和处理消息的是窗口,每个窗口都有一个专门负责处理消息的 “窗口函数”。 MFC中的事件驱动编程 微软基础类库(MFC:Microsoft Foundation Class)是微软为Windows程序员提供的一个面向对象的Windows编程接口,它大大简化了Windows编程工作。MFC通过定义一个消息与处理函数的对照表,实现了消息处理的分离编程。每当产生一个事件,便可以通过这个对照表找到相应的消息处理函数,执行这个函数便完成了相应的功能;这样,程序员不再需要编写庞大的窗口函数。 全景显示 旋转 平移 缩放 本节内容为交互绘图平台与显示相关的控制技术,以上机实现为主。 坐标的输入技术 将二维计算机屏幕的鼠标位置转换为三维世界坐标。 橡皮筋技术 实现橡皮筋技术主要有两种方法: 基于异或操作的橡皮筋技术; 基于缓冲区的橡皮筋技术 ; 利用鼠标动作来改变图形 选中图形的方法 OpenGL提供了反向坐标变换(gluUnProject)用以实现三维坐标输入;OpenGL的双缓存机制为实现橡皮筋技术提供了途径;为了支持三维图形的编辑及三维目标实体的拾取功能,OpenGL提供了一种简单直观的选择机制,能够很容易的实现三维场景中任一图形元素的选取。 用OpenGL的反向坐标变换实现三维坐标输入 函数gluUnProject能够将Windows屏幕坐标转换为场景中的三维世界坐标 。使用该函数,需要指定如下参数: 视口的原点(X,Y坐标)及视口宽度(width)与高度(height) 当前显示三维场景所使用的模型视图变换矩阵(The Modelview Matrix) 当前显示三维场景所使用的投影变换矩阵(The Projection Matrix) Windows窗口坐标 存储三维坐标的变量(posX,posY,posZ) OpenGL帧缓存由以下四种缓存组成: 颜色缓存(Color Buffer) 深度缓存(Depth Buffer) 模板缓存(Stencil Buffer) 累积缓存(Accumulation Buffer) OpenGL提供了双(颜色)缓存,分别称为前(颜色)缓存和后(颜色)缓存。通过调用函数glDrawBuffer可以指定后续绘图操作将“画进”哪个缓存,利用OpenGL的双缓存机制,可以实现橡皮筋技术。 OpenGL中的选择机制介绍 (自学)

文档评论(0)

xinshengwencai + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:5311233133000002

1亿VIP精品文档

相关文档