- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机图形学第九章三维形体的表示
各种表示方法的比较 输入: 特征表示、推移表示、CSG树表示和单元分解表示都是面向用户的,只需输入少量参数,即可生成所需实体。 空间位置枚举和八叉树表示很难由用户直接建立,一般都由其它表示形式转化过来。 若采用边界表示作为输入手段,则一方面用户能方便的控制实体的形状,另一方面,需输入大量数据,且数据一致性很难保证。 各种表示方法的比较 输出: 实体造型的输出包括图形、计算机辅助制造系统进行数控加工所需的数据以及实体的性质(重量、体积等)。 图形显示和数控加工主要要求实体的边界信息,所以边界表示较好。 若需实体性质等方面的计算,则空间分割表示、CSG树表示更好。 模型的考虑 模型的考虑必须考虑以下一些问题: 根据形体边界给定的信息,是否能自动的获取形体的几何特征? 如何确定对形体操作数据的有效性? 形体的表示模型是否唯一?不同的表示模型是否可以转换?是否最佳表示模型? 对于几何造型系统来说,按照不同的目的可以采用不同的最佳表示模型。 不规则形体的建模方法 迭代函数系统 基于文法的模型 粒子系统 动力系统 L系统 由生物学家Lindenmayer创立 基本思想: 用文法表示植物的拓扑结构 通过图形学方法生成逼真的画面 DOL系统(确定的上下文无关的L系统) 定义为三元组V,w,P,其中 V----表示字母集合 V*----表示V上所有单词的集合 w----是一个非空单词,称为公理 P----产生式集合 ,使得 如果没有明显的产生式,则令 L系统 例子----Koch 雪花曲线 V:{F,+,-} w:F P:F-F-F++F-F 几何解释 F:向前画一条线 +:右转 -:左转 L系统 Bracketed L系统 增加如下两个字符 [:压栈 ]:出栈 例子----植物 w:F P:F-F[+F]F[-F]F L系统 边界表示的数据结构-翼边数据结构 翼边数据结构:在1972年,由美国斯坦福大学Baumgart作为多面体的表示模式提出。 它用指针记录了每一边的两个邻面(即左外环和右外环)、两个顶点、两侧各自相邻的两个邻边(即左上边、左下边、右上边和右下边),用这一数据结构表示多面体模型是完备的,但它不能表示带有精确曲面边界的实体。 边界表示的数据结构-翼边数据结构 翼边结构由四种结点Solid , Face , edge和Vertex组成的,各结点描述如下: ? Solid 构成引用的根节点。 在任意时刻,会存在几个数据结构引用;为了存取其中的任何一个,需要指向其Solid节点的指针。通过指向三个双向链表的指针,Solid 节点给出对该模型的面、边和顶点的访问。所有实体被链接到一个双向链表中,这个表通过指向该表的后继和前趋实体的指针来实现的。具体包括: 边界表示的数据结构-翼边数据结构 Solid ID; 指向face的链表指针; 指向edge的链表指针; 指向vertex的链表指针; ? 边界表示的数据结构-翼边数据结构 Face 表示多面体的一个小平面,包括: Face ID ; 指向face的链表首元素的指针; 指向face的下一元素的指针; ? 边界表示的数据结构-翼边数据结构 Edge 由Edge节点构成,是整个数据结构的核心,每个Edge结点代表一条边,包括: Edge ID ; Edge的起始顶点指针; Edge的终止顶点指针; Edge的右邻面的指针; Edge的左邻面的指针; Edge的右方向向前邻边指针; Edge的右方向向后邻边指针; Edge的左方向向前邻边指针; Edge的左方向向后邻边指针; ? 边界表示的数据结构-翼边数据结构 Vertex 由vertex节点构成,包括: Vertex ID ; 顶点坐标(x,y,z) ; 指向与该vertex相连的第一条边指针; 指向下一个Vertex结点指针; 边界表示的数据结构-半边数据结构 半边数据结构,是在80年代提出的,作为一种多面体的表示方法。在构成多面体的三要素(顶点、边、面)中,半边数据结构以边为核心。一条边表示成拓扑意义上方向相反的两条“半边”,所以称为半边数据结构。 其中各节点的数据结构及含义如下: 边界表示的数据结构-半边数据结构 typedef float vector[4]; typedef short ID; typedef struct solid Solid ; typedef struct face Face ; typedef struct loop Loop ; typedef struct edge Edge ; typedef struct halfedge HalfEdge ; typedef s
原创力文档


文档评论(0)