第六章形体的表示及其数据结构 与空间任意形体有关的信息可以分为 图形信息和非图形信息两类。图形信息指 构成它们的点、线、面的位置,相互关系 及大小等;非图形信息指形体的颜色、亮 度、质量、体积等一些性质。 形体的图形信息又可以分为几何信 息和拓扑信息两类。几何信息指形体在空 间的位置和大小,拓扑信息指组成形体各 部分的数目及相互间的连接关系
第六章 形体的表示及其数据结构 与空间任意形体有关的信息可以分为 图形信息和非图形信息两类。图形信息指 构成它们的点、线、面的位置,相互关系 及大小等;非图形信息指形体的颜色、亮 度、质量、体积等一些性质。 形体的图形信息又可以分为几何信 息和拓扑信息两类。几何信息指形体在空 间的位置和大小,拓扑信息指组成形体各 部分的数目及相互间的连接关系
第一节图形的分段表示 图形段可以定义为是一组输出图 形元素的集合,该集合成为图形操作 的基本单元。 对图形段规定哪些功能及如何实 现,可以有多种不同的方案。一般地 说,对图形段的操作,是通过调用子 程序来实现的
第一节 图形的分段表示 图形段可以定义为是一组输出图 形元素的集合,该集合成为图形操作 的基本单元。 对图形段规定哪些功能及如何实 现,可以有多种不同的方案。一般地 说,对图形段的操作,是通过调用子 程序来实现的
例如要建立一个图形段,它的内容 是图6.1中的一个正方形,可用下列程序: Createsegment (i) moveto2(0.0,0.0) lineto2(1.0,0.0); lineto2(1.0,1.0): lineto2(0.0,1.0) lineto2(0.0,0.0) 图6.1一个图形段的例子 Closesegment (i)
例如要建立一个图形段,它的内容 是图6.1中的一个正方形,可用下列程序: Createsegment(i); moveto2( 0.0, 0.0); lineto2(1.0,0.0); lineto2(1.0,1.0); lineto2(0.0,1.0); lineto2(0.0,0.0); Closesegment(i);
显示图形段1,调用: SetVisibility (i,on); 否则,调用 SetVisibility (i,off); 删除图形段工,调用 Deletesegment (i); 使图形段正在屏幕上的显示沿x和y轴方向 分别平移dx和dy距离,可以调用: TranslateImage (i,dx,dy);
显示图形段i,调用: SetVisibility(i,on); 否则,调用 SetVisibility(i,off); 删除图形段I,调用 Deletesegment(i); 使图形段正在屏幕上的显示沿x和y轴方向 分别平移dx和dy距离,可以调用: TranslateImage(i,dx,dy);
光栅扫描显示器上实现图形段的方案 显示文件 表示一幅图形的显示命令序列 逻辑结构上显示文件是以命令为结点的 线性结构,即是一个命令的序列。每一个命 令可以用一个记录来表示,记录中不同的字 段用来表示命令的名字、命令需要的参数等: 不同的命令可能要求不同个数的参数,为了 方便可以假定记录中包含了足够多的字段。 为说明简单,每个记录只假定有三个字 段,一个命令名字段,两个操作数字段
光栅扫描显示器上实现图形段的方案 显示文件 表示一幅图形的显示命令序列 逻辑结构上显示文件是以命令为结点的 线性结构,即是一个命令的序列。每一个命 令可以用一个记录来表示,记录中不同的字 段用来表示命令的名字、命令需要的参数等. 不同的命令可能要求不同个数的参数,为了 方便可以假定记录中包含了足够多的字段。 为说明简单,每个记录只假定有三个字 段,一个命令名字段,两个操作数字段
显示文件6.1 命令序号 命令名 操作数1 操作数2 10 moveto2 0.0 0.0 11 l ineto 1.0 0.0 12 lineto 1.0 1.0 13 lineto 0.0 1.0 14 l ineto 0.0 0.0
命令序号 命令名 操作数1 操作数2 10 moveto2 0.0 0.0 11 lineto 1.0 0.0 12 lineto 1.0 1.0 13 lineto 0.0 1.0 14 lineto 0.0 0.0 显示文件 6.1
把一幅图形分解为若干个独立的子图 形,可以通过对显示文件做相应的划分来 实现。这样同一个图形段对应的显示命令 序列在显示文件内集中在一起。如果要对 某一个图形段涉及图形做变换,可以只变 换显示文件中它对应的显示命令序列,使 得在这个图形段的图形显示不与其它图形 段的显示发生重叠时,就不会影响其它段 的显示。 分段显示文件 以段为基础的显示文件
把一幅图形分解为若干个独立的子图 形,可以通过对显示文件做相应的划分来 实现。这样同一个图形段对应的显示命令 序列在显示文件内集中在一起。如果要对 某一个图形段涉及图形做变换,可以只变 换显示文件中它对应的显示命令序列,使 得在这个图形段的图形显示不与其它图形 段的显示发生重叠时,就不会影响其它段 的显示。 分段显示文件 以段为基础的显示文件
常常需要对图形段对应的图形指定 各种属性,应该指定哪些属性与应用有 关。 般地说,应该有可见性属性,与几 何变换有关的属性,优先级属性 。 为便于同一命令序列能为不同的段 所用,还应该为图形段添上两项属性, 即命令序列存放的起始地址和长度.这样, 为了实现图形的分段表示,还应该建立 和维护一个放置段属性的表,称为段表:
常常需要对图形段对应的图形指定 各种属性,应该指定哪些属性与应用有 关。 一般地说,应该有可见性属性,与几 何变换有关的属性,优先级属性 。 为便于同一命令序列能为不同的段 所用,还应该为图形段添上两项属性, 即命令序列存放的起始地址和长度.这样, 为了实现图形的分段表示,还应该建立 和维护一个放置段属性的表,称为段表
段表6.2 段序 段起 段长 可见 变换 平移 缩放 旋转 号 点 度 性 次序 量 角度 段起点是在显示文件中该段第一条显示 命令所在序号;段长度,是该段中显示命令 的条数;可见性,可约定0为不可见,1为可 见;变换次序指明后面要进行的平移、比例、 旋转三个变换六种全部可能的实现次序中应 选哪一种,因此可以是1到6的一个整数
段起点是在显示文件中该段第一条显示 命令所在序号;段长度,是该段中显示命令 的条数;可见性,可约定0为不可见,1为可 见;变换次序指明后面要进行的平移、比例、 旋转三个变换六种全部可能的实现次序中应 选哪一种,因此可以是1到6的一个整数。 段 序 号 段 起 点 段 长 度 可 见 性 变 换 次序 平 移 量 缩 放 量 旋 转 角度 1 段表 6.2
第二节二维形体的表示 ·二维图形的边界表示 折线法和带树法 折线法就是用多段线段形成的折线去 逼近曲线 折线表示曲线应该解决的关键问题是: 如何恰当地确定曲线上一系列点,使之在 某些判定准则下达到最优
第二节 二维形体的表示 • 二维图形的边界表示 折线法和带树法 折线法就是用多段线段形成的折线去 逼近曲线 折线表示曲线应该解决的关键问题是: 如何恰当地确定曲线上一系列点,使之在 某些判定准则下达到最优