矢量圖形

计算机图形学中用点、直线或者多边形等基于数学方程的几何图元表示图像

矢量圖形計算機圖形學中用直線或者多邊形等基於數學方程的幾何圖元表示的圖像。矢量圖形與使用像素表示圖像的位圖不同。

矢量圖形的顯示效果示例:(a)原始矢量圖;(b)矢量圖放大8倍;(c)位圖放大8倍。位圖的放大品質較差,但是矢量圖可以不降低品質地無限放大。

綜述

編輯

所有的現代計算機顯示器都要將矢量圖形轉換成柵格圖像的格式,包含屏幕上每個像素數值的柵格圖像保存在內存中。

從計算機發展的最初1950年代一直到1980年代,曾經使用過一種不同類型的矢量圖形系統顯示器。在這些系統中CRT顯示器的電子束直接逐段生成所需圖形,屏幕其它部分保持為黑的狀態。為了達到沒有閃爍或者接近沒有閃爍的效果,這個過程每秒要重複很多次。這種顯示系統可以生成分辨率非常高的藝術線條,並且不需要柵格系統生成同樣分辨率所需要的對於當時來說非常巨大的內存空間。這種基於矢量的顯示器稱為X-Y顯示器

 
矢量化是去除照片中多餘信息的好方法。(為了在本頁顯示,圖像轉成了JPEG格式。)
 
原始照片,JPEG柵格圖像
 
矢量化的Steam Locomotive 7646,最初是Windows Metafile格式。

矢量圖形顯示器的最初應用之一是US SAGE防空系統。矢量圖形系統只有在1999年美國的空管中出現過故障,現在依然在軍隊以及一些特殊系統中使用。另外,1963年,計算機圖形學先驅Ivan Sutherland在MIT Lincoln Laboratory的TX-2上使用矢量系統運行他的Sketchpad程序。

後來的矢量圖形系統包括Digital的GT40 [1]。有一個名為Vectrex的家庭遊戲系統使用了矢量圖形,另外還有「Asteroids」以及「Space wars」這樣的遊樂中心遊戲也使用了矢量圖形。另外值得一提的是Tektronix 4014,儘管它的顯示是靜態的。

如今矢量圖形這個術語主要用於二維計算機圖形學領域。它是藝術家能夠在柵格顯示器上生成圖像的幾種方式之一。另外幾種方式包括文本、多媒體以及三維渲染。實質上而言,所有當今的三維渲染都是二維矢量圖形技術的擴展。工程製圖領域的繪圖儀仍然直接在圖紙上繪製矢量圖形。

目的

編輯

例如,程序繪製一個半徑r所需的主要信息是:

  1. 半徑r
  2. 圓心坐標
  3. 輪廓樣式與顏色
  4. 填充樣式與顏色

這種繪製圖比位圖的優越之處有:

  • 保存最少的信息,文件大小比位圖要小,並且文件大小與物體的大小無關
  • 在圖像處理軟件中,任意放大矢量圖形,不會丟失細節或影響清晰度,因為矢量圖形是與分辨率無關的。無限地放大這個圓,它仍然保持平滑;而位圖用多邊形表示的曲線將會顯現出不是真正的曲線
  • 在放大的時候,直線與曲線都不會成比例地變粗,它只會保持不變或者要小於縮放比例;為了看起來比較平滑,使用簡單幾何形狀表示的不規則曲線將會成比例地變粗,並且看起來不再像這些幾何形狀
  • 保存的物體參數可以在後面修改。這也就是說物體的運動縮放旋轉、填充等都不會降低繪製的精度。另外,可以用與設備無關的單位表示,這樣更好地柵格設備上進行柵格化
  • 從三維的視角來看,由於陰影可以抽象為形成它們的光線,所以矢量圖形的陰影渲染更加真實。這樣就可以得到真實感的圖像及渲染效果。
  • 當調整矢量圖形的大小、將矢量圖形打印到 PostScript 打印機、在 PDF 文件中保存矢量圖形或將矢量圖形導入到基於矢量的圖形應用程序中時,矢量圖形都將保持清晰的邊緣。因此,對於將在各種輸出媒體中按照不同大小使用的圖稿(如徽標),矢量圖形是最佳選擇[1]

典型的圖元對象

編輯

這只是其中的一部分,另外還有各種各樣用於不同應用程序的曲線,如「Catmull-Rom樣條」非均勻有理B樣條等。

通常位圖圖像也是一個元對象,從概念上來看它同矩形的表現類似。

矢量運算

編輯

矢量圖形編輯器通常可以旋轉、平移、鏡像、拉伸、扭曲矢量圖形,通常可以進行仿射變換,改變深度位置並且將圖元與複雜物體合併。 更加複雜的變換包括封閉形狀集合運算併集補集交集等)。

矢量圖形非常適合於與設備無關的簡單或者合成的製圖或者不需要實現真實感的場合。例如,「PostScript」以及PDF頁面描述語言就使用了矢量圖形模型。

打印

編輯

矢量藝術線條是打印領域中的一項關鍵技術。因為藝術線條是從一系列數學點得到的,所以無論如何縮放藝術線條打印結果質素都非常高。例如,將同一個矢量標識圖打印到名片上或者放大到廣告牌上,都可以得到同樣的圖像質素。與此不同的是,如果位圖從名片大小放大到廣告版的尺寸,那麼圖像細節將會變得非常模糊。

三維造型

編輯

三維計算機圖形學中,矢量表面表示非常常見,而位圖可以用作表面紋理、高度場數據以及凸凹紋理映射等特殊目的。在低端系統中,在應用程序中用簡單的多邊形網格表示幾何細節,在這些場合交互幀率或者簡單性都是非常重要的。在高端系統中,如果希望通過犧牲渲染時間的方法換取更好的圖像質素及精度,那麼就可以使用貝塞爾曲面NURBS或者細分曲面等平滑表示方法。但是,我們也可以用「Phong shading」這樣的算法從多邊形網格實現一個平滑曲面。

參考文獻

編輯
  1. ^ 存档副本. [2014-07-17]. (原始內容存檔於2014-07-26). 

外部連結

編輯

參見

編輯