第八章 图形数据结构

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

上述两命令定义图段3的优先度大于图段2的优 先度。因此,当图段3和图段2在画面上重叠时 ,总是图段3的色彩盖住图段2的色彩,而不管 它们生成时间的迟早。 (3) set_highlighting(id,h) 其中h是定义图段是否要强调的两值变量。h可以取 这两个值之一:NormaI(通常)和Highlighted(强调)。当 h取强调值时,该图段在荧光屏上以加强或闪烁的色彩显 示。这能使该图段在画面中十分醒日。
8.1常用图形数据结构 1.树形结构 把基本图形作为树叶.复合图形元素作为节点, 整个图形对应于树的根。这种数据结构称为树形结 构。如图8.1(a)所示。
基本图形元素有直线、圆、弧,并可以用线、圆、 弧来组成子图。例如用直线组成子图A1,A2,用直线 和圆组成子图A3。再用子图A1与A3组成子图A4,最后 由A2与A4组成整个图形A5,如图8.2所示。因此,图 形A5的数据结构见图8.1(b)。
3.定义图段的性质 图段性质的定义操作包含下列四条命令,分别对图段的 4种性质予以操作: (1) Set_visibility(id,v) 其中id是图段名,v是一个两值变量,即在常数visible 和invisible中任取一个值。visible定义该图段为可见. invisibe定义该图段不可见。 (2) Set_segment_priority(id,p) 其中p表示图段id的优先度,p的值在0~1之间。高优先 度的图段可以覆盖低优先度的图段,反之则不能。例: Set_segment_priority(2,0.1); Set_segment_priority(3,0.5);
在PHIGS中,结构的引用不允许直接或间接地嵌 套进行。因此,一组有引用关系的结构就构成了一个 结构网络(structure network)。结构网络的示意图如图 8. 4所示,其中圆圈表示一个结构,数字是该结构的标 识号,结构的引用关系由箭头指出,箭头所指向的结 构就是被引用的结构。
当一个结构包含有被引用的其他结构时.该结构 就称为是其他结构的父结构,其他结构则称为该结构 的子结构。例如,图8.4中结构2是结构4,5,6的父 结构,W结构2和结构3又是结构l的子结构。 应用程序所定义的所有结构网络在概念上都是存 储在一个所谓的“集中式结构存储器”(Centralized Structure Store,简称CSS)之中的。对于CSS中的结 构网络,PHIGS提供了各种类型的操作.例如:结构 的显示、结构的编辑、结构的操作处理、结构的搜索 与查询、结构的存档与检索等。
设置局部变换(SET LOCAL TRANSFORMATION) 设置三维局部变换(SET LOCAL TRANSFORMATION 3) 设置全局变换(SET GLOBAL TRANSFORMATION) 设置三维全局变换(SET GLOBAL TRANSFORMATION 3) 设置建模裁剪体(SET MODELLING CLIPPING VOLUME) 设置三维建模裁剪体(SET MODELLING CLIPPING VOLUME 3) 设置建模裁剪体指示器(SET MODELLING CLIPPING INDICATOR) 恢复建模裁剪体(RESTORE MODELLING CLIPPING VOLUME)
图段是由一组输出基元和一组性质(Attribute of Segment)所构成的集合。可以表示为
segment = {Id , primitives, S − auttributes}
其中Id是图段名,primitives是组成图段的基元之集合;Sattributes是该图段的性质之集合。图段的性质也就是组成 该图段的所有基元所共有的性质。 图段的数据结构可分为两个部分:图段头(head of segment)和图段体(body of segment)。图段头包括图段 名、图段的性质以及指向图段体的指针。 图段体是一张线性表.其中每 一个节点是构成该图段的每一 个基元。阁段的数据结构如图 8.3所示。
命令Create_segment(id)的功能是创建一个名为id 的图段并打开它。执行这条命令的时候,图形软件包 创建—个图段头,填入Id,并在图段性质中填入缺省值 。此时,图段头中指向图段的指针值为Null。命令 Close_segment的功能是关闭该图段。在命令 Create_segment(id)和Close_segment之间输出的基 元都属于该图段。 Create_segment(a); Polyline(n1,x1,y1); Po1yline(n2,x2,y2); text(xt , yt , “tring”); Close_segment 上述命令序列定义了一个名为a的t图段.它包括三个 基元:Polyline l,Polyline 2和text。
(4) Set_segment_t ransformation_2(id,matrix) 其中matrix是一个3×3的几何变换短阵,id是一个 2D的图段名。该图段中的各基元在显示之前必须乘以 这个变换矩阵。与这条指令相对立的,还有一条定义 3D图段的几何变换4×4矩阵的命令: Set_segment_transformation_3(id,matrix) 该命令中,图段id中所含的基元坐标必须是三维的。
结构可以由苦干个结构元素组成,每个结构元素有一个编号, 它们从1开始顺序排列。使用PHIGS进行程序设计时.每定义一个 结构,都必须以“打开结构”(open structure)开始,以“关闭结构 ” (close structure)结束。程序中执行“打开结构”的作用是:如 果指定的结构已存在,则打开该结构,并把“元素指针”定位到它 所含的最后一个结构元素位置上; 如果该结构还不存,则建立一个空的新结构并把它打开,元素指针 定位在0处。“打开结构”的格式如下; OPEN_STRUCTURE(structure_identifier) 其中structure_identifier是所打开的结构的标识符。执行“关闭结构 ”的作用是;关闭已打开的一个结构.并进行存储。它的格式是 CLOSE_ STRUCTURE
图段的常见件质如下: (1)可见性。描述该图段是否要在画面中显示.包 含可见和不可见两个值。 (2)优先度。定义该图段和别的图段重叠时,覆盖 和被覆盖的关系。优先度高的图段覆盖与之重叠的优 先度低的图段。 (3)突出性。说明图段在画面中是否要用色彩、光 强、闪烁等方式予以强调显示,以引起视觉的格外注 意。 (4)变换矩阵。图段首先乘以该变换矩阵,然后再 在画面上显示。图形软件包通常规定,用户只有对图 段才能指定变换,而不能直接对输出基元施加变换。
8.3.2 结构网络 一个结构也可以包含另外一些结构,这是使用“控 制结构元素”EXECUTE_STRUCTURE来完成的。控制 结构元素EXECUTE_STRUCTURE的参数就是被引用的 结构名,被引用的结构可以先定义后引用,也可以先引 用后定义。如果被引用的结构在整个应用程序中始终没 有定义,则它作为一个空结构处理。另外,每次引用一 个结构之前,应用程序一般都应该指出被引用的结构所 需进行的引用变换(模型变换),这是用结构元素 SET_LOCAL_TRANSTFORMATION来完成的。它的参 数就是模型变换的变换矩阵和类型。
第8章图形数据结构
计算机图形学中要处理大量的图形信息和非图形信 息。计算机对图形的处理就是对这些信息的处理。如物 体及构成它的点、线、面的位置,以及相互关系和几何 尺寸等都是图形信息;而表示这些物体图形的线型、颜 色、亮度以及供模拟分析用的质量、密度、体积等数据 是有关物体的非图形信息。
ቤተ መጻሕፍቲ ባይዱ
计算机图形学中的各种图形,在确定了用什么方 法来表示以后,就要解决用什么方式、什么方法来保 存图形,也就是按什么方式来保存它的数据。由于这 些数据是用来描还图形的,因此,叫做图形数据。图 形数据结构的基本要求是;能记录某种表示方法下的 数据和数据之间的相互关系;能从数据结构完全而惟 一地确定所对应的图形;尽星节省内存单元;管理方 便,即建立数据结构,查找、搜索和修改数据方便。 图形的数据结构,种类很多,本章介绍图段、结构和 图形数据的层次结构等几种典型图形数据结构以及图 形数据的存储结构。
8.2.2 图段的操作 图段的操作可以分为三类:1)图段的建立2)图段的删 改3)图段性质的定义 1.图段的建立 图段的建立过程包括三个步骤;1)创建—个图段。 2)往这个图段中装入基元。3)关闭该图段。具体形式 是:图形软件包提供一个图段代码块,首句是打开图 段.末句是关闭图段。凡是在团段代码块中的输出基 元,都自动链入该图段的基元线性表。因此,在同一 时刻,只允许打开一个图段,另一个图段的使用必须 在前一图段的关闭之后。形成图段代码块的两条命令 是 Create_segment(id) 和 Close_segment
(4)“控制”结构元素。这一类结构元素只有一个,它 用来把若干结构相互联系起来构成一个结构网络。 (5)“编辑”结构元素。这类结构元素也只有一个,即 “标号”(1abe1),它在模型的编辑操作中起作用。 (6)“通用”结构元素。通用结构元素与PHIGS的实 现有关,它用来补充定义一些该系统所特有的结构元 素。 (7)“应用数据”元素。应用数据用于说明该结构的一 些非几何属性,例如材料、货号、单价等,应用数据 的含义是由应用程序自行定义的。
2.图段的删改 图段删除命令:Delete_segment(id)。该命令的功能 是删除名为id的图段。当一个图段被删除之后.它的名 字可以被新的图段所使蝴。删除一个图段的实际操作是 释放该图段所占据的内存单元。 图段修改命令:Rename_segment(id_old,id_new) 。该命令的功能是修改图段的id。将它从id_o1d改为 id_new。
结构元素有如下7类: (1)“输出原语”类结构元素。这一类结构元素包括 折线、多点标记、文字、加注文字、填充区、填充 区、单元阵列等。 (2)“属性说明”类结构元素。这一类结构元素主要 用于说明各种图形原语的属性.如颜色、线型、线 宽、标记大小、标记类型、文字字体、文字精度、 文字路径、字符间距、字符向上向量、填充区域的 内部样式,以及其他各种各样的属性。 (3)“变换及裁剪”类结构元素。这一类结构元素用于 定义建模变换和建模裁剪,共有如下8个;
8.3 结 构
8.3.1结构元素 结构是由图形数据和应用数据组织在一起的一个整体,它是 PHIGS国际图形标准模型操作处理的基本单位。 构成结构的一些基本的数据实体称为“结构元素” (structure ele_ment).所以,结构是由一系列结构元素组成 的。结构元素用来表示应用问题所需要的各种几何与非几何 数据,如图形输出原语、属性选择、观察选择、建模变换、 建模裁剪、名字组等,也可以用来表示各种应用数据(如材料 、单价等)。此外,“标号”这种结构元素可以用来标识结构 元素 在结构中的位置以便于编辑和修改,“通用结构元素”则可 用来表示与PHIGS实现有关的——些特色。
2.表结构 用有若干指针和数据的表来记录图形元素的数据结构 称为表(记录)结构。各指针指向它所包含的各个成分和 它的变换数据块和分析数据块。 例如.线模型的表结构,即是用线来表示物体的轮廓 图形。数据结构如表8.1所示。
8.2 图 段
8.2.1 图段的定义及其性质 现实世界中对象的形状往往是复杂的,需要苦干 个基本的组合才能予以表达。而对于一个对象中的 各个基本图形元素〔基元),又需要施加某一类型的 操作,如移动、旋转、缩等,才能构成图形,难确 地表达对象与对象之间的空间关系。为此,图形系 统软件在输出基元和图形画面之间设置一个中间数 据结构,称为图段(segment)。图段由一组基元组成 ,是比基元更高一层的输出对象,也是几何变换等 操作的对象。
相关文档
最新文档