第五章图形数据结构_第1页
第五章图形数据结构_第2页
第五章图形数据结构_第3页
第五章图形数据结构_第4页
第五章图形数据结构_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、5.1.1 图段及其属性图段及其属性 图形学软件在输出基元和画面之间设置一个中间数据结构,称为图段(Segment)。 图段是由一组输出基元和一组性质(Attribute of Segment)所构成的集合。可以表示为: Segment = Id, primitives, S-attributes 图段的数据结构 5.1.1 图段及其属性图段及其属性(续续) 图段的数据结构可分为两个部分图段的数据结构可分为两个部分: 1.图段头(head of segment) 包括图段名、图段的性质以及指向图段体的指针 2. 图段体(body of segment) 一张线性表,其中每一个结点是构成该图段的

2、一个基元 图段的常见性质如下图段的常见性质如下: 可见性 优先度 突出性 变换矩阵 5.1.2 图段的操作图段的操作 图段的操作可以分为3类,即图段的建立、图段的删改和图段性质的定义。 图段的建立图段的建立 图段的建立过程包括3个步骤,即创造一个图段、往这个图段中装入基元和关闭该图段。 上述命令定义了一个名为a的图段,它包括3个基元polyline1、polyline2和text 。例如,有命令序列如下: Create_segment(a); polyline(n1, x1, y1); polyline(n2, x2, y2); text(xt, yt, string); Close_segm

3、ent;5.1.2 图段的操作图段的操作(续续) 图段的删改图段的删改 图段删改包括下列图段删改包括下列2条命令条命令 : Delete_segment(Id) 该命令的功能是删除名为Id的图段。当一个图段被删 除之后,它的名字可以被新的图段所使用。 Rename_segment(Id_old, Id_new) 该命令的功能是修改图段的Id。将它从Id_old改为 Id_new。 除此之外还有另一些图段删改命令。由于它们和工作站的概念有关,所以放在后面介绍。 5.1.2 图段的操作图段的操作(续续) 定义图段的性质定义图段的性质 包含下列包含下列4条命令,分别对图段的条命令,分别对图段的4种性

4、质予以操作:种性质予以操作: Set_visibility(Id, v) 设置图段是否可见 Set_segment_priority(Id, p) 设置图段的优先级 Set_highlighting(Id, h) 设置图段的突出性 Set_segment_transformation(Id, matrix) 设置图段的变化矩阵5.1.2 图段的操作图段的操作(续续)另有一部分与工作站有关的图段操作如下另有一部分与工作站有关的图段操作如下: : 图段的删除图段的删除 命令为 Delete_segment_from_workstation(ws, sg); 图段的重画图段的重画 命令为 Redra

5、w_segments_on_workstation(ws); 图段的插入图段的插入 命令为 Insert_segment(Id, matrix); 图段的复制图段的复制 命令为 Copy_segment_to_workstation(ws, sg) Associate_segment_with_workstation(ws, sg) 5.1.3 独立于工作站的图段存储器和图文件独立于工作站的图段存储器和图文件 与某个图形外部设备相对应的缓冲存储器,称为依靠工作站的图段存储器(Workstation Dependent Segment Storage),简称WDSS。 同工作站独立的图段存储器(

6、Workstation Independent Segment Storage),简称WISS。 WISS可以大大增加使用时的灵活性。从图形软件的角度而言,WISS可以看作一个特殊的工作站。 图文件(metafile)是图形信息的长期存储文件。和WISS 一样,metafile也可以作为一种特殊种类的工作站来处理。 图文件不仅用于长期存储文件,而且也是图形软件和其他软件之间的数据接口。 5.2.1 结构元素结构元素 结构是由图形数据和应用数据组织在一起的一个整体,它是PHIGS 国际图形标准模型所操作处理的基本单位。 构成结构的基本的数据实体称为“结构元素”,结构元素用来表示应用问题所需要的各

7、种几何与非几何数据。 结构元素有如下结构元素有如下7类:类: “输出原语”类结构元素 包括折线、多点标记、文字、加注文字、填充区。 “属性说明”类结构元素 主要用于说明各种图形原语的属性。 “变换及裁剪”类结构元素 用于定义建模变换和建模裁剪,共有如下8个 。5.2.1 结构元素结构元素 (续续) “控制”结构元素 用来把若干结构相互联系起来构成一个结构网络。 “编辑”结构元素 即“标号”(label),它在模型的编辑操作中起作用。 “通用”结构元素 与PHIGS的实现有关。 “应用数据”元素 应用数据用于说明该结构的一些非几何属性, “二极管”结构的组成 5.2.2 结构网络结构网络 一个结

8、构也可以包含另外一些结构,这是使用“控制结构元素”Execute Structure来完成的。 下面是使用下面是使用PHIGS对与非门的描述对与非门的描述 :Open_structure(nand);Set_local_transformation(TD1, D, REPLACE);Execute_structure(diode);Set_local_transformation(TD2, D, REPLACE);Execute_structure(diode);Set_local_transformation(TR1, R, REPLACE);Execute_structure(resist

9、or);Set_local_transformation(TR2, R, REPLACE);Execute_structure(resistor);Set_local_transformation(TT1, T, REPLACE); 下一页Execute_structure(transistor);Set_local_transformation(TG1, G, REPLACE);Execute_structure(ground);Close_structure; Open_structure(diode); Close_structure;Open_structure(resistor);

10、Close_structure;Open_structure(transistor); Close_structure;Open_structure(ground); Close_structure;5.2.2 结构网络结构网络 (续续) 控制结构元素Execute_structure的参数就是被引用的结构名 每次引用一个结构之前,应用程序一般都应该指出被引用的结构所需进行的引用变换(模型变换),这是用结构元素Set_local_transformation来完成的。 5.2.2 结构网络结构网络 (续续) 在PHIGS中,结构的引用不允许直接或间接地嵌套进行。因此,一组有引用关系的结构就构成

11、了一个结构网络。 结构网络 应用程序所定义的所有结构网络在概念上都是存储在一个所谓的“集中式结构存储器”(Centralized Structure Storage,简称CSS)之中的。 5.2.3 集中式结构存储(集中式结构存储(CSS)CSS)与结构操作与结构操作 PHIGS将它处理的数据存放在一个集中式结构存储器CSS中对其进行管理和操作。CSS中的基本单位是结构。 对对CSS中结构的操作处理有下面几类:中结构的操作处理有下面几类: 结构的删除与修改 对CSS中结构的搜索与查询 结构的存档与检索 结构的遍历与显示 5.2.3 集中式结构存储(集中式结构存储(CSS)CSS)与结构操作与结

12、构操作( (续续) ) 结构的删除与修改结构的删除与修改 Delete_structure(structure_id) Delete_all_structures Delete_structure_network(structure_id, handling_flag) Change_structure_identifier(id_1, id_2) Change_structure_references(id_1, id_2) Change_structure_identifier_and_references 5.2.3 集中式结构存储(集中式结构存储(CSS)CSS)与结构操作与结构操作(

13、 (续续) ) 对对CSS中结构的搜索与查询中结构的搜索与查询 Inquire_structure_identifiers(error_indicator, list_of_structure_id) Inquire_open_structure(error_indicator, open_structure_status, structure_id) Inquire_element_pointer(error_indicator, element_position) Inquire_current_element_type_and_size(error_indicator, element_

14、type, ele-ment_size) Inquire_element_type_and_size(structure_id, position, error_indicator, ele-ment_type, element_size) Inquire_current_element_content(error_indicator, element_record) Inquire_structure_status(structure_id, error_indicator, status_indicator) Inquire_paths_to_ancestors(structure_id,

15、 path_order, path_depth, error_in-dicator, paths) 下一页5.2.3 集中式结构存储(集中式结构存储(CSS)CSS)与结构操作与结构操作( (续续) )Inquire_paths_to_descendants(structure_id, path_order, path_depth, error_in-dicator, paths) PHIGS还允许应用程序在指定的结构中搜索某个(些)元素的位置,这是使用下面的两个函数来完成的: Element_search(structure_id, start_position, search_direct

16、ion, inclusion_set, exclusion_set, error_indicator, status_indicator, found_element_position) Incremental_spatial_search(reference_point, distance, starting_path, model-ling_clip_flag, ceiling_index, normal_filter_list, inverted_filter_list, error_indicator, found_path) 5.2.3 集中式结存储(集中式结存储(CSS)CSS)与

17、结构操作与结构操作( (续续) ) 结构的存档与检索结构的存档与检索 为了临时或永久性地保存已经在CSS中定义的结构,PHIGS提供了把CSS中的结构存储到档案文件中的功能,同时也提供了对档案文件进行检查并把找到的结构装入CSS或者从档案中删除某一个(些)结构的功能。有关的函数介绍如下:Open_archive_file(file_id, file_name) Close_archive_file(file_id) Archive_structures(file_id, list_of_structure_id) Archive_structure_networks(file_id, list

18、_of_structure_id) Archive_all_structures(file_id) Retrieve_structures_identifiers(file_id, list_of_structure_id) Retrieve_structures(file_id, list_of_structure_id) Retrieve_structure_networks(file_id, list_of_structure_id) 5.2.3 集中式结构存储(集中式结构存储(CSS)CSS)与结构操作与结构操作( (续续) ) 结构的存档与检索结构的存档与检索( (续续) ) Ret

19、rieve_all_structures(file_id) Delete_structure_from_archive(file_id, list_of_structure) Delete_structure_networks_from_archive(file_id, list_of_structure_id) Delete_all_structures_from_archive(file_id) Retrieve_paths_to_ancestors(file_id, structure_id, path_order, paths) Re-trieve_paths_to_descendan

20、ts(file_id, structure_id, path_order, path_depth, paths) 5.2.3 集中式结构存储(集中式结构存储(CSS)CSS)与结构操作与结构操作( (续续) ) 结构的遍历与显示结构的遍历与显示 为了把已经定义的结构(结构网络)在工作站上显示出来,PHIGS提供了如下的函数:Post_structure(ws_id, structure_id, priority) 结构的显示 5.2.3 集中式结构存储(集中式结构存储(CSS)CSS)与结构操作与结构操作( (续续) ) 结构的遍历与显示结构的遍历与显示( (续续) ) 已经显示的结构如果不再

21、需要显示,则可以使用下面的函数: Unpost_structure(ws_id, structures_id) Unpost_all_structures(ws_id) 为了显示一个结构网络,PHIGS必须把结构网络中所有结构元素抽取出来逐个地进行解释处理,这个过程称之为“遍历”(traversal) 。 遍历是一个递归过程。需要指出的是,遍历过程对用户来说是透明的。 5.2.4 建模操作建模操作 模型模型(model)(model):被研究的对象(实际或抽象)的一种表示 或描述。 模型构造模型构造:简称为“建模”(modelling),是建立并对模型进 行各种处理操作的过程。 建模系统建模系

22、统: :具有模型的建立、修改、存储、检索以及其他 各种操作处理功能的软件。 建模与图形显示和各种交互处理既紧密联系在一起,又是相互区别。 基于结构的建模是通过由底向上的构造过程来产生形体的层次结构模型,其机理与“搭积木块”类似。 5.2.4 建模操作建模操作(续续) 基于结构的建模操作除了上一节所涉及的部分以外, 还包括下面几种操作: 建模变换与建模裁剪建模变换与建模裁剪 结构网络在引用一个结构时,往往先要使用结构元素Set_local_transformation指出对被引用结构所需进行的建模变换。 假如结构网络具有多个层次,则最低层的结构(叶结构)在根结构中的位置、方向及大小应由一系列建模

23、变换复合而成的复合变换来决定。不妨认为叶结构在模型坐标系中定义,于是被引用的叶结构在根结构中的坐标由下式决定:11144434241343332312423222114131211zyxzyxzyxMCMCMCMCMCMCCCCCCCCCCCCCCCCCWCWCWCCC表示对叶结构需要进行的复合建模变换 5.2.4 建模操作建模操作(续续)上面公式中复合建模变换C的计算公式为 : C = G L L:局部建模变换; G:全局建模变换 L的初值为单位矩阵,应用下面的函数可以指定它的值:Set_local_transformation_3(transformation_matrix, compos

24、ition_type)Set_local_transformation(transformation_matrix, composition_type) transformation_matrix分别为44或33的变换矩阵 composition_type指示类型 G可以定义新的值,使用下面的函数Set_global_transformation_3(transformation_matrix)Set_global_transformation(transformation_matrix)transformation_matrix就是新定义的全局建模变换矩阵 5.2.4 建模操作建模操作(续续

25、)建模裁剪建模裁剪 :PHIGS允许在建立模型的过程中对模型进行裁剪。 建模裁剪使用的裁剪边界称为建模裁剪体,它由定义在模型坐标中的一组半空间S的交(intersection)形成,即: S = S1 S2 S3 Sn 应用程序可以使用下面的结构元素来定义建模裁剪体: Set_modelling_clipping_volume_3(operator, half_spaces) Set_modelling_clipping_volume(operator, half_spaces) 建模裁剪操作执行与否可以由下面的结构元素进行控制: Set_modelling_clipping_indicato

26、r(indicator) 建模裁剪体已有了修改,应用程序需要把它恢复成从父结构中继承下来的初值时,则可以使用下面的函数: Restore_modelling_clipping_volume 5.2.4 建模操作建模操作(续续)2.2.结构的交互编辑结构的交互编辑 PHIGS向应用程序提供了对结构中各个结构元素个别地进行存取和修改的能力,即结构编辑操作。 需要进行编辑处理的结构必须先由函数Open_structure打开 ,编辑操作处理完毕后,则使用Close_structure把该结构关闭.应用程序一次只能打开一个结构,利用Inquire_open_ structure函数可以查询现行打开的结构的标识。 应用程序可以使用下列一些函数对元素指针进行操作:Set_element_pointer(position) Offset_element_pointer(offset) Set_element_pointer_at_label(label) 5.2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论