圖形操作(數(shù)據(jù)庫)
時(shí)間:2022-11-24 16:30:02 | 來源:信息時(shí)代
時(shí)間:2022-11-24 16:30:02 來源:信息時(shí)代
圖形操作 : 對圖形數(shù)據(jù)庫或CAD系統(tǒng)中的圖形數(shù)據(jù)(圖形元素、廣義繪圖圖元等)進(jìn)行的各種操作或運(yùn)算。圖形操作的基礎(chǔ)是坐標(biāo)系統(tǒng)。
1. 圖形元素
圖形元素(graphics element)又稱圖元(primitive)或稱圖形(輸出)原語,是用來構(gòu)成顯示圖形的基本圖形元素,也是圖形輸出設(shè)備能完成的一組基本動(dòng)作,通常包括線、圓(弧)、字符等(其外觀特性由其屬性決定)。在圖形標(biāo)準(zhǔn)GKS中總共規(guī)定了六種輸出原語。即折線、多點(diǎn)標(biāo)記、正文、填充區(qū)、單元陣列及廣義繪圖圖元。圖形輸出原語可以為用戶提供一些最基本的圖形顯示功能,一般說來,它可以有可被編譯的圖形命令語句或圖形子程序模塊等形式。
(1)折線(polyline): 為GKS和另一種圖形標(biāo)準(zhǔn)CORE所采用的圖元之一。折線可以看作是由一組相連接的直線線段所構(gòu)成,可以用下面這種形式表示: Polyline(n,X,Y),其中n為數(shù)據(jù)點(diǎn)數(shù),X和Y表示n個(gè)點(diǎn)在X和Y方向的一組坐標(biāo)值(數(shù)組)。
(2) 圓(circle): 常用的圖元之一。但是,在有些圖形標(biāo)準(zhǔn)中未將它作為基本圖元,因?yàn)樗梢宰鳛樽儞Q處理(如在GKS中的廣義繪圖圖元)。在圖形軟件系統(tǒng)中如果要設(shè)置畫圓(弧)命令語句時(shí),其參數(shù)可以取為圓心的坐標(biāo)和半徑(或直徑)。
(3)標(biāo)記(marker): 一種具有特定外觀形狀的圖形符號,用于標(biāo)記某個(gè)位置。
(4)多點(diǎn)標(biāo)記(polymarker): GKS中采用的圖元之一,它是由一組位置(坐標(biāo))所組成,在每個(gè)位置上均用標(biāo)記符號標(biāo)明。例如,PLOYMARKER(N,X,
Y)。
(5)正文(text): 一個(gè)由字符串組成的GKS輸出原語,其形式可表示為: TEXT(X,Y,STRING),其中STRING可將被輸出的正文,(X,Y)為所要輸出的起始坐標(biāo)位置。
(6)圖形字符(graphics character):一種不同于控制功能的字符,具有可視的圖形,通??捎美L制或計(jì)算機(jī)顯示等方法來表示。在ISO頒布的編碼字符集中,明確地規(guī)定了信息處理和信息變換所采用的編碼字符集以及圖形字符的名稱。某些圖形字符集可以允許在同一個(gè)字符位置用2個(gè)或2個(gè)以上的圖形字符組合起來,以表示增補(bǔ)的圖形字符。
(7)圖形符號(graphics symbol): 一個(gè)可識別的顯示處理程序段。其狀態(tài)和輸出圖形的外貌特征并未加以規(guī)定,而在被圖形實(shí)體援引時(shí),才生成該符號的比例圖,并將它作為那個(gè)圖形實(shí)體的一部分,其外貌特征在援引時(shí)就予以規(guī)定。
(8)單元陣列(cell array):這是GKS提出的六個(gè)圖形輸出原語之一,又稱象元陣列。它是由大小相等的矩形單元組成的矩形網(wǎng)格,其中的每個(gè)單元都可以具有同種顏色。要指出的是,這里所指的單元并不等同于像素。單元陣列通常用單元陣列來標(biāo)識,其參數(shù)為: 定義該陣列矩形的兩個(gè)對角點(diǎn)坐標(biāo),陣列在X和Y兩個(gè)方向上的單元數(shù),以及單元的顏色索引值數(shù)組。
(9)填充區(qū)(fill area): 填充區(qū)指GKS所定義的圖形輸出原語(或圖元)之一。在一般二維圖形軟件(系統(tǒng))中,通常都具有這種圖形功能??梢詫⑺醋魇菍Ψ忾]邊界區(qū)域的一種操作,其操作結(jié)果是在區(qū)域內(nèi)部用指定的單一顏色、圖案或陰影線進(jìn)行填充。
(10)填充區(qū)的多邊形(polygons fill area): 填充區(qū)的多邊形指用圖形輸出原語fill area(填充區(qū))所定義的區(qū)域。通常它都是由若干個(gè)點(diǎn)組成的封閉多邊形。經(jīng)過填充后所得到的實(shí)體,應(yīng)該包括該多邊形的邊框和內(nèi)部區(qū)域。
(11)正文校準(zhǔn)中心(center text alignment): 指在輸出正文時(shí),是以其中心點(diǎn)為基點(diǎn)進(jìn)行輸出。與此相應(yīng)的概念還有: 水平方向校準(zhǔn)和垂直方向校準(zhǔn)。所謂水平方向校準(zhǔn),可包括左、中、右等位置; 所謂垂直方向校準(zhǔn),可包括頂端、半高點(diǎn)、底部、基線等位置。
2. 廣義繪圖圖元
廣義繪圖圖元(generalized drawing primi-tive,GDP)所采用的一種供擴(kuò)充的圖元,可以用來表示五種基本圖元以外的一些其他圖元,如圓、橢圓和樣條曲線等,具體的使用取決于所用工作站的能力。其參數(shù)包括GDP標(biāo)識符和存放于數(shù)組中的數(shù)據(jù)等。
(1)橢圓(ellipse):在GKS中可能由廣義繪圖圖元表示的一類曲線,所需要給出的參數(shù)是兩個(gè)焦點(diǎn)和周界點(diǎn)。在用于圖形描述信息的存儲(chǔ)和傳輸中的圖形元文件國際標(biāo)準(zhǔn)CGM中,將橢圓(弧)列入圖形輸出原語中,其參數(shù)為中心坐標(biāo)及長、短半軸。
(2)樣條曲線(spline curve): 該詞源于造船業(yè)中的船體設(shè)計(jì)。在對曲線進(jìn)行擬合時(shí),用一根富于彈性的細(xì)木條在各個(gè)數(shù)值點(diǎn)處強(qiáng)迫它通過這些點(diǎn),最后沿著彎曲的木條可以畫出一條所需要的光滑曲線??疾煜噜彽臄?shù)值點(diǎn)之間的曲線段,就可以導(dǎo)出描述通過若干數(shù)值點(diǎn)的受力細(xì)梁的數(shù)學(xué)方程。上述曲線段可以用下面形式的三次方程來表示:
F(t)=B1+B2t+B3t2+B4t3。
式中,B
1、B
2、B
3、B
4是為滿足曲線段邊界條件所選擇的系數(shù)。邊界條件為:①曲線段通過兩個(gè)端點(diǎn);②相鄰曲線段公共點(diǎn)處斜率相等。
(3) 貝塞爾曲線(Bezier curve): 由法國雷諾汽車公司的P.Bezier提出的一個(gè)構(gòu)造光滑曲線的數(shù)學(xué)方法。根據(jù)這個(gè)方法開發(fā)的一個(gè)UNISURF系統(tǒng),可以通過計(jì)算機(jī)設(shè)計(jì)汽車車身外形的造型,并可用數(shù)控機(jī)床將板件加工成模型。曲線的形狀是通過一組多邊形折線(構(gòu)成特征多邊形)的各個(gè)頂點(diǎn)唯一地定義出來。在所有頂點(diǎn)中,只有最初和最末的兩個(gè)頂點(diǎn)是在曲線上,其余的頂點(diǎn)則用于定義曲線的導(dǎo)數(shù),階次和形狀。位于兩頭的兩條折線是表示曲線在起點(diǎn)和終點(diǎn)處的切線方向,整條曲線的形狀趨向于多邊形折線的形狀。很顯然,改變多邊形的形狀和改變曲線的形狀有著直接的聯(lián)系。貝塞爾曲線的數(shù)學(xué)基底是在第一和最后端點(diǎn)之間所聯(lián)內(nèi)插的多項(xiàng)式混合函數(shù),曲線上各點(diǎn)的方程為:
其中,P
i為各頂點(diǎn)的位置向量?!癇
i,n(t)”是古典的伯恩斯坦多項(xiàng)式,稱為基(底)函數(shù)也即貝塞爾多邊形各頂點(diǎn)位置向量之間的混合函數(shù)。貝塞爾曲線具有對稱性、凸包性和幾何不變性的特性,也稱貝茲曲線。一般的矢量圖形軟件通過它來精確畫出曲線,貝茲曲線由線段與結(jié)點(diǎn)組成,結(jié)點(diǎn)是可拖動(dòng)的支點(diǎn),線段像可伸縮的皮筋,我們在繪圖工具上看到的鋼筆工具就是來做這種矢量曲線的。當(dāng)然,在一些比較成熟的位圖軟件中也有貝塞爾曲線工具,如PhotoShop等。在Flash4中還沒有完整的曲線工具,而在Flash5里面已經(jīng)提供出貝塞爾曲線工具。
(4)B-樣條曲線(B-spline curve): 常用的構(gòu)造曲線的方法之一,最初由Curry和Schoenberg于1947年提出。由給定的n+1個(gè)控制點(diǎn)組成的特征多邊形,以及一組基函數(shù)(稱為B樣條基)定義了一條K次樣條曲線(k≤n)。曲線一般不通過控制點(diǎn),具有易于控制、修改的特點(diǎn)。它與貝塞爾(Bezier)曲線密切相關(guān),但是與之不同的是,B樣條有局部控制功能,即對控制點(diǎn)的修改僅影響局部曲線的形狀,適合于交互式設(shè)計(jì)曲線,K次B樣條曲線的數(shù)學(xué)表達(dá)式如下:
其中,i=0,1,…,m-1; m=n-k+1。實(shí)際應(yīng)用最多的為三次B樣條曲線,具有C
2連續(xù)性。
(5)雙三次曲面(bicubic surface):這是一類應(yīng)用很廣泛的構(gòu)造曲面,也稱作參數(shù)式雙三次曲面,它經(jīng)常被用于構(gòu)造一些比較復(fù)雜的曲面。常用的Bezier或B樣條雙三次曲面,以給定區(qū)域的雙參數(shù)向量函數(shù)表示。由4×4個(gè)控制點(diǎn)組成空間特征網(wǎng)絡(luò),構(gòu)成的曲面片以三次Bezier或B樣條曲線為基礎(chǔ),曲線的性質(zhì)可直接推廣。通過網(wǎng)格控制點(diǎn)的調(diào)整,可以達(dá)到控制曲面形狀的目的。
(6)圖形基元素表(graphics primitive table): 又稱圖形顯示基本指令表??梢詫⒁恍┍容^通用的基本圖形顯示命令組成指令庫,這些命令包括將坐標(biāo)(X,Y)處置為當(dāng)前點(diǎn),從當(dāng)前點(diǎn)至坐標(biāo)(X,Y)處畫一線段,在當(dāng)前點(diǎn)處顯示一個(gè)字符,等等。用戶可以根據(jù)以列表形式出現(xiàn)的指令庫來編制和準(zhǔn)備顯示文件,而不必再涉及到更低層的形式。
3. 坐標(biāo)(coordinates)
能夠確定一個(gè)點(diǎn)在空間位置的一個(gè)或一組數(shù)據(jù),是一種用來測量和描述空間的數(shù)值方法。在笛卡兒坐標(biāo)系中用這個(gè)點(diǎn)到垂直相交的若干條固定的直線距離來表示。這些直線叫做坐標(biāo)軸。坐標(biāo)軸的數(shù)目在平面上為2個(gè),在空間為3個(gè)。
(1)笛卡兒坐標(biāo)(Cartesian coordinates): 表示幾何的坐標(biāo)概念和方法,該方法以笛卡兒命名,首先建立以垂直相交的兩個(gè)坐標(biāo)軸,一個(gè)為水平的,另一個(gè)為垂直的,通常命名為X、Y軸,其交點(diǎn)稱為原點(diǎn)。任何一點(diǎn)P在平面上的位置均可由兩個(gè)分量唯一地確定。在三維的情況下,可以再引入一個(gè)通過原點(diǎn)并與X-Y平面垂直的第三個(gè)坐標(biāo)軸,即Z軸。Z軸方向的選擇有兩種可能,即右手系和左手系。計(jì)算機(jī)圖形學(xué)常用右手坐標(biāo)系。
(2)規(guī)格化設(shè)備坐標(biāo)(normalized device coordinates,NDC): 在一個(gè)獨(dú)立于設(shè)備的中間坐標(biāo)系中的坐標(biāo),其取值被規(guī)格化到特定的范圍之內(nèi),典型的X、Y軸取值范圍是[0,0]~[1,1]。在GKS中,坐標(biāo)可能在定義范圍之外,但是有關(guān)的剪取信息將保證輸出不超出坐標(biāo)值域的范圍。
(3)設(shè)備坐標(biāo)(device coordinates): 用一個(gè)和設(shè)備有關(guān)的坐標(biāo)系來表示的坐標(biāo)。用來度量在一個(gè)設(shè)備的顯示面上的物理位置,取值范圍受設(shè)備I/O精度和有效幅面的限制。
(4)用戶坐標(biāo)(user coordinates): 計(jì)算機(jī)圖形技術(shù)中,一種由用戶規(guī)定的坐標(biāo),并形成與應(yīng)用無關(guān)的坐標(biāo)系統(tǒng)。對于一個(gè)特定的問題,用戶總想選一個(gè)特定的坐標(biāo)系統(tǒng),以便可以得心應(yīng)手的工作。在大多數(shù)情況下,用戶坐標(biāo)系統(tǒng)就是笛卡兒坐標(biāo)系統(tǒng),但是,用戶坐標(biāo)系統(tǒng)也可能是對數(shù)坐標(biāo)或極坐標(biāo)系統(tǒng)。比如在GKS中,GKS只能理解笛卡兒坐標(biāo)系統(tǒng),那么用戶必須把自己的坐標(biāo)系統(tǒng)映射到笛卡兒坐標(biāo)系統(tǒng)上去。
(5)世界坐標(biāo)系(world coordinates):一個(gè)應(yīng)用程序用來規(guī)定圖形輸入和輸出的獨(dú)立于設(shè)備的笛卡兒坐標(biāo)系。X、Y軸的取值范圍可以在整個(gè)實(shí)數(shù)區(qū)域。
(6) 虛擬設(shè)備坐標(biāo) (virtual device coordinates,VDC): 一個(gè)長方形的右手絕對坐標(biāo)系統(tǒng)。從概念上講,其精度和范圍是沒有什么限制的,在實(shí)際上常常表示其一個(gè)子集。在虛擬設(shè)備坐標(biāo)系中,其單位可以隨意位,能夠映射成的物體設(shè)備其單位大小也是任意的,比如可以為米制。虛擬設(shè)備坐標(biāo)的范圍、精度以及與真實(shí)空間的映射關(guān)系需經(jīng)過設(shè)置。
(7)觀察參照坐標(biāo)系(view reference coordinate system,VRC):在三維圖形變換中引入的一個(gè)過渡坐標(biāo)系。觀察坐標(biāo)系中的原點(diǎn)即為視點(diǎn),視線方向?yàn)槠鋃軸,與之垂直的平面為觀察平面。該坐標(biāo)系的引入簡化了一些變換的描述的處理。
(8)坐標(biāo)變換(coordinate transformation):在不同坐標(biāo)系之間對圖形數(shù)據(jù)進(jìn)行映射。常用的坐標(biāo)變換有: ①規(guī)格化變換(normalization transformation)WC->NDC,這是世界坐標(biāo)系到規(guī)格化設(shè)備坐標(biāo)系之間的變換,主要特點(diǎn)是允許應(yīng)用程序的坐標(biāo)系與WC空間無關(guān),該變換允許定比和平移變換; ②工作站變換(workstation transformation)NDC->DC; ③圖段變換(segment transformation)NDC->NDC,這是一種幾何變換,用來在顯示器上獲得圖段的不同視圖,并且允許平移、定比、旋轉(zhuǎn)變換。