計算機圖形學 學習筆記(七):二維圖形變換:平移,比例,旋轉,座標變換等
在圖形學中,有兩大基本工具:向量分析,圖形變換。本文將重點講解向量和二維圖形的變換。
5.1 向量基礎知識
我們所使用的所有點和向量都是基於某一座標系定義的,比如左手座標系或者右手座標系。
從幾何的角度來看,向量是具有長度和方向的實體,但是沒有位置,而點是隻有位置,沒有長度和方向。
在幾何中,把向量看成是從一個點到另一個點的位移。向量演算法提供了一種統一的方法來對幾何思想進行代數的表示。
向量的表示
從點 P 到點 Q的位移用向量 V 表示。兩個點的差是一個向量,V=Q-P,V=(3,-2)。
換個角度來說,可以說點 Q是由點 P 平移向量 V 得到的,Q=P+V。
向量基本運算
向量允許兩個基本操作:向量相加,標量(實數)的數乘。
例子:
如果 a 和 b 是兩個向量, s 是一個標量。a+b 和 sa都是有意義的。
a=(2,6),b=(3,1),a+b=(5,7),2a=(4,12)
除了直接的進行數值運算以外,向量的加(減)法可以採用“平行四邊形法則”,在幾何圖形中表示結果。如下圖所示:
向量線性組合
掌握了向量的加法和數乘後,就可以定義任意多個向量的線性組合了。
有兩種特殊的線性組合在計算機圖形學中很重要:仿射組合,凸組合
仿射組合
如果線性組合的係數的和等於1,那麼它就是仿射組合。
向量的凸組合
凸組合在數學中具有重要的位置,在圖形學中也有很多應用。凸組合是對仿射組合加以更多的限制得來的。
向量的點積和叉積
有兩個功能強大的工具一直推動著向量的應用:點積,叉積。
點積得到一個標量,叉積產生一個新的向量。
點積
點積:只需將兩個向量對應的分量相乘,然後將結果相加。
點積最重要的應用就是計算兩個向量的夾角,或者兩條直線的夾角。
由於兩個向量的點積和它們之間夾角的餘弦成正比,可以得出以下關於兩個非零向量夾角與點積的關係:
叉積
兩個向量的叉積是另一個三維向量。叉積只對三維向量有意義。它有許多有用的屬性,但最常用的一個是它與原來的兩個向量都相交。
兩個向量的叉積 aXb 是另外一個向量,但是這個向量與原來的兩個向量在幾何上有什麼關係?為什麼我們說這種運算很重要呢?
利用叉積求平面的法向量
法向量是空間解析幾何的一個概念,垂直於平面的直線所表示的向量就是該平面的法向量。
5.2 圖形座標系
座標系的基本概念
座標系是建立圖形與數之間對應聯絡的參考系。
座標系的分類
從維度上來看,可以分為一維、二維、三維座標系。
從座標軸之間的空間關係來看,可以分為直角座標系,極座標系,圓柱座標系,球座標系等。
在計算機圖形學中,從物體(場景)的建模,到在不同顯示裝置上顯示、處理圖形時,我們經常使用一系列不同的座標系。圖形顯示的過程就是幾何(物件)模型在不同座標系之間的對映變換。
計算機圖形學中的座標系
世界座標系
程式設計師可以用最適合他們手中問題的座標系來描述物件,並且可以自動的縮放和平移圖形,使得其能正確地在螢幕視窗中顯示。
這個描述物件的空間被稱為世界座標系,即場景中物體在實際世界中的座標。
世界座標系是一個公共座標系,是現實中物體或場景的統一參考系,計算機圖形系統中涉及到的其他座標系都是參照它進行定義的。
建模座標系(區域性座標系)
每個物體(物件)都有它自己的區域性中心和座標系。建模座標系獨立於世界座標系,來定義物體的幾何特性。
一旦定義了“區域性”物體,就很容易地將“區域性”物體放入世界座標系內,使它由區域性上升為全域性的。
觀察座標系
觀察座標系主要用於從觀察者的角度對整個世界座標系內的物件進行重新定位和描述。
依據觀察視窗的方向和形狀在世界座標系中定義的座標系稱為觀察座標系。觀察座標系用於指定圖形的輸出範圍。
二維觀察變換的一般方法是:在世界座標系中指定一個觀察座標系,以該座標系為參考通過選定方向和位置來制定矩形剪裁視窗。
要想建立觀察座標系,需要已知三個要素:
- 觀察點的位置
- 觀察的方向
- 世界座標系上的向量
觀察座標系通常以視點的位置為原點,由視點的位置和觀察的方向即可確定 Z 軸。確定與 X 軸垂直的平面,世界座標系上的向量在該平面上的投影即為 Y 軸。由 Z 軸和 Y 軸,通過左手定則即可確定 X 軸。
裝置座標系
適合特定輸出裝置輸出物件的座標系,比如螢幕座標系。
在多數情況下,對於每一個具體的顯示裝置,都會有一個單獨的座標系統。注意:裝置座標是整數。
規範化座標系
規範化座標系獨立於裝置外,能很容易地轉變為裝置座標系,是一箇中鍵座標系。
為使圖形軟體能在不同的裝置之間移植,採用規範化座標,座標軸取值範圍是 0~1。
5.3 二維圖形變換原理及齊次座標
圖形變換
圖形變換的用途
圖形變換和觀察是計算機圖形學的基礎內容之一,也是圖形顯示過程中不可缺少的一個環節。一個簡單的圖形,通過各種變化(如:比例、旋轉、映象、錯切、平移等)可以形成一個豐富多彩的圖形或圖案。
(1)由一個基本的圖案,經過變換組合成另外一個複雜圖形。
(2)用很少的物體組成一個場景
(3)可以通過圖形變化組合得到動畫效果
在計算機動畫中,經常有幾個物體之間的相對運動,可以通過平移和旋轉這些物體的區域性座標系得到這種動畫效果。
圖形變化的基本原理
可以看下面兩個例子。
可以發現:
- 圖形變化了,但原圖形的連邊規則沒有改變
- 圖形的變化,是因為頂點位置的改變決定的
變換圖形就是要變換圖形的集合關係,即改變頂點的座標,同時保持圖形的原拓撲關係不變。
仿射變換是一種二維座標到二維座標之間的線性變換。
- 平直性:直線經過變換之後依然是直線
- 平行性:平行線依然是平行線且直線上點的位置順序不變
下面介紹一個方程組,稱為二維仿射變換。
齊次座標
在二維平面內,我們用一對座標值(x,y)來表示一個點在平面內的確切位置,或者說是用一個向量(x,y)來標定一個點的位置。
假如變換前的點的座標為(x,y),變換後的點座標為(x*,y *),這個變換過程可以寫成如下矩陣形式:
這種用三維向量表示二維向量,或者一般而言,用一個 n+1維的向量表示一個 n 維向量的方法稱為齊次座標表示法。
n 維向量的變換是在 n+1 維的空間進行的,變換後的 n 維結果是被反投回到特定維空間內而得到的。
為什麼要採用齊次座標
在笛卡爾座標系內,向量(x,y)是高於 z=0 平面上的點,而向量(x,y,1)是位於 z=1 的等高平面上的點。
對於圖形來說,沒有實質性的差別,但是卻給後面的矩陣運算提供了可行性和方便性。
採用了齊次座標表示法,就可以統一的把二維線性變換表示為如下所示的規格化形式:
對於一個圖形,可以用頂點表來描述圖形的幾何關係,用連邊表來描述圖形的拓撲關係。所以對圖形的變化,最後轉變成,只是要變化圖形的頂點表。
5.4 二維圖形幾何變化
圖形的集合變化是指對圖形的幾何資訊經過平移、比例、旋轉等變換後產生新的圖形。
平移變換
平移是指將 P 點沿直線路徑從一個座標位置移到另一個座標位置的重定位過程。
齊次座標計算形式如下:
平移是一種不產生變形而移動物體的剛體變換,即物體上的每個點移動相同數量的座標。
比例變換
齊次座標計算形式如下:
縮放係數Sx,Sy可賦予任何正整數。值小於1,則會縮小物體的尺寸。值大於1,則會放大物體。都指定為1,物體尺寸就不會改變。
(1)Sx = Sy 比例
(2)Sx <> Sy 比例
當 Sx = Sy 時,比例變換成為整體比例變換,用以下矩陣進行計算:
整體比例變換時,若S>1,圖形整體縮小,若0
對稱變換
對稱變換也稱為反射變化或映象變換,變換後的圖形是原圖形關於某一軸線或原點的映象。
關於x軸對稱
關於y軸對稱
旋轉變換
錯切變換
在圖形學的應用中,有時需要產生彈性物體的變形處理,這就要用到錯切變換。
變換矩陣中的非對角線元素大都為0,若變換矩陣中的非對角元素不為0,則意味著 x,y 同時對圖形的變換起作用。也就是說,變換矩陣中非對角線元素起著把圖形沿 x 方向或 y 方向錯切的作用。
x 值或 y 值越小,錯切量越小。x 值或 y 值越大,錯切量越大。其變換矩陣為:
沿x方向錯切
複合變換
複合變換是指圖形做一次以上的幾何變換,變換結果是每次的變換矩陣相乘。
從另一方面看,任何一個複雜的幾何變換都可以看做是基本幾何變換的組合形式。
二維複合平移變換
P 點經過兩次連續平移後,其變換矩陣可以寫成:
二維複合比例變換
P 點經過兩個連續比例變換後,其變換矩陣可寫成:
二維複合旋轉變換
P 點經過兩個連續旋轉變換後,其變換矩陣可寫成:
座標系之間的變換
圖形變換經常需要從一個座標系變換到另外一個座標系。
相對任意參考點的二維幾何變換
二維變換矩陣
二維圖形幾何變換的計算
點的變換
直線的變換
直線的變換可以通過對直線兩個端點進行變換,從而改變直線的位置和方向。
多邊形的變化
多邊形變化是將變換矩陣作用到每個頂點的座標位置並按新的頂點座標值和當前屬性設定來生成新的多邊形。
5.5 視窗、視區及變化
視窗和視區
世界座標系中藥顯示的區域稱為視窗。
視窗對映到顯示器上的區域稱為視區。
世界座標系中的一個視窗可以對應於多個視區。
如何將視窗內的圖形在視區中顯示出來呢?必須經過將視窗到視區的變化處理,這種變換就是觀察變換。
觀察變換
將視窗到視區的變化處理,這種變換就是觀察變換。
變焦距效果
當視窗變小時,由於視區大小不變,就可以放大圖形物件的某一部分,從而觀察到在較大的視窗時未顯示出的細節。
整體縮放效果
當視窗大小不變而視區大小發生變化時,得到整體縮放效果。這種縮放不改變觀察物件的內容。
視窗到視區的變換
為了全部且如實的在視區中顯示出視窗內的圖形物件,就必須求出圖形在視窗和視區間的對映關係。
需要根據使用者所定義的引數,找到視窗和視區之間的座標對應關係。
視窗到視區的對映是基於一個等式,即對每一個在世界座標下的點(x,y),產生螢幕座標系中的一個點(sx,sy)。
這種對映是“保持比例”的對映。
保持比例的性質使得這個對映有線性形式:
接下來通過證明,得到A、B、C、D的值。
5.6 二維圖形變換小結
主要講解了向量的基本知識、座標系的分類、齊次座標、二維變換等、視窗與視區
一、向量基本知識
為了處理二維、三維圖形,向量是很重要的一個分析計算工具。講述了向量的定義、基本運算、線性組合、叉積、點積等。
二、座標系的分類
座標系是建立圖形與數之間對應聯絡的參考系。在計算機圖形學中,從物體(場景)的建模到在不同顯示裝置上顯示,需要使用一系列不同的座標系。
- 世界座標系:是一個公共座標系,是顯示中物體或場景的統一參考系
- 區域性座標系:每個物體(物件)都有它自己的區域性中心和座標系
- 觀察座標系、裝置座標系、規格化座標系
三、二維圖形幾何變換
圖形變換和觀察是計算機圖形學的基礎內容之一,也是圖形顯示過程中不可缺少的一個環節。
- 齊次座標:用一個 n+1 維的向量來表示一個 n 維向量的方法
- 二維幾何變換
- 物體變換和座標變換
物體變換使用同一個規則改變物體上所有的點,但是保證底層座標系不變。
座標變換按照原座標系定義了一個全新的座標系,然後在新座標系下表示物體上所有的點。 - 複合座標
也稱為組合變化。組合變換的變換矩陣是幾個單獨變換矩陣的乘積。由於矩陣乘法不滿足交換律,因此在進行復合變換時,需要注意矩陣相乘的順序
四、視窗視區及變換
- 視窗:世界座標系中要顯示的區域
- 視區:視窗對映到顯示器上的區域
- 視窗到視區的變換:為了全部且如實的在視區中顯示出視窗內的圖形物件,就必須求出圖形在視窗和視區間的對映關係。