图形操作(数据库)
时间:2022-11-24 16:30:02 | 来源:信息时代
时间:2022-11-24 16:30:02 来源:信息时代
图形操作 : 对图形数据库或CAD系统中的图形数据(图形元素、广义绘图图元等)进行的各种操作或运算。图形操作的基础是坐标系统。
1. 图形元素
图形元素(graphics element)又称图元(primitive)或称图形(输出)原语,是用来构成显示图形的基本图形元素,也是图形输出设备能完成的一组基本动作,通常包括线、圆(弧)、字符等(其外观特性由其属性决定)。在图形标准GKS中总共规定了六种输出原语。即折线、多点标记、正文、填充区、单元阵列及广义绘图图元。图形输出原语可以为用户提供一些最基本的图形显示功能,一般说来,它可以有可被编译的图形命令语句或图形子程序模块等形式。
(1)折线(polyline): 为GKS和另一种图形标准CORE所采用的图元之一。折线可以看作是由一组相连接的直线线段所构成,可以用下面这种形式表示: Polyline(n,X,Y),其中n为数据点数,X和Y表示n个点在X和Y方向的一组坐标值(数组)。
(2) 圆(circle): 常用的图元之一。但是,在有些图形标准中未将它作为基本图元,因为它可以作为变换处理(如在GKS中的广义绘图图元)。在图形软件系统中如果要设置画圆(弧)命令语句时,其参数可以取为圆心的坐标和半径(或直径)。
(3)标记(marker): 一种具有特定外观形状的图形符号,用于标记某个位置。
(4)多点标记(polymarker): GKS中采用的图元之一,它是由一组位置(坐标)所组成,在每个位置上均用标记符号标明。例如,PLOYMARKER(N,X,
Y)。
(5)正文(text): 一个由字符串组成的GKS输出原语,其形式可表示为: TEXT(X,Y,STRING),其中STRING可将被输出的正文,(X,Y)为所要输出的起始坐标位置。
(6)图形字符(graphics character):一种不同于控制功能的字符,具有可视的图形,通常可用绘制或计算机显示等方法来表示。在ISO颁布的编码字符集中,明确地规定了信息处理和信息变换所采用的编码字符集以及图形字符的名称。某些图形字符集可以允许在同一个字符位置用2个或2个以上的图形字符组合起来,以表示增补的图形字符。
(7)图形符号(graphics symbol): 一个可识别的显示处理程序段。其状态和输出图形的外貌特征并未加以规定,而在被图形实体援引时,才生成该符号的比例图,并将它作为那个图形实体的一部分,其外貌特征在援引时就予以规定。
(8)单元阵列(cell array):这是GKS提出的六个图形输出原语之一,又称象元阵列。它是由大小相等的矩形单元组成的矩形网格,其中的每个单元都可以具有同种颜色。要指出的是,这里所指的单元并不等同于像素。单元阵列通常用单元阵列来标识,其参数为: 定义该阵列矩形的两个对角点坐标,阵列在X和Y两个方向上的单元数,以及单元的颜色索引值数组。
(9)填充区(fill area): 填充区指GKS所定义的图形输出原语(或图元)之一。在一般二维图形软件(系统)中,通常都具有这种图形功能。可以将它看作是对封闭边界区域的一种操作,其操作结果是在区域内部用指定的单一颜色、图案或阴影线进行填充。
(10)填充区的多边形(polygons fill area): 填充区的多边形指用图形输出原语fill area(填充区)所定义的区域。通常它都是由若干个点组成的封闭多边形。经过填充后所得到的实体,应该包括该多边形的边框和内部区域。
(11)正文校准中心(center text alignment): 指在输出正文时,是以其中心点为基点进行输出。与此相应的概念还有: 水平方向校准和垂直方向校准。所谓水平方向校准,可包括左、中、右等位置; 所谓垂直方向校准,可包括顶端、半高点、底部、基线等位置。
2. 广义绘图图元
广义绘图图元(generalized drawing primi-tive,GDP)所采用的一种供扩充的图元,可以用来表示五种基本图元以外的一些其他图元,如圆、椭圆和样条曲线等,具体的使用取决于所用工作站的能力。其参数包括GDP标识符和存放于数组中的数据等。
(1)椭圆(ellipse):在GKS中可能由广义绘图图元表示的一类曲线,所需要给出的参数是两个焦点和周界点。在用于图形描述信息的存储和传输中的图形元文件国际标准CGM中,将椭圆(弧)列入图形输出原语中,其参数为中心坐标及长、短半轴。
(2)样条曲线(spline curve): 该词源于造船业中的船体设计。在对曲线进行拟合时,用一根富于弹性的细木条在各个数值点处强迫它通过这些点,最后沿着弯曲的木条可以画出一条所需要的光滑曲线。考察相邻的数值点之间的曲线段,就可以导出描述通过若干数值点的受力细梁的数学方程。上述曲线段可以用下面形式的三次方程来表示:
F(t)=B1+B2t+B3t2+B4t3。
式中,B
1、B
2、B
3、B
4是为满足曲线段边界条件所选择的系数。边界条件为:①曲线段通过两个端点;②相邻曲线段公共点处斜率相等。
(3) 贝塞尔曲线(Bezier curve): 由法国雷诺汽车公司的P.Bezier提出的一个构造光滑曲线的数学方法。根据这个方法开发的一个UNISURF系统,可以通过计算机设计汽车车身外形的造型,并可用数控机床将板件加工成模型。曲线的形状是通过一组多边形折线(构成特征多边形)的各个顶点唯一地定义出来。在所有顶点中,只有最初和最末的两个顶点是在曲线上,其余的顶点则用于定义曲线的导数,阶次和形状。位于两头的两条折线是表示曲线在起点和终点处的切线方向,整条曲线的形状趋向于多边形折线的形状。很显然,改变多边形的形状和改变曲线的形状有着直接的联系。贝塞尔曲线的数学基底是在第一和最后端点之间所联内插的多项式混合函数,曲线上各点的方程为:
其中,P
i为各顶点的位置向量。“B
i,n(t)”是古典的伯恩斯坦多项式,称为基(底)函数也即贝塞尔多边形各顶点位置向量之间的混合函数。贝塞尔曲线具有对称性、凸包性和几何不变性的特性,也称贝兹曲线。一般的矢量图形软件通过它来精确画出曲线,贝兹曲线由线段与结点组成,结点是可拖动的支点,线段像可伸缩的皮筋,我们在绘图工具上看到的钢笔工具就是来做这种矢量曲线的。当然,在一些比较成熟的位图软件中也有贝塞尔曲线工具,如PhotoShop等。在Flash4中还没有完整的曲线工具,而在Flash5里面已经提供出贝塞尔曲线工具。
(4)B-样条曲线(B-spline curve): 常用的构造曲线的方法之一,最初由Curry和Schoenberg于1947年提出。由给定的n+1个控制点组成的特征多边形,以及一组基函数(称为B样条基)定义了一条K次样条曲线(k≤n)。曲线一般不通过控制点,具有易于控制、修改的特点。它与贝塞尔(Bezier)曲线密切相关,但是与之不同的是,B样条有局部控制功能,即对控制点的修改仅影响局部曲线的形状,适合于交互式设计曲线,K次B样条曲线的数学表达式如下:
其中,i=0,1,…,m-1; m=n-k+1。实际应用最多的为三次B样条曲线,具有C
2连续性。
(5)双三次曲面(bicubic surface):这是一类应用很广泛的构造曲面,也称作参数式双三次曲面,它经常被用于构造一些比较复杂的曲面。常用的Bezier或B样条双三次曲面,以给定区域的双参数向量函数表示。由4×4个控制点组成空间特征网络,构成的曲面片以三次Bezier或B样条曲线为基础,曲线的性质可直接推广。通过网格控制点的调整,可以达到控制曲面形状的目的。
(6)图形基元素表(graphics primitive table): 又称图形显示基本指令表。可以将一些比较通用的基本图形显示命令组成指令库,这些命令包括将坐标(X,Y)处置为当前点,从当前点至坐标(X,Y)处画一线段,在当前点处显示一个字符,等等。用户可以根据以列表形式出现的指令库来编制和准备显示文件,而不必再涉及到更低层的形式。
3. 坐标(coordinates)
能够确定一个点在空间位置的一个或一组数据,是一种用来测量和描述空间的数值方法。在笛卡儿坐标系中用这个点到垂直相交的若干条固定的直线距离来表示。这些直线叫做坐标轴。坐标轴的数目在平面上为2个,在空间为3个。
(1)笛卡儿坐标(Cartesian coordinates): 表示几何的坐标概念和方法,该方法以笛卡儿命名,首先建立以垂直相交的两个坐标轴,一个为水平的,另一个为垂直的,通常命名为X、Y轴,其交点称为原点。任何一点P在平面上的位置均可由两个分量唯一地确定。在三维的情况下,可以再引入一个通过原点并与X-Y平面垂直的第三个坐标轴,即Z轴。Z轴方向的选择有两种可能,即右手系和左手系。计算机图形学常用右手坐标系。
(2)规格化设备坐标(normalized device coordinates,NDC): 在一个独立于设备的中间坐标系中的坐标,其取值被规格化到特定的范围之内,典型的X、Y轴取值范围是[0,0]~[1,1]。在GKS中,坐标可能在定义范围之外,但是有关的剪取信息将保证输出不超出坐标值域的范围。
(3)设备坐标(device coordinates): 用一个和设备有关的坐标系来表示的坐标。用来度量在一个设备的显示面上的物理位置,取值范围受设备I/O精度和有效幅面的限制。
(4)用户坐标(user coordinates): 计算机图形技术中,一种由用户规定的坐标,并形成与应用无关的坐标系统。对于一个特定的问题,用户总想选一个特定的坐标系统,以便可以得心应手的工作。在大多数情况下,用户坐标系统就是笛卡儿坐标系统,但是,用户坐标系统也可能是对数坐标或极坐标系统。比如在GKS中,GKS只能理解笛卡儿坐标系统,那么用户必须把自己的坐标系统映射到笛卡儿坐标系统上去。
(5)世界坐标系(world coordinates):一个应用程序用来规定图形输入和输出的独立于设备的笛卡儿坐标系。X、Y轴的取值范围可以在整个实数区域。
(6) 虚拟设备坐标 (virtual device coordinates,VDC): 一个长方形的右手绝对坐标系统。从概念上讲,其精度和范围是没有什么限制的,在实际上常常表示其一个子集。在虚拟设备坐标系中,其单位可以随意位,能够映射成的物体设备其单位大小也是任意的,比如可以为米制。虚拟设备坐标的范围、精度以及与真实空间的映射关系需经过设置。
(7)观察参照坐标系(view reference coordinate system,VRC):在三维图形变换中引入的一个过渡坐标系。观察坐标系中的原点即为视点,视线方向为其Z轴,与之垂直的平面为观察平面。该坐标系的引入简化了一些变换的描述的处理。
(8)坐标变换(coordinate transformation):在不同坐标系之间对图形数据进行映射。常用的坐标变换有: ①规格化变换(normalization transformation)WC->NDC,这是世界坐标系到规格化设备坐标系之间的变换,主要特点是允许应用程序的坐标系与WC空间无关,该变换允许定比和平移变换; ②工作站变换(workstation transformation)NDC->DC; ③图段变换(segment transformation)NDC->NDC,这是一种几何变换,用来在显示器上获得图段的不同视图,并且允许平移、定比、旋转变换。