图形变换(转)
主要內容:圖形處理是CAD/CAM中的關鍵技術,包括圖形生成、編輯和圖形變換。
|
計算機圖形學 |
計算機圖形學的概念 |
|
計算機圖形學的研究內容 |
|
|
圖形變換 |
點的變換 |
|
二維圖形的變換 |
|
|
二維圖形的齊次變換 |
二維圖形的基本變換 |
|
復合變換 |
|
|
三維圖形的齊次變換 |
三維圖形的基本變換 |
|
復合變換 |
1、什么是計算機圖形學
計算機圖形學(Computer Graphics)是近30年來發展迅速、應用廣泛的新興學科,是計算機科學最活躍的分支之一。計算機圖形學是研究在計算機中如何表示圖形,以及利用計算 機進行圖形的計算、處理和顯示的相關原理與算法的一門學科。隨著計算機技術的發展,計算機圖形學在CAD/CAM等計算機應用領域中占有越來越重要的地 位。
計算機圖形學的研究內容是十分豐富的。雖然許多研究工作已經進行了多年,取得了不少成果,但 隨著計算機技術的進步和圖形顯示技術應用領域的擴大和深入,計算機圖形學的研究、開發與應用還將得到進一步的發展。
2、圖形變換的概念
根據需要將已定義的圖形從屏幕的某一位置移動到另一位置,或改變圖形的大小和形狀或利用已有 的圖形生成復雜的圖形,這種圖形處理的方法稱為圖形的幾何變換,簡稱圖形變換。圖形變換是計算機圖形學的核心基礎,通過圖形變換,能夠很方便地由簡單圖形 派生出所需要的圖形。圖形變換主要包括二維圖形和三維圖形的幾何變換,投影變換等。圖形變換通常采用矩陣變換的方法,圖形變換不同,其變換矩陣也不同,本 節將重點介紹圖形變換的矩陣方法及圖形變換的程序設計。
2.1 點的變換
在計算機繪圖中,常常要進行諸如比例、對稱、旋轉、平移、投影等各種變換,圖形可以用點集來 表示,也就是點集定了,圖形也就確定了。如果點的位置變了,圖形也就隨之改變。因此,要對圖形進行變換,只要變換點就可以了。
由于點集可以用矩陣的方法來表達,因此對點的變換可以通過相應的矩陣運算來實現,即 舊點(集)×變換矩陣 矩陣運算 新點(集)。
2.2 二維圖形變換
二維圖形變換主要包括比例,對稱、錯切、旋轉、平移等。
點的變換可以通過矩陣運算來實現,令,把它稱為變 換矩陣。則有。
這里,為變換前點的 坐標,為變換后點的坐標。變換矩陣中a, b, c, d的不同取值,可以實現各種不同變換,從而達到對圖形進行變換的目的。
2.2.1 比例變換(以原點為中心)
比例變換是指變換后的點的兩個坐標分別與變換前 點的兩個坐標成比例。很顯然,比例變換矩陣為。
點的變換表示為:。
等比例變換 不等比例變換
討論:
若sx=sy=1, 則為恒等變換,即變換后點的坐標不變。
若sx=sy≠1,則為等比例變換,變換結果是圖形等比例放大(sx=sy>1)或等 比例縮小(sx=sy>1)。
若sx≠sy,變換結果是圖形產生畸變。
2.2.2 對稱變換
對稱變換是指變換后的點與變換前的點對稱于X軸或Y軸,或對稱于某一特定的直線(如45° 線),或對稱于某一特定的點(如原點)。
在變換矩陣中, 當:a=1, d=-1, b=c=0時產生對X軸的對稱變換;
a=-1, d=1, b=c=0時產生對Y軸的對稱變換;
a=-1, d=-1, b=c=0時產生隊原點的對稱變換。
當:a=d=0, b=1,c=1,時產生對+±45°的對稱;
a=d=0, b=-1, c=-1時產生對-45°的對稱。
2.2.3 錯切變換
在變換矩陣中,若矩陣的 主對角元素a=d=1,而矩陣的次對角元素有一個不為零時,則使圖形產生沿X軸或Y軸的錯切變換。
1)沿X軸錯切
令b=0,沿x向錯切變換矩陣為,
則,經此變換 后,y坐標不變,x坐標有一增量cy,這就相當于平行于y軸的線向x軸錯切成與x軸成α角的直線,且有c>0, 沿+x向錯切;c<0,沿-x向錯切。
2)沿y錯切
令c=0,,則,如圖所 示,變換的結果是x 坐標不變,而y坐標產生一增量bx,使原來平行于X軸的線傾斜成與y軸成θ角的直線,且有 b>0沿+y向錯切;b<0時,沿-y向錯切。
注意:上述錯切方向均是指第Ⅰ象限的點而言,其余象限的點的錯切方向應作相應的改變。
沿Y向錯切 旋轉變化 平移變化
2.2.4 旋轉變換(繞原點)
規定:圖形的旋轉是繞坐標原點旋轉θ角,且逆時針為正,順時針為負,變換矩陣為:
,對點進行旋 轉變換,即60°
2.2.5 平移變換
如圖所示,點P(x, y)平移到,新位置的坐 標表示為:
,即
2.3 二維圖形的齊次坐標
從上面的討論可知,平移與比例、旋轉變換的變換矩陣結構不一致,平移變換時需要作加法,而其 他變換則作乘法,這樣就不可能組合這三個變換為一個合成矩陣,從而給運算帶來不便。因此引入齊次坐標變換。
2.3.1 齊次坐標
所謂齊次坐標就是將一個原本是n維的向量用一個n+1維向量來表示。如向量的齊次坐標 表示為,其中h是一個實數。顯然一個向量的齊次表示不是唯一的,齊次坐標的h取不同的值都表示的是同一個點,比如齊次坐標 [8,4,2]、[4,2,1]表示的都是二維點[4, 2]。當h=1時的齊次坐標稱為規格化齊次坐標。
那么引進齊次坐標有什么必要,它有什么優點呢?
1) 它提供了用矩陣運算把二維、三維甚至高維空間中的一個點集從一個坐標系變換到另一個坐標系的有效方法。
2)它可以表示無窮遠的點。n+1維的齊次坐標中如果h=0,實際上就表示了n維空間的一個 無窮遠點。對于齊次坐標[a, b, h],保持a, b不變,的過程就表示 了在準坐標系中的一個點沿直線 ax+by=0 逐漸走向無窮遠處的過程。
2.4 二維圖形的齊次坐標矩陣變換
2.4.1 基本變換
用齊次坐標表示點的變換將非常方便,二維齊次坐標變換的矩陣的形式是:
這個矩陣每一個元素都是有特殊含義的。
其中使平面圖形產 生比例、對稱、錯切、旋轉;使平面圖形產生平移變換;s則可產生全比例變換。
引入齊次坐標后,點P(x, y) 和其變換后的點的齊次坐標就 是[x y 1]和,變換表達式 為:
二維圖形各種基本變換的變換矩陣及圖示如表4-1所示。
表4-1
|
變換類型 |
變換矩陣 |
矩陣元素的說明 |
變換圖示 |
|
平移變換 |
m, n分別是在X軸,Y軸上的平移量 |
||
|
比例變換 |
分別是X,Y 向的比例系數 |
||
|
全比例變換 |
S是全圖的比例系數 |
||
|
對稱變化 |
以X軸對稱 |
||
|
以Y軸對稱 |
|||
|
以坐標原點對稱 |
|||
|
以45o直線對稱 |
|||
|
以-45o直線對稱 |
|||
|
錯切變換 |
沿X軸向錯切 |
||
|
沿Y軸向錯切 |
|||
|
旋轉變換 |
是旋轉角,逆 時針旋轉取正值,反之取負值 |
2.4.2 復合變換
在實際圖形變換中,經常需要對圖形連續施行幾個基本變換,這種由若干個基本變換組成的變換稱 為復合變換。
如圖4-1所示,將圖形繞任一點旋轉角, 可用以下三個基本變換實現
將旋轉中心C和圖形平移,C點和原點 重合;
將平移后的圖形繞原點旋轉角;
將旋轉后的圖形平移。
這樣就使下面圖形繞任一點C旋轉角。將圖形依 次作上述三個變換,相當于將上述的三個矩陣相乘。因此圖形繞任一點作逆時針旋轉角的變換矩陣 為:
幾個變換矩陣依次相乘稱為變換矩陣的級聯。利用變換矩陣的級聯可得到總變換矩陣。在求變換矩 陣的級聯中,基本變換次序是不能改變的。
3、 三維圖形變換
3.1 三維圖形基本幾何變換
三維幾何變換包括平移、旋轉、比例和錯切。與二維圖形變換類似,用適當的變換矩陣也可以對三 維圖形進行各種變換。一個三維空間點P點的齊次坐標記 為。 變換后的點的坐標記為。三維幾何變換可以表示為三維齊次坐標和4×4變換矩陣的乘積。變換矩陣為:
,其中,子陣使三維圖形 產生比例、對稱、錯切、旋轉變換;l,m,n 產生平移變換;s可產生全比例變換。
則
3.1.1 平移
平移是將對象從一個位置(x, y, z)移到另一個位置(x′,y′, z′)的變換。
變換矩陣為:,其 中,l,m,n分別為X,Y,Z軸上的平移量。
3.1.2 比例
比例變換指將原有的圖形在X,Y,Z三個方向上進行放大或縮小的變換。
設是物體在 X,Y,Z軸三個方向的比例系數,則有變換矩陣:
當時,可使整個 圖形按統一比例放大或縮小。
3.1.3 對稱變換
對稱變換也稱為鏡像變換。三維對稱變換是相對于坐標面進行的。
對XOY平面的對稱變換變換矩陣為:
對YOZ平面的對稱變換
對XOZ平面的對稱變換
3.1.4 錯切變換
錯切變換是使圖形沿錯切方向的坐標發生變換,而另一方向的坐標值不變,
從而達到使原圖形發生特定變化的目的。
變換矩陣為:
3.1.5 旋轉
二維旋轉變換指繞坐標原點或任意點旋轉,而三維旋轉指繞坐標軸或任意軸旋轉,分為三種基本旋 轉:繞z軸旋轉,繞x軸旋轉,繞y軸旋轉。通常規定,從坐標軸正向往原點看,逆時針方向為正。
繞Z軸的旋轉變換, 變換矩陣為:
繞X軸的旋轉變換,變換矩陣為:
繞Y軸的旋轉變換, 變換矩陣為:
3.2 三維圖形的復合變換
如果旋轉所繞的軸不是坐標軸,而是任一直線,則變換過程變顯得較復雜。例如,繞空間任一直線 旋轉q角,可通過以下步驟完成。
1平移,使直線經過坐標原點;
2 使直線繞X軸旋轉角度,使其與 XOZ共面,再繞Y軸旋轉角,使其與Z軸重合;
3 將需變換的圖形繞Z軸旋轉q角;
4 對步驟2作逆變換,使其回到原先的方位角;
5 對步驟1作逆變換,將軸平移到原位。
3.3 投影變換
3.3.1 概念
投影(project)是一種使三維對象映射為二維對象的變換。它可描述 為:project(object(x,y,z)) →object(x′,y′)。投影的要素除投影對象,投影面外,還有投影線。按照投影線角度的不同,有兩種基本投影方法:
1)平行投影(parallel projection)。它使用一組平行投影線將三維對象投影到投影平面上去,如下圖所示。
2)透視投影(perspective projection)。它使用一組由投影中心產生的放射投影線,將三維對象投影到投影平面上去。
由平行投影方法表現三維對象的圖,稱為正視圖和軸測圖,由透視投影方法表現三維對象的圖,稱 為透視圖。
平行投影有兩種方法:
1)正交平行投影(orthographic P.P.) 投影線與投影平面成90°角。
將三維物體正交平行投影于xoz和yoz平面上,分別獲主視圖與側視圖。設計中常用正交平行 投影來產生三視圖稱為正視圖。它們具有x,y方向易于測量的特點,因此作為主要的工程圖紙。
2)斜交平行投影(oblique P.P.) 投影線與投影面成α交角。斜交平行投影也稱軸測投影,所獲的圖稱軸測圖。
3.3.2 正平行投影(三視圖)
投影方向垂直于投影平面的投影稱為正平行投影,我們通常所說的三視圖均屬于正平行投影。三視圖的生成就是把x、y、z坐標系的形體投影到z=0的平面,變 換到u、v、w坐標系。一般還需將三個視圖在一個平面上畫出,這時就得到下面的變換公式,其中(a,b)為u、v坐標系下的值,tx、ty、tz均如圖中 所示。
1)主視圖
主視圖是立體在XOZ坐標面上的投影,將立體上的全部Y 坐標變為0 ,而X, Z不變,可獲得主視圖,其變換矩陣為:
(2)俯視圖變換矩陣
俯視圖是立體在XOY坐標面上的投影。 將立體上的Z坐標變為0;按三視圖展開后的配置,應把俯視圖繞X軸順時針轉90o,為使其與主視圖保持一定的距離,應下一定距離,因此俯視圖 的變化矩陣為:
(3)左視圖變換矩陣
左視圖是立體在XOY坐標面上的投影,將立體的X坐標變為0,在繞Z軸逆時針旋轉90o,為 與主視圖保持一定的距離,應使左視圖向右移一個距離,變換矩陣 為:
3.3.3 軸測投影變換
用平行投影法將物體連同確定該物體的直角坐標系一起沿不平行于任一坐標平面的方向投射到一個 投影面上,所得到的圖形,叫作軸測投影,簡稱軸測圖 。
投影面P稱為軸測投影面,投射線S的方向稱為投射方向
(1)正軸測投影:投影方向垂直軸測投影面
正軸測圖的形成:
正軸測可以看成先將空間物體繞Z軸逆時針旋轉一個角度γ,則投影就可以反映兩個面的性質, 再將物體向前傾一個角度α(繞X軸順時針旋轉α角),最后向XOZ面(即V面)投影而得到。
變換矩陣:
當時的得到正軸 測圖稱為正等測。
(2)幾個基本概念
1)空間坐標軸OX、OY、OZ在軸測投影面上的投影O1X1、O1Y1、O1Z1稱為軸測 投影軸,簡稱軸測軸。
2)軸間角:軸測軸之間的夾角稱作軸間角
3)軸向伸縮系數:軸測單位長度與空間坐標單位長度之比,稱為軸向伸縮系數
沿O1X1軸的軸向伸縮系數:O1A1 /OA=p,
沿O1Y1軸的軸向伸縮系數:O1B1/OB=q
沿O1Z1軸的軸向伸縮系數:O1C1/OC=r
(3)軸測投影的種類
正軸測投影:投射方向垂直于軸測投影面
1)正等軸測投影:p=q=r=2/3≈0.82 , 正等測軸測投影的軸間角均為120o,在變換矩陣中,
2)正二等軸測投影:p=r≠q, p=q=0.94, r=0.47, 軸間角∠x’o’z’=97o101, ∠y’o’z’= ∠x’o’y’=131o25’, 在變換矩陣中
3)正三等軸測投影:p≠q≠r
斜軸測投影 : 用平行斜角投影法得到的軸測投影稱為斜軸測投影。投射方向傾斜于軸測投影面。 斜軸測投影變換是通過將物體先沿x含y錯切,再沿z含y錯切,最后向V面投影實現。其變換矩陣為
軸測投影面P平行于XOZ坐標面,投影方向不應平行于任何坐標面,凡是平行于XOZ坐標面的 平面形,其斜軸測投影均反映實形。
1)斜二等軸測投影的伸縮系數為p=r=1,q=0.5
軸間角為:∠XOZ=90°∠XOY=∠YOZ=135° 變換矩陣中d=f=0.354
2)斜三等軸測投影:p≠q≠r
總結
- 上一篇: ubuntu安装配置elasticSea
- 下一篇: win10浏览器Edge下载中断继续下载