立体图绘制[修复的].docVIP

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十一章 立体工程图的绘制 学前提示 随着计算机图形学的发展,计算机要处理的立体图形越来越复杂。图形包含的几何元素不断增多。为了表示图形间的遮挡,相交关系,处理物体表面的纹理,反光,本章通过数学建模,按照面向对象程序设计思想,从底层做起,设计一系列的类直接实现了立方体,球体, 圆柱体,圆锥体三维立体图形的线框图和着色图的绘制,通过本章的学习,读者应该能够熟悉计算机图形学的基本算法 知识要点 图形变换中的基本概念 点,线,面,体类的设计和着色 球体的绘制和着色 11.1.1 图形变换中的基本概念 三维图形显示中的图形变换计算机本身只能处理数字,图形在计算机内也是以数字的形式进行加工和处理的。而坐标建立了图形和数字之间的联系。为了使被显示的物体数字化,要在被显示的物体所在的空间中定义一个坐标系。这个坐标系的长度单位和坐标轴的方向要适合对被显示物体进行描述,这个坐标系称为世界坐标系。它是三维直角坐标系,遵循右手法则。 计算机对数字化的显示物体做了加工处理后,要在图形显示器上显示,这就要在图形显示器屏幕上定义一个二位直角坐标系,这个坐标系称为屏幕坐标系。这个坐标系坐标轴的方向通常取成平行于屏幕的边缘,坐标原点取在左下角,长度单位常取成一个象素的长度。计算机显示的内容由观察者的位置(称为观点)和视线方向确定。先将实际物体从世界坐标系 Ow-XwYwZw 变换到以视点为中心的坐标系——视点坐标系)Oc-XcYcZc。然后再将其投射到显示屏上的二位坐标系Os-XsYs 里。 这一系列变换就是图形变换,是平移,旋转,缩放和投影灯变换的组合。 图形变换可具体分为几何变换,投影变换,裁剪变换和视口变换四个步骤,经过这四个步骤三维立体图形变为屏幕上亮点的集合 几何变换 几何变换即平移,旋转和比例变换。几何变换是由例子程序实现的,由用户输入具体的平移,旋转进行 投影变换 投影变换是把三维物体变为二位图形表示的过程。根据投影类型可分为正射投影和透视投影。投影变换是由例子程序实现的,由点类封装实现 裁剪变换 裁剪变换包括三维视景体裁剪和附加平面裁剪。视景体裁剪已经包含在投影变换里,除了视景体定义的六个裁剪平面(左,右,上,下,远和进),用户还可以定义一个或多个附加裁剪平面,使得用户可以删除场景中多余的形状。裁剪变换是由操作系统实现的 视口变换 视视口变换是经过以上变换的物体显示在屏幕窗口的指定区域内,即将试图最后投影面映射到屏幕窗口的过程。视口变换是由显卡驱动实现的。 图 11.2 简单展示了图形变换的步骤 图 11.2 图形变换 投影变换是在世界坐标系中建立的,而计算机屏幕所显示的图形是在给定视点和视线方向下的二位屏幕投影。所以投影变换是整个图形变换的关键。根据投影中心与投影平面之间距离的不同,投影可分为透视投影和正射投影 (1)透视投影—— 类似于人对客观世界的观察方式,它的特点是距离视点进的物体比较大,而距离视点远的物体相对较小,这种投影方式的视景空间可以被认为是一个棱台。它广泛应用于三维地形,模拟,飞行穿越仿真,步行穿越仿真等模拟人眼视觉效果的研究领域 (2)正射投影——是物体直接映射到屏幕上。正射投影实质上是透视投影的一种特例,即视点在无穷远或视点由一个点变为一个面。它适用于某地的顶视效果图,地形晕眩图或需要观察模型某一个侧面下带有形变的景观等 11.2 用类来抽象三维立体图形 对象是面向对象开发模式的基本成分。每个对象可用一组属性和它可以执行的一组操作来定义。属性一般只能通过执行对象的操作来改变。操作又称作方法或服务,在C++中称为成员函数,它描述了对象执行的功能。类是一组具有相同数据结构和相同操作的对象的集合。类的定义包括一组数据属性和在数据上的一组合法操作。类定义可以视为一个具有类似特性与共同行为对象的模板,用以产生对象。在一个类中每个对象都是类的实例,它们都可以使用类中提供的函数,一个对象的状态则包含在它的实例变量中, 11.2 点类的实现 空间点是最基础的图形构成元素,实现点类之前先介绍一个存储常量的头文件。 11.2. 常量头函数 常量头函数 const.h 存储了点类实现的数值常量,用于存储一些公有的常量。 # if !defined(_CONST_INCLUDE__) # define _CONST_INCLUDE_ const double VPOINT_X =1000; const double VPOINT_Y =1000; const double VPOINT_Z =1000; const i

您可能关注的文档

文档评论(0)

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

分享好文档!

1亿VIP精品文档

相关文档