第2章線計算機繪圖基礎_第1頁
第2章線計算機繪圖基礎_第2頁
第2章線計算機繪圖基礎_第3頁
第2章線計算機繪圖基礎_第4頁
第2章線計算機繪圖基礎_第5頁
已閱讀5頁,還剩144頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第二章計算機繪圖基礎

本章主要內容

概述

2.2基本圖元的生成

2.3基于高級語言的繪圖程序設計

2.4圖形變換

2.1概述

計算機輔助繪圖的實質

一一應用計算機通過程序和算法,在圖形顯示

和繪圖設備上,實現圖形的顯示及繪圖的輸出,

是CAD和CAM的重要組成部分。

?工程圖學

?應用數學

?計算機科學

計算機繪圖系統的組成

■硬件

一一計算機及其圖形輸入及輸出等外圍設備

■軟件

一一用于圖形顯示、繪圖及圖形轉換等處理的

程序

計算機繪圖的研究內容

如何用計算機來處理和繪制工程圖紙。

?圖形輸入

?圖形的生成、顯示和輸出

?圖形處理所需的數學處理方法和算法

?如何解決工程應用中的圖形處理問題

?研究開發好的繪圖軟件和管理系統

計算機繪圖系統的功能

如何用計算機來處理和繪制工程圖紙。

?輸入功能

?交互功能

?計算功能

?存儲功能

?輸出功能

計算機輔助繪圖基本方法

□從用戶使用計算機進行繪圖的方法分

?通過高級語言的繪圖函數來編寫繪圖源程序

?使用現成的繪圖軟件包

□從計算機繪圖實現的方法分

?交互式繪圖—操作靈活,適應性強

?參數化繪圖—效率較高、生成圖形速度快

圖形輸出設備

圖形輸出包括圖形的顯示和圖形的繪制。

一一圖形顯示指的是在屏幕上輸出圖形;

圖形繪制通常指把圖形畫在紙上,也稱硬拷貝。

打印機和繪圖儀是兩種最常用的硬拷貝設備。

「CRT圖形顯示器光柵掃描的圖形顯示器

顯示器<

L液晶顯示器(LCD)

陰極射線管(CRT)

組成:包括電子槍、聚焦系統、加速電極、偏轉系

統、熒光屏

工作原理:電子槍發射電子束,經過聚焦系統、加

速電極、偏轉系統,轟擊到熒光屏的不同部位,被

其內表面的熒光物質吸收,發光產生可見的圖形。

工作原理

在光柵掃描系統中,電子束橫向掃描屏幕,一次一

行,從頂到底順次進行。當電子束橫向沿每一行移

動時,電子束的強度不斷變化來建立亮點的圖案。

垂直回掃期

(a)(b)

(c)(d)

繪圖過程

幀緩沖器顯示屏幕

繪圖原理

基本術語

(1)像素(Pixel)

一構成屏幕(圖像)的最小元素

(2)分辨率(Resolution)

CRT在水平或豎直方向單位長度上能識別的

最大像素個數,單位通常為dpi(dotsperinch)

(3)刷新(Refresh)

——為了讓熒光物質保持一個穩定的亮度值

(4)刷新頻率

——每秒鐘重繪屏幕的次數

刷新頻率高到一定值后,圖象才能穩定顯示

隔行掃描與逐行掃描

顯示器的顯示模式

文本模式圖形模式

口對于文本顯示方式,顯示分辨率用水平和垂直

方向上所能顯示的字符總數的乘積表示。

□對于圖形顯示方式,則用水平和垂直方向上所

能顯示的象素點總數的乘積表示。

顯示分辨率不同,它所對應的象素點大小也不同。

構成圖形的基本要素

■幾何要素

——刻畫對象的輪廓形狀等

■非幾何要素:

刻畫對象的顏色材質等

計算機中表示圖形的方法

a點陣法是用具有顏色信息的點陣來表示圖形的

一種方法,它強調圖形由哪些點組成,并具有什么

灰度或色彩。

□參數法是以計算機中所記錄圖形的形狀參數與

屬性參數來表示圖形的一種方法。

?把點陣法描述的圖形叫做圖象(Image)

?把參數法描述的圖形叫做圖形(Graphics)

圖形的生成

—是在指定的輸出設備上,根據坐標描述構造

二維幾何圖形。

|如何在指定的輸出設備上根據坐標來

工,.描述、構造基本二維幾何圖形?

圖形的掃描轉換(光柵化)

在光柵顯示器等數字設備上確定一個最佳逼

近于圖形的象素集的過程。

點陣表示

頂點(參數)掃描轉換

表示的圖形的圖形

用戶顯示系統

用一系列的象素點來逼近直線

2.3基本圖元的生成

2.3.1直線段的掃描轉換算法

2.3.2圓弧的掃描轉換算法

2.3.3橢圓的掃描轉換算法

231直線段的掃描轉換算法

直線的掃描轉換

■確定最佳逼近于該直線的一組象素

■按掃描線順序,對這些象素進行寫操作

直線的繪制要求

?直線要直

?直線的端點要準確,即無定向性和斷裂情況

?直線的亮度、色澤要均勻

?畫線的速度要快

?要求直線具有不同的色澤、亮度、線型等

三個常用算法

1.數值微分法(DDA)

2.中點畫線法

3.Bresenham算法。

解決的問題

給定直線兩端點Po(Xo,y°)和P1(X1,yx),畫出該直線。

一、數值微分法(DDA)

基本思想

已知過端點Po(Xo,y0),P/Xpy?的直線段L

y=kx+b

直線斜率為k=,二)=—

%-xQAx

■從X的左端點X。開始,向X右端點步進。

■步長=1(個象素),計算相應的y坐標y=kx+b;

■取象素點(x,round(y))作為當前點的坐標。

注意:round(x)=(int)(x+0.5)

(1)直接求交算法

a.劃分區間[x0,xj:%,玉,???,工〃,(%+i=玉+1)

b.計算縱坐標:y=kXj+b

C.取整:{(七,弘)陶二>{(%,,6)};=。

為,=round(y)=(int)(y.+0.5)

復雜度:

浮點數的乘法+加法+取整

(2)DDA算法(增量算法)

yi+}=kxM+b-k(Xj+Ax)+b

=kxi+b+kAx=y.+kAx

當△x=l;yi+1=yj+k

即:當x每遞增1,y遞增k(即直線斜率);

復雜度:

浮點數的加法+取整

(租1,乂+m)

(xifroundly)

voidDDALine(intxO,intyO,intxl,intyl,intcolor)

{intx;

floatdx,dy,y,k;

dx=xl-xO,dy=yl-yO;

k=dy/dx,y=yO;

for(x=xO;x<xl,x++)

{putpixel(x,int(y+0.5),color);

y=y+k;

}

}

Q注意:

■上述分析的算法僅適用于|k|q的情形。在這種

情況下,x每增加1,y最多增加1。

■當|k|>l時,必須把x,y地位互換。

缺點:

?有浮點數取整運算

?效率低

?僅適用于|k|4的情形:x每增加1,y最多增加1

當因>1時,必須把x,y互換。

DDA算法改進

xM=%+£?Ax

y,+i=y+£.△、

s=l/max(|Ax|

max(|Ax|,|Ay|)=|Ax|,即|k0的情況:

1

41=%+£&"?+■^=xi+l

1Ax

A1A7

%+i=y+/Ay=y+A.△、=%土左

Ax

max(|Ax|?|Ay|)=|Ay|,此時|kRl:

11

無口=X.+6*-AAx=X;+1——r?Ax=x±—

|Ay|ik

%1=y.+£?Ay=y.+占?Ay=%±1

DDA算法生成直線段

優點:

a?增量算法

b.直觀、易實現

缺點:

有浮點數取整運算

例:畫直線段P0(0,0)??B(5,2)

△x=x/xo=5△y=y1-y0=2

k=Ay/Ax=0.4

Xint(y+0.5)y+o.5

000.0+0.5

100.4+0.5

210.8+0.5

311.2+0.5

421.6+0.5

522.0+0.5

二、中點畫線法

目標:消除DDA算法中的浮點運算

條件:同DDA算法

斜率:ke[0,1]

基本思想

當前象素點為(Xp,yp),則下一個象素點為Pl或P2。

設M=(Xp+l,yp+0.5),為pl與p2之中點,Q為理想直線與

x=x+1垂線的交點。將Q與M的y坐標進行比較。

a.當M在Q的下方,應則P2為下一個象素點;

b.當M在Q的上方,應取P1為下一個象素點;

c.當M與Q恰好重合,則約定取P1為下一個象素。

直線方程

F(x,y)=y-fci-Z?=O

甘山k4%一%

其中:左=丁=------

Axx{-x0

該直線方程將平面分為三個區域:

a.對于直線上的點,F(x,y)=O;

b.對于直線上方的點,F(x,y)>0;

c.對于直線下方的點,F(x,y)<Oo

直線將平面分為三個區域

基本原理

中點畫線法生成直線的原理

構造判別式

d=F(xM,yM)=F^+l,%+0.5)=%+0.5—左(1+1)—。

則有:

y+i(d<0)

y=i

(d>0)

初始值d的計算

d0=F(x0+l,y0+0.5)

=y()+0.5—k(x。+1)-b

——kx0-b—k+0.5

=0.5—k

誤差項的遞推

(a)d<0

d-F{xi+2,yi+1.5)

=y+1.5—k(Xj+2)—b

=y+0.5—k(Xj+1)—Z?+1—k(Xi+2?yi+1.5)

=d+1—k

(xi+i?yi+0.!i)

(xifyi)?

d<0

誤差項的遞推

(b)d>0

d-F{xi+2,yi+0.5)

—y.+0.5—+2)—b

—y.+0.5—k(Xj+1)—b—k

—■cl—k-ltxi+2,yi+0

(xi+i?yi+OJi)

d>=0

改進?

OSkWl時中點畫線法的算法步驟為:

O

1.輸入直線的兩端點Po(Xo,y°)和P](X1,yx)o

2.計算初始值4x、Ay>d=0.5-k>x=xO>y=yO;

3.繪制點(x,y)。判斷d的符號:

若dvO,貝!!(x,y)更新為(x+1,y+1),d更新為|Ql?k;

否則(x,y)更新為(x+1,y),d更新為

4.當直線沒有畫完時,重復步驟3。否則結束。

d是x〃yp的線性函數,因此采用增量計算,提高運算效率

改進:用2d代替d

L輸入直線的兩端點Pod。,y°)和PRxi,yx)o

2.計算初始值^x、Ay>d=Z\x-2/^y、x=xO、y=yOo

3.繪制點(x,y)。判斷d的符號。

若dvO,貝!l(x,y)更新為(x+1,y+1),d更新為

d+2Z\xM^T|

否則(x,y)更新為(x+l,y),d更新為反2△為

4.當直線沒有畫完時,重復步驟3。否則結束。

優點:只有整數運算,不含乘除法

例:用中點畫線法Po(0,0)Pi(5,2)

△x=xi-x0=5Ay=yi"y0=2

dO=Ax-2Ay=l;dl=-2Ay=-4;

d2=2Ax-2Ay=6

*xiyid

00013

110-32

22i31

3i-1

3o12345

4425

5521

voidMidpointLine(intxO,intyO,intxl,intyl,intcolor)

{inta,b,dl,d2,d,x,y;

a=yl-yO,b=xl-xO,d=b-2*a;

dl=?2*a,d2=2*(b-a);

x=xO,y=yO;

putpixel(x,y,color);

while(x<xl)

{if(d<0){x++,y++,d+=d2;}

else{x++,d+=dl;}

putpixel(x,y,color);

}/*while*/

}/*midPointLine*/

三、Bresenham算法

基本思想

過各行各列象素中心構造一組虛擬網格線。按直線

從起點到終點的順序計算直線與各垂直網格線的交

點,然后根據誤差項的符號確定該列象素中與此交

點最近的象素。

Brensemham算法繪制直線的原理

設直線方程為:

%+1=*+3+1-%)=%+%

其中:k=dyIdx

■因為直線起始點在象素中心,所以誤差項d的初值d°=0

■x下標每增加1,d的值相應遞增直線斜率值k,BPd=d+k

■當005接近于當前象素的右上方象素(xi+Lyi+l)

■當dv0.5,接近于當前象素的右方象素(xi+l,人)

■一旦dK)5就把它減去1,這樣保證|d|在0、1之間

假定直線段的叱依1

3+1

%+1(d>0.5)

y(d<0.5)

誤差項的計算

a.d初=0;

b.每走一步:d=d+k;

d=d-lo

算法步驟:

1.輸入直線的兩端點Po(x°,y°)和Pi(Xpyr)o

2.計算初始值Ax、Ay>d=0>x=x0>y=y0o

3.繪制點(x,y)o

4.d更新為d+k,判斷d的符號:

若d>0.5,則(x,y)更新為(x+1,y+1),同時將d更新為

d-1;

否則(x,y)更新為(x+1,y)o

5.當直線沒有畫完時,重復步驟3和4。否則結束。

改進1:令e=d-0?5

玉+]=%

(e>0)

(e<0)

誤差項的計算

3*e初二-0?5,

b.每走一步有e=e+k。

c.if(e>0)thene=e-l

算法步驟:

1.輸入直線的兩端點Po(Xo,y°)和P"X1,yx)o

2.計算初始值^x、Ay>|e=-05>|x=xn>y=y0o

3.繪制點(x,y)o

4.e更新為國判斷e的符號:

若e>0,則(x,y)更新為(x+l,y+l),同時將e更新為

否則(x,y)更新為(x+1,y)o

5.當直線沒有畫完時,重復步驟3和4。否則結束。

例:用Brensemham算法畫線法P0(0,0)(5,2)

△x=xrx0=5△y=y1-y0=2

k=Ay/Ax=0.4

00-0.5

10-0.1

21-0.7

31-0.3

42-0.9

52-0.5

voidBresenhamline(intxOJntyO,intxl,intyl,intcolor)

intx,y,dx,dy;

floatk,e;

dx=xl-xO,dy=yl-yO,k=dy/dx;

e=-0.5,x=xO,y=yO;

for(i=0;i<dx;i++)

{putpixel(x,y,color);

x=x+1,e=e+k;

if(e>0)

{y++,e=e-l;}

改進2:用2eZ\x來替換e

誤差項的計算

a.e初二■△x,

b.每走一步有e=e+2/^y。

c.if(e>0)thene=e-2Ax

優點:整數運算,速度快,精度高

算法步驟:

1.輸入直線的兩端點Po(x0,y0)和此區,yx)o

2.計算初始值Ay>|e=-2^x7]x=x0>y=y0o

3.繪制點(x,y)o

4.e更新為國國|判斷e的符號。

若e>0,則(x,y)更新為(x+1,y+1),同時將e更新為

e-2Ax;

否則(x,y)更新為(x+1,y)o

5.當直線沒有畫完時,重復步驟3和4。否則結束。

2.3.2園I弧的掃描轉換算法

解決的問題

繪出園心在原點,半徑為整數R的園

圓的特征

八對稱性。只要掃描轉換八分之一圓弧,就可以

求出整個圓弧的象素集。

、生成圓弧的隱函數方法

算法原理

利用其函數方程,直接離散計算。

圓的函數方程為:x2+y2=R2

Xi+}=xz+1XG

%+i=round

缺點:浮點運算,開方,取整。

二、生成圓弧的參數方程方法

元=Reos3

y=Rsin3

4+1=a+A8(A,為一固定角度步長)

%+1=round(Rcos6>+1)

yM=round(RsinUj+J

缺點:計算量大、所畫像素位置間的間距不_致

三、中點畫圓法

?對于圓內的點,有F(x,y)<0

算法原理

M的坐標為:M(x+l,y/0?5)

當F(XM,yM)<。時,取Pi(Xi+l,Yi)

當F(XM,yM)>。時,取P2(Xi+l,"1)

當F(XM,yM)=o時,約定取Pl

中點畫圓法原理

構造判別式

d=F(XM,)=F(xz+1,y—0.5)

222

=(XZ+1)+(X.-0.5)-7?

P=(xhyi)|P1I

當dWO時,下一點取Pi(Xj+l,y);

當d>0時,下一點取P2(x+1,y「l)。0?-

初始值d的計算

痣=尸(1,尺—0.5)

=1+(H-0.5)2-R2

=1.25-R

P

誤差項的遞推__4___41________

yiJ、JQ9

?T__t

(a)d<0J9

yj.乙

d-F{x+2,y—0.5)

iXJX:L+1X:1+2

=(X,+2)2+(y-0.5)2-尺2⑸d〈二0的情況

222

=(玉+1)+(yz-0.5)-7?+2XZ.+3

=d+2x.+3

誤差項的遞推p

J

_____/\____g1____

yiiJ<9

(b)d>0

yi乙Q9

xi.X:+1X:i+2

d-F(xi+2,yi-1.5)

222(b)d>0的情況

=(XZ.+2)+(Z.-1.5)-7?

2

二(%,+l)2+(y_Q5)7?+(2x+3)+(-2y.+2)

=d+2(x.—y)+5

算法步驟:

1.輸入圓的半徑R。

2.計算初始值d=L25?R、x=0>y=Ro

3.繪制點(X,y)及其在八分同中的另外七個對稱點。

4.判斷d的符號。

若達0,則先將d更新為d+2x+3,再將(x,y)更新為

(x+1,y);

否則先將d更新為d+2(x?y)+5,再將(x,y)更新為

(x+l,y-l)o

5.當xvy時,重復步驟3和4。否則結束。

MidPointCircle(intrintcolor)

intx,y;

floatd;

x=0;y=r;d=1.25-r;

circlepoints(x,y,color);〃顯示園弧上的八個對稱點

while(x<=y)

if(d<0)d+=2*x+3;

else{d+=2*(x-y)+5;y-;}

x++;

circlepoints(x,y,color);

改進2:用(L0.25代替d

算法步驟:

1.輸入圓的半徑R。

計算初始喉逑)

2.x=0>y=Ro

3.繪制點(x,y)及其在八分圓中的另外七個對稱點。

4.判斷d的符號:

若好0,則先將d更新為d+2x+3,再將(x,y)更新

為(x+1,y);

否則先將d更新為d+2(x?y)+5,再將(x,y)更新為

(x+1,y-l)o

5.當xvy時,重復步驟3和4。否則結束。

233橢圓的掃描轉換算法

解決的問題

對標準橢因進行掃描轉換,繪出標準橢園

F(x,y)=b2x2+a2y2-a2b2=0

其中,a為沿x軸方向的長半軸長度;b為沿y軸方

向的短半軸長度;a、b均為整數。

橢圓的對稱性

■橢圓的對稱性,只考慮第一象限橢圓弧生成;

■分上下兩部分,以切線斜率為」的點作為分界點;

尸(羽j)=St+a1y2-c^b1-0

橢圓上一點(x,y)處的法向:

dF.dF.

N(x,y)

=2b2xi+2a2yj

□在上半部分,法向

量的y分量大

□在下半部分,法向

量的X分量大

■在當前中點處,法向量(2b2(Xp+l),2a2(Yp-0.5))

的y分量比x分量大,即:

22

b(Xp+1)<a(Yp-0.5)

■而在下一中點,不等式改變方向,則說明橢圓弧從

上部分轉入下部分

解決的思路

與園弧中點算法類似:確定一個象素后,接著在

兩個候選象素的中點計算一個判別式的值,由判

別式的符號確定更近的點。

□dl的初始條件:

橢園弧起點為(0,b);第一個中點為(l,b?0.5)

40=/(1/_0.5)

=3_0.5)2-a2b2

=/+/(—b+0.25)

□先討論橢圓弧的上部分

設(Xp,Yp)已確定,則下一待選像素的中點是

(Xp+l,Yp-0.5)

4=F(%+l?p-0.5)

222

=b\xp+1)+a\yp-0.5)-ab

?若由<0,中點在橢園內,取正右方象素,判別

式更新為:

4'二萬(4+2,3_0.5)

222222

=b(xp+2)+a(yp-0.5)-ab

=4+/(2x〃+3)

M2

?若當dlK),中點在橢圓外,取右下方象素,更

新判別式:

4'=尸(壬+2,4―L5)

=/(%+2)2+/(%一1.5)2—Q2b2

=4+/(2%+3)+/(—2y〃+2)

M2

□再討論橢圓弧的下部分

轉入下一部分,下一象素可能是正下方或右下方,

此時判別式要初始化。

&二b(勺+°5%—1)

2222

=b\xp+0.5)+a\yp-1)-ab

M2

?若dzVO,取右下方像素,判別式更新為:

&'=/(4+1.5,2)

=d,2+(2Xp+2)+/(—2yp+3)

M2

?若當dzK),取正下方象素,更新判別式:

/(牛+。.5,%—2)

1

—+a(—2yp+3)

?下半部分弧的終止條件為y=0

MidpointEllipe(inta,intb,intcolor)

{intx,y;floatdl,d2;

x=0;y=b;

dl=b*b+a*a*(-b+0.25);

putpixel(x,y,color);

while(b*b*(x+l)<a*a*(y?0.5))

{if(dl<0){

dl+=b*b*(2*x+3);x++;}

else{dl+=(b*b*(2*x+3)+a*a*(?2*y+2));

x++;y-;}

putpixel(x,y,color);

}〃上部分

d2=sqr(b*(x+0.5))+sqr(a*(y-l))-sqr(a*b);

while(y>0)

{if(d2<0){d2+=b*b*(2*x+2)+a*a*(-2*y+3);

x++;y-;}

else{d2+=a*a*(-2*y+3);y?;}

putpixel(x,y,color);}

)

2.4圖形變換

2.4.1圖形的幾何變換

2.4.2圖形的投影變換

2.4.1圖形的幾何變換

圖形變換的基本原理

二維圖形由點或直線段組成

直線段可由其端點坐標定義

二維圖形的幾何變換的實質:

對點或對直線段端點的變換

p=[xy]匚〉Pf=[xyf

一、二維基本變換

(1)平移變換(Translation)

,平行于x軸的方向上的移動量

Ty平行于y軸的方向上的移動量

幾何關系|

[x'=JC+T

矩陣形式I

目y']=[x小忙Ty

平移變換

(2)旋轉變換(Rotation)

點P繞原點逆時針轉。度角

(設逆時針旋轉方向為正方向)

J幾何關系[

]x=rcoscp

1K

[y=rsincp

x'=rcos(0+(p)=丫cos(pcos0~rsin9sin8

<

y'=rsin(0+(p)=rcos(psin。+廠sin9cos0

,4L\

%'=%cos3—ysin3

<

y'=xsine+ycos0

X

)矩陣形式]

rrJcos。sin0旋轉變換

\xy\=[xy\\______________________________

-sin6/cos”

(3)比例變換(Scale)

y

指相對于原點的比例變換

司平行于X軸的方向上的縮放量

邑平行于y軸的方向上的縮放量

幾何關系I相對于原點的比例變換

卜'=X*Sx

=y*s、

矩陣形式

s<o

[%'yr]=[%y]Ji

0Sy

比例變換的性質

?當Sx=Sy時,變換前的圖形與變換后的圖形相似;

當Sx=SyX時,圖形將放大,并遠離坐標原點;

當0<Sx=SyVl時,圖形將縮小,并靠近坐標原點;

?當SxrSy時,圖形將發生畸變。

Sx=Sy<lSx>Sy

(a)Sx=Sy比例(b)SxrSy比例

齊次坐標

齊次坐標表示就是用n+1維向量表示一個n維向量o

,cox2,...,cox幾,co)

有n個分量的向量有n+1個分量的向量

啞元或標量因子

齊次坐標表示不是唯一的

3=1-A規格化的齊次坐標

齊次坐標技術的引入

平移、比例和旋轉等變換的組合變換處理形式

不統一,將很難把它們級聯在一起。

變換具有統一表示形式的優點

?便于變換合成

?便于硬件實現

基本幾何變換的齊次坐標表示

100

r

平移變換:xy'1]=xyi]o1。山)1]T(4W)

T,1

Sx00

比例變換:xy'1\=xy1]。Sy0=[xy1]S(邑,邑)

o01

cos。sin。0

旋轉變換:x'y'1]=xy1]-sin。cos。0=xyi]R⑻

逆時針為正001

整體比例變換

100

010

00s

(4)對稱變換(Symmetry)

對稱變換后的圖形是原圖形關于某一軸線或原點

的鏡像。

(b)關于y軸對稱(c)關于原點對稱

(a)關于x軸對稱

(d)關于x二y對稱

(e)關于x=-y對稱

(a)關于x軸對稱y

ioo-

O-1O=[x-y1]

001

(b)關于y軸對稱

--10o-

1]010=[-xy1]

001對稱變換(2)

(c)關于原點對稱y

對稱變換(3)

(d)關于y=x軸對稱

_對__稱___變__換__(_4_)__/

(e)關于產?x軸對稱

幾何關系|

尸=_y

矩陣形式

對稱變換(5)

\_____________________________________________________________,

0-10一

Nyi]=卜>i]-i00=[-y-X1]

001

(5)錯切變換(Shear)

錯切變換,也稱為剪切、錯位變換,用于產生彈

性物體的變形處理。

(a)原圖(b)沿x方向錯切(c)沿y方向錯切

(a)沿x軸方向關于y軸錯切

將圖形上關于y軸的平行線沿x軸方向推成。角的傾

斜線,而保持y坐標不變。

幾何關系]

Jx'=*+Ax

Iy=y

令a=ctg3有Ax=yctgO=ay

代入得

ty=y

矩陣形式|錯切變換(1)

UL—1X._________________________________________________________________________

100

[xry'1]=[xy1]a10=x+ayyi]

001

(b)沿y軸方向關于x軸錯切

將圖形上關于x軸的平行線沿y軸方向推成6角的傾

斜線,而保持x坐標不變。

幾何關系

(x'=X

Ly'=y+Ay

令Z?=ctgcp有Ay=xctgcp

y+bx

錯切變換(2)

X____________________Z_________________________

b0

10xbx+y1]

01

二、二維復合變換

復合變換的特點

0任何一復雜的幾何變換都可以看作基本幾何變

換的組合形式。

0圖形作一次以上的幾何變換,變換結果是每次

變換矩陣的相乘。

復合變換具有形式

P'=PTt-T2-T3----Tn

=P(TiT1Tv---TJ=PT(n>l)

(1)二維復合平移

兩個連續平移是相加的

(&&)仃(熱,&)"(&+〃,&+&)

(2)二維復合比例

連續比例變換是相乘的

S=S(兀凡1)”(兀02)=義兀?%%?無

(3)二維復合旋轉

兩個連續旋轉是相加的

R=R(4)?R(%)=R(4+仇)

(4)相對任一參考點的二維幾何變換

相對某個參考點Pr(x「y1)作二維幾何變換,其

變換過程為:

■平移

■針對原點進行二維幾何變換

■反平移

關于任意參照點Pr(x°yj的旋轉變換

R(£,K;。)=7(-%,-K)?R(8)?7(%,K)

關于任意參照點Pr(x°y1)的放縮變換

S(X,%;%,Sy)=T(f

例:點P(2,2)繞點C(l,1)逆時針旋轉。=45。,求

新點P*的坐標。

「1001

P,=PT(-1,-1)=[221]010=[111]

-1-11

cos45°sin45°O-

Pn=P,7?(45°)=[l11]-sin45°cos4500=[01.4141]

001

100一

P!=P"T(l,l)=[01.4141]010=[12.4141]

11

算法二:

T=T(-1,-1)7?(45°)T(1,1)

100cos45°sin45°olFi00

010-sin45°cos45°o010

-1-1ijLoo1111

0.7070.70701

-0.7070.7070

1-0.4141

0.7070.7070

p*=PT=[221]-0.7070.7070=[12.4141]

1-0.4141

(5)相對任意方向的二維幾何變換

相對任意方向作二維幾何變換,其變換的過程是:

■旋轉變換

■針對坐標軸進行二維幾何變換

■反向旋轉

三、三維幾何變換

三維齊次坐標

(x,y,z)點對應的齊次坐標為:

(%力

,yh,2〃,mX](=hx,yh=hy,Zh=hz,/zw0

標準齊次坐標(x,y,z,1)AZ

右手坐標系J一飛

X

三維基本幾何變換都是相對于坐標原點和坐標軸

進行的幾何變換。

(1)平移變換

1000

0100

0010

TxTyTz1

(2)比例變換

tz000

0^00

a.局部比例變換Ts

0070

0001

1000

0100

b.整體比例變換

0010

0005

(3)旋轉變換

a.繞x軸旋轉

1000

0cos。sin。0

20

一sin。cos。0

0001

b.繞y軸旋轉

cos。0—sin。0

0100

TRY

sin。0COS00

0001

C.繞z軸旋轉

cos。sin。00

一sin。cos。00

TRZ

0010

0001

(4)對稱變換

a.關于坐標平面對稱變換

關于xoy平面進行對稱變換的矩陣計算形式為:

1

0

%=0

0

關于yoz平面進行對稱變換的矩陣計算形式為:

-1000

0100

0010

0001

關于ZOX平面進行對稱變換的矩陣計算形式為:

1000

0-100

0010

0001

b.關于坐標軸對稱變換

關于x軸進行對稱變換的矩陣計算形式為:

zG

1000

0-100

T=

FX00-10

0001

y

關于y軸進行對稱變換的矩陣計算形式為:

關于Z軸進行對稱變換的矩陣計算形式為:

-10

0-1

TFZ=

00

00

(5)錯切變換

a.沿x方向錯切

Z

X

y

沿x含y錯切沿X含Z錯切

1000

d100

g010

0001

b.沿y方向錯切

Z

沿y含x錯切沿y含z錯切

1b00

0100

TsHy

0h10

0001

C.沿Z方向錯切

zz

沿Z含X錯切沿z含y錯切

10c0

01f0

TSHZ=Q

010

0001

三維變換的一般形式

旋轉、比例、

錯切、對稱

O

o

O

(6)三維復合變換

三維復合變換是指圖形作一次以上的變換,變換

結果是每次變換矩陣相乘。

P'=P(7;ZZ…z)=尸T(〃〉1)

a.相對任一參考點的三維變換

相對于參考點F(Xf,丫自zj作比例、旋轉、錯切等

變換的過程分為以下三步:

?將參考點F移至坐標原點

?針對原點進行三維幾何變換

?進行反平移

例:相對于F(Xf,yf,zQ點進行比例變換。

相對參考點F的比例變換

b.相對任意方向軸的三維變換

針對任意方向軸的變換可用五個步驟來完成:

?使任意方向軸的起點與坐標原點重合,此時

進行平移變換;

?使方向軸與某一坐標軸重合,此時需進行旋

轉變換,且旋轉變換可能不止一次;

?針對該坐標軸完成變換;

?用逆旋轉變換使方向軸回到其原始方向;

?用逆平移變換使方向軸回到其原始位置。

問題:如何求出為TRAB。

z

P點繞AB軸旋轉

求解步驟:

?將坐標原點平移到A點;

?將O,B繞父軸逆時針旋轉a角,

則0rB旋轉到Mo"平面上;

?將O,B繞y,軸順時針旋轉0角,

則O,B旋轉到/軸上;

?經以上三步變換后,AB軸與7

軸重合,此時繞AB軸的旋轉轉換

為繞z軸的旋轉;

TRy的逆變

?最后,求幾,TRX,

換,回到AB原來的位置。

X

2.4.2圖形的投影變換

問題:在二維屏幕上如何顯示三維物體?

■顯示器屏幕、繪圖紙等是二維的

-顯示對象是三維的

?解決方法…-投影

投影變換一就是把三維立體(或物體)投

射到投影面上得到二維平面圖形。

平面幾何投影可分為兩大類

?透視投影

—投影中心到投影面之間的距離是有限的

?平行投影

一一投影中心到投影面之間的距離是無限的

(a)透視投影(b)正投影?斜投影

平面幾何投影的分類

主視圖

-側視圖

r三視圖-

匚俯視圖

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論