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

4 图形的表示及数据结构.ppt

  1. 1、本文档共61页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 1999年7月07/16/96 * *## * 1999年7月07/16/96 * *## * 1999年7月07/16/96 * *## * 扫描表示法(sweep representation)可以利用简单的运动规则生成有效实体。? 包含两个要素 一是作扫描运动的基本图形(截面); 二是扫描运动的方式。 扫描表示(sweep representation) * 构造实体几何法(CSG,Constructive Solid Geometry)由两个实体间的并、交或差操作生成新的实体。 构造实体几何法 图4.13 构造实体几何法 * 在构造实体几何法中,集合运算的实现过程可以用一棵二叉树(称为CSG树)来描述。 树的叶子是基本体素或是几何变换参数; 树的非终端结点是施加于其子结点的正则集合算子(正则并、正则交和正则差)或几何变换的定义。 构造实体几何法 * 构造实体几何法 图4.14 由CSG树产生二维形体的实例 * 优点:如果体素设置比较齐全,通过集合运算就可以构造出多种不同的符合需要的实体。 缺点一:集合运算的中间结果难以用简单的代数方程表示,求交困难。 缺点二:CSG树不能显式地表示形体的边界,因而无法直接显示CSG树表示的形体。 构造实体几何法 * 解决:光线投射算法 构造实体几何法 图4.15 光线投射算法 (实体A∪B取ad,实体A∩B则取cb,实体A-B则取ab) * 空间位置枚举表示法将包含实体的空间分割为大小相同、形状规则(正方形或立方体)的体素,然后,以体素的集合来表示图形对象。 二维情况,常用二维数组存放。 三维情况下,常用三维数组p[i][j][k]来存放。 空间位置枚举表示 * 八叉树(octrees)又称为分层树结构,它对空间进行自适应划分,采用具有层次结构的八叉树来表示实体。 八叉树 * 八叉树——四叉树 图4.16 二维图的四叉树表示 * 八叉树 图4.17 三维空间分成八个卦限及其节点表示 * 二叉空间分割(Binary Space Partitioning,BSP)树方法是一种类似于八叉树的空间分割方法,它每次将一实体用任一位置和任一方向的平面分为二部分(不同于八叉树方法的每次将实体用平行于笛卡尔坐标平面的三个两两垂直的平面分割)。 BSP树 * GLUT库中的多面体函数 OpenGL中的实体模型函数 函数 说明 glutSolidTetrahedron( ) glutWireTetrahedron( ) 绘制中心位于世界坐标系原点的实心四面体和线框四面体,四面体的半径为 。 glutSolidCube(size) glutWireCube(size) 绘制中心位于世界坐标系原点的实心立方体和线框立方体,立方体的半径为size,size是一个双精度浮点值。 glutSolidOctahedron ( ) glutWireOctahedron ( ) 绘制中心位于世界坐标系原点的实心八面体和线框八面体,八面体的半径为1.0。 glutSolidDodecahedron( ) glutWireDodecahedron( ) 绘制中心位于世界坐标系原点的实心12面体和线框12面体,12面体的半径为 。 glutSolidIcosahedron( ) glutWireIcosahedron( ) 绘制中心位于世界坐标系原点的实心20面体和线框20面体,20面体的半径为1.0。 表4.1 GLUT生成规则多面体的函数 * GLUT库中的二、三次曲面 绘制实体或线框球面 void glutSolidSphere/glutWireSphere (GLdouble radius, GLint slices, GLint stacks); 绘制实体或线框圆锥面 void glutSolidCone/glutWireCone (GLdouble radius, GLdouble height, GLint slices, GLint stacks); OpenGL中的实体模型函数 * 绘制实体或线框圆环 void glutSolidTorus/ glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint slices,GLint stacks); 绘制实体或线框茶壶 void glutSolidTeapot/glutWireTeapot (GLdouble size); OpenGL中的实体模型函数 * GLU二次曲面函数 定义一个二次曲面 GLUquadricObj *sphere; 激活二次曲面绘制器 sphere =

文档评论(0)

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

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

1亿VIP精品文档

相关文档