二维计算机图形学

**2D 電腦圖形**（2D Computer Graphics），也簡稱為 2D CG，是基於電腦的數位影像的產生 — 主要是從 2D 模型（例如 2D 幾何模型，文字，和數位影像）產生，並且使用只適用這些模型的技術。該詞也用於指代這些模型本身。採用該技術的電腦科學的分支稱為 2D 電腦圖學。

2D 電腦圖形主要用於本來採用傳統印刷和繪製技術的那些應用場合，例如字型、地圖、工程製圖、廣告、等等。在那些應用中，2D 圖像不僅僅是現實世界物體的一個表示，它本身是有附加含義的獨立個體；因而 2D 模型在那些應用中更為實用，因為它們給出了比 3D 電腦圖形更為直接的控制（3D 圖形更象攝影而非列印）。

在諸如桌面發布、工程、和商務這樣的很多領域，基於 2D 電腦圖形的文件的表述比相應的數位影像可能會小得多 — 經常只有 1/1000 或者更小。該表示法也更靈活，因為它可以在不同的圖像解析度進行繪製以適應不同的輸出裝置。因而，文件和插圖經常採用 2D 圖形檔案儲存和傳輸。

2D 電腦圖形於 1950 年年開始，基於向量圖形裝置。它們在接下來的數十年間被光柵裝置大量替代。PostScript 語言和 X Window System 協定是該領域裡程碑式的發展。

## 2D 圖形技術

2D 圖形模型可以是如下這些的組合：幾何模型（也稱為向量圖形），數位影像（也稱為光柵圖形），需要排版的文字（由內容、字型和大小、顏色、和方向定義），數學函式和方程，等等。這些組件可以通過象平移、旋轉、縮放這樣的 2D 幾何變換來修改和操作。

在物件導向圖形中，圖像通過一個有自繪製方法 — 一個用任意的演算法來賦予圖像像素色彩值的常式 — 的物件來描述。複雜的模型可以通過將更簡單的物件組合起來得到，可以採用物件導向程式設計的範式。

### 直接繪製

建立一個複雜圖像的一個簡易辦法是從一塊空白畫布開始 — 填滿單一背景色的光柵圖（像素陣列 — 也稱為點陣圖）— 然後通過正確的次序「畫」，「漆」或者「貼」上簡單的色塊。特別的有，畫布可以是電腦顯示器的影格快取。

有些程式會直接設定像素色彩值，但多數會依賴一些 2D 圖形庫以及（或者）機器的圖形卡，它們通常會實現下列操作：

* 將一個給定的數位影像以一個給定的偏移貼到畫布上；
* 在給定的位置和角度將一個字串以給定的字型寫如影格快取；
* 繪製一個簡單的幾何圖形，例如用三個定點定義的三角形，或者給定圓心和半徑的圓；
* 繪製一條線段、圓弧、或者用給定粗細的虛擬筆繪製簡單曲線。

### 擴充色彩模型

文字、形狀和線條使用使用者指定的色彩繪製。很多庫和卡提供色彩梯度，它對於產生平滑變化的背景、陰影效果、等等都很實用（參看 Gouraud 明暗圖。像素色彩也可以從紋理中取得，例如從一個數位影像中（這樣就可以類比刮擦網目調（screentone）和以前只有卡通片中才有的「棋盤格噴漆」）。

用給定色彩繪製一個像素通常會取代其原先的色彩。但是，很多系統支援用透明和透過色彩繪製，它只會修改原先的像素值。

兩個色彩也可以用更花哨的方法組合，例如通過計算它們的位元互斥或。這個技術被稱為反色或者色彩翻轉，並經常在圖形化使用者介面中採用，用於突出顯示、釘釘板（rubber-band drawing）、以及其它臨時繪製 — 因為再次以同樣的色彩繪製相同的圖形會恢復原始的像素值。

### 層次

2D 電腦圖形採用的模型經常不提供 3D 形狀，也不提供光照、陰影、反射、折射、等等這樣的 3D 光學效果。但是，它們通常會有多個層次的模型（概念上就是墨水、紙、或者膠片組成的層次；可以是不透明、透明、或者半透明 — 並且以特定次序疊加。該次序通常用單個數字定義（該層次的深度，或者說離觀察者的距離）。

分層模型有時稱為 2 1/2 維電腦圖形。它們使得類比傳統的基於膠片和紙的草圖和印刷技術成為可能；並使得使用者能夠不對其它層次產生任何影響地編輯任意一層。因此，它們在多數圖形編輯器中得到採用。分層模型使得複雜圖像的反走樣變得更好，並且為諸如榫接和奇偶規則的特殊技術提供了一個正確的模型。

分層模型也用於允許使用者在察看或打映文件時限制不需要的資訊，例如地圖上的公路或者鐵路、積體電路布線圖的特定加工層次、商務信件的手寫注釋等等。

在分層模型中，目標圖像通過「繪製」或者「貼上」每個層次到虛擬畫布上產生，次序是按深度遞減。概念上，每一層首先獨自繪製，產生所需解析度的數位影像，然後在畫布上一個像素一個像素地描繪。當然，層次全透明的部分無須繪製。繪製和描繪可以並列的進行，也就是說，每個層次的像素在繪製行程中一產生就可以描繪到畫布上。

包含複雜幾何體的層次（例如文字或者多邊形）可以分解為更簡單的元素（分別是字元或者線段），然後作為分離的層次以某種次序繪製。但是，這個辦法可能在兩個元素重疊在同一個像素時產生不良的走樣這樣的人工因素。

參看可攜式文件格式 #層次。

## 2D 圖形硬體

現代電腦圖形卡幾乎全部採用光柵技術顯示，把整個螢幕分成像素的矩形點陣，這是因為基於光柵的圖形硬體和向量圖形硬體相比要低價。多數圖形硬體對於點陣圖傳送操作和精靈繪製有內部支援。專門用於點陣圖傳送的協處理器稱為傳送器晶片。

1970 年代晚期和 1980 年代早期的用於 8 位元遊戲平台和家用機的經典 2D 圖形晶片包括：

* Atari 的 ANTIC （實際上是一個 2DGPU），TIA， CTIA，和 GTIA
* Commodore/MOS Technology 的 VIC 和 VIC-II

## 2D 圖形軟體

很多圖形化使用者介面（GUI），包括 Mac OS，微軟視窗，或者 X 視窗系統，主要基於 2D 圖形概念。這些軟體提供了和電腦互動的視覺環境，並且常常包括某種形式的視窗管理器來幫助使用者從概念上區分不同的應用程式。
單個軟體應用程式的典型使用者介面也是本質上 2D 的，部分因為最普通的輸入裝置（例如滑鼠）被限制於做 2D 的運動。

2D 圖形在印表機、繪圖儀、線切割機等等外圍裝置的控制中殊為重要。它們也用於早期的電動遊戲和電腦遊戲中；並且依然在棋牌類遊戲中使用，例如接龍、象棋、麻將、等等。

2D 圖形編輯器或者說繪圖程式是應用程式級的軟體，用於圖像、流程圖、插圖等的建立，它採用 2D 圖形體素的直接操縱實現（通過滑鼠，繪圖版，或者類似的裝置）。這些編輯器一般提供 2D 幾何體素以及數字圖象；有些甚至支援程序化模型。插圖通常內部表示為分層模型，經常會有一個等級結構以方便編輯。這些編輯器通常輸出圖形檔案，其中層和體素分別以其原始形式儲存。MacDraw，是於 1984 年在麥金塔系列電腦上建立的，它是這類程式的一個早期的例子；現代的例子有商用產品 Adobe IllustratorAdobe Animate 和 CorelDraw，以及免費編輯器 xfig。也有很多 2D 圖形編輯器專用於特定的製圖，例如電氣、電子和大規模積體電路線路圖、地形圖、電腦字型、等等。

圖像編輯器是專用於數位影像的操作的，主要通過自由手繪和訊號處理操作。他們主要採用直接繪製的範式，其中使用者控制虛擬筆、刷、以及其他自由手動藝術裝置來將色彩繪於虛擬畫布上。有些圖像編輯器支援多層模型；但是，為了支援象模糊這樣的訊號處理操作，每個層通常表示為一個數位影像。所以，任何編輯器提供的幾何體素直接被轉換成像素並描到畫布上。光柵圖形編輯器這個名稱有時被用來強調該方法和一般也能處理向量圖形的編輯器的不同。最早的流行的圖形編輯器有蘋果公司的 MacPaint，MacDraw 的伴侶軟體。現代的例子有免費的 GIMP 編輯器，商用產品 Photoshop 和 Paint Shop Pro。這類軟體也包括很多專門化的編輯器 — 用於醫藥、遙感、數字攝影、等等。

## 參看

* 編輯數位影像
* Bit blit
* 電腦繪畫
* 圖像縮放
* Logo 語言
* Macromedia Flash
* PostScript
* 圖形檔案中的透明度
* Turtle graphics
* SVG