版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第二章計算機繪圖基礎(chǔ)
本章主要內(nèi)容
概述
2.2基本圖元的生成
2.3基于高級語言的繪圖程序設(shè)計
2.4圖形變換
2.1概述
計算機輔助繪圖的實質(zhì)
一一應(yīng)用計算機通過程序和算法,在圖形顯示
和繪圖設(shè)備上,實現(xiàn)圖形的顯示及繪圖的輸出,
是CAD和CAM的重要組成部分。
?工程圖學(xué)
?應(yīng)用數(shù)學(xué)
?計算機科學(xué)
計算機繪圖系統(tǒng)的組成
■硬件
一一計算機及其圖形輸入及輸出等外圍設(shè)備
■軟件
一一用于圖形顯示、繪圖及圖形轉(zhuǎn)換等處理的
程序
計算機繪圖的研究內(nèi)容
如何用計算機來處理和繪制工程圖紙。
?圖形輸入
?圖形的生成、顯示和輸出
?圖形處理所需的數(shù)學(xué)處理方法和算法
?如何解決工程應(yīng)用中的圖形處理問題
?研究開發(fā)好的繪圖軟件和管理系統(tǒng)
計算機繪圖系統(tǒng)的功能
如何用計算機來處理和繪制工程圖紙。
?輸入功能
?交互功能
?計算功能
?存儲功能
?輸出功能
計算機輔助繪圖基本方法
□從用戶使用計算機進行繪圖的方法分
?通過高級語言的繪圖函數(shù)來編寫繪圖源程序
?使用現(xiàn)成的繪圖軟件包
□從計算機繪圖實現(xiàn)的方法分
?交互式繪圖—操作靈活,適應(yīng)性強
?參數(shù)化繪圖—效率較高、生成圖形速度快
圖形輸出設(shè)備
圖形輸出包括圖形的顯示和圖形的繪制。
一一圖形顯示指的是在屏幕上輸出圖形;
圖形繪制通常指把圖形畫在紙上,也稱硬拷貝。
打印機和繪圖儀是兩種最常用的硬拷貝設(shè)備。
「CRT圖形顯示器光柵掃描的圖形顯示器
顯示器<
L液晶顯示器(LCD)
陰極射線管(CRT)
組成:包括電子槍、聚焦系統(tǒng)、加速電極、偏轉(zhuǎn)系
統(tǒng)、熒光屏
工作原理:電子槍發(fā)射電子束,經(jīng)過聚焦系統(tǒng)、加
速電極、偏轉(zhuǎn)系統(tǒng),轟擊到熒光屏的不同部位,被
其內(nèi)表面的熒光物質(zhì)吸收,發(fā)光產(chǎn)生可見的圖形。
工作原理
在光柵掃描系統(tǒng)中,電子束橫向掃描屏幕,一次一
行,從頂?shù)降醉槾芜M行。當電子束橫向沿每一行移
動時,電子束的強度不斷變化來建立亮點的圖案。
垂直回掃期
(a)(b)
(c)(d)
繪圖過程
幀緩沖器顯示屏幕
繪圖原理
基本術(shù)語
(1)像素(Pixel)
一構(gòu)成屏幕(圖像)的最小元素
(2)分辨率(Resolution)
CRT在水平或豎直方向單位長度上能識別的
最大像素個數(shù),單位通常為dpi(dotsperinch)
(3)刷新(Refresh)
——為了讓熒光物質(zhì)保持一個穩(wěn)定的亮度值
(4)刷新頻率
——每秒鐘重繪屏幕的次數(shù)
刷新頻率高到一定值后,圖象才能穩(wěn)定顯示
隔行掃描與逐行掃描
顯示器的顯示模式
文本模式圖形模式
口對于文本顯示方式,顯示分辨率用水平和垂直
方向上所能顯示的字符總數(shù)的乘積表示。
□對于圖形顯示方式,則用水平和垂直方向上所
能顯示的象素點總數(shù)的乘積表示。
顯示分辨率不同,它所對應(yīng)的象素點大小也不同。
構(gòu)成圖形的基本要素
■幾何要素
——刻畫對象的輪廓形狀等
■非幾何要素:
刻畫對象的顏色材質(zhì)等
計算機中表示圖形的方法
a點陣法是用具有顏色信息的點陣來表示圖形的
一種方法,它強調(diào)圖形由哪些點組成,并具有什么
灰度或色彩。
□參數(shù)法是以計算機中所記錄圖形的形狀參數(shù)與
屬性參數(shù)來表示圖形的一種方法。
?把點陣法描述的圖形叫做圖象(Image)
?把參數(shù)法描述的圖形叫做圖形(Graphics)
圖形的生成
—是在指定的輸出設(shè)備上,根據(jù)坐標描述構(gòu)造
二維幾何圖形。
|如何在指定的輸出設(shè)備上根據(jù)坐標來
工,.描述、構(gòu)造基本二維幾何圖形?
圖形的掃描轉(zhuǎn)換(光柵化)
在光柵顯示器等數(shù)字設(shè)備上確定一個最佳逼
近于圖形的象素集的過程。
點陣表示
頂點(參數(shù))掃描轉(zhuǎn)換
表示的圖形的圖形
用戶顯示系統(tǒng)
用一系列的象素點來逼近直線
2.3基本圖元的生成
2.3.1直線段的掃描轉(zhuǎn)換算法
2.3.2圓弧的掃描轉(zhuǎn)換算法
2.3.3橢圓的掃描轉(zhuǎn)換算法
231直線段的掃描轉(zhuǎn)換算法
直線的掃描轉(zhuǎn)換
■確定最佳逼近于該直線的一組象素
■按掃描線順序,對這些象素進行寫操作
直線的繪制要求
?直線要直
?直線的端點要準確,即無定向性和斷裂情況
?直線的亮度、色澤要均勻
?畫線的速度要快
?要求直線具有不同的色澤、亮度、線型等
三個常用算法
1.數(shù)值微分法(DDA)
2.中點畫線法
3.Bresenham算法。
解決的問題
給定直線兩端點Po(Xo,y°)和P1(X1,yx),畫出該直線。
一、數(shù)值微分法(DDA)
基本思想
已知過端點Po(Xo,y0),P/Xpy?的直線段L
y=kx+b
直線斜率為k=,二)=—
%-xQAx
■從X的左端點X。開始,向X右端點步進。
■步長=1(個象素),計算相應(yīng)的y坐標y=kx+b;
■取象素點(x,round(y))作為當前點的坐標。
注意:round(x)=(int)(x+0.5)
(1)直接求交算法
a.劃分區(qū)間[x0,xj:%,玉,???,工〃,(%+i=玉+1)
b.計算縱坐標:y=kXj+b
C.取整:{(七,弘)陶二>{(%,,6)};=。
為,=round(y)=(int)(y.+0.5)
復(fù)雜度:
浮點數(shù)的乘法+加法+取整
(2)DDA算法(增量算法)
yi+}=kxM+b-k(Xj+Ax)+b
=kxi+b+kAx=y.+kAx
當△x=l;yi+1=yj+k
即:當x每遞增1,y遞增k(即直線斜率);
復(fù)雜度:
浮點數(shù)的加法+取整
(租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地位互換。
缺點:
?有浮點數(shù)取整運算
?效率低
?僅適用于|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算法生成直線段
優(yōu)點:
a?增量算法
b.直觀、易實現(xiàn)
缺點:
有浮點數(shù)取整運算
例:畫直線段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。
設(shè)M=(Xp+l,yp+0.5),為pl與p2之中點,Q為理想直線與
x=x+1垂線的交點。將Q與M的y坐標進行比較。
a.當M在Q的下方,應(yīng)則P2為下一個象素點;
b.當M在Q的上方,應(yīng)取P1為下一個象素點;
c.當M與Q恰好重合,則約定取P1為下一個象素。
直線方程
F(x,y)=y-fci-Z?=O
甘山k4%一%
其中:左=丁=------
Axx{-x0
該直線方程將平面分為三個區(qū)域:
a.對于直線上的點,F(xiàn)(x,y)=O;
b.對于直線上方的點,F(xiàn)(x,y)>0;
c.對于直線下方的點,F(xiàn)(x,y)<Oo
直線將平面分為三個區(qū)域
基本原理
中點畫線法生成直線的原理
構(gòu)造判別式
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°
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.當直線沒有畫完時,重復(fù)步驟3。否則結(jié)束。
d是x〃yp的線性函數(shù),因此采用增量計算,提高運算效率
改進:用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.當直線沒有畫完時,重復(fù)步驟3。否則結(jié)束。
優(yōu)點:只有整數(shù)運算,不含乘除法
例:用中點畫線法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算法
基本思想
過各行各列象素中心構(gòu)造一組虛擬網(wǎng)格線。按直線
從起點到終點的順序計算直線與各垂直網(wǎng)格線的交
點,然后根據(jù)誤差項的符號確定該列象素中與此交
點最近的象素。
Brensemham算法繪制直線的原理
設(shè)直線方程為:
%+1=*+3+1-%)=%+%
其中:k=dyIdx
■因為直線起始點在象素中心,所以誤差項d的初值d°=0
■x下標每增加1,d的值相應(yīng)遞增直線斜率值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.計算初始值A(chǔ)x、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.當直線沒有畫完時,重復(fù)步驟3和4。否則結(jié)束。
改進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.當直線沒有畫完時,重復(fù)步驟3和4。否則結(jié)束。
例:用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
優(yōu)點:整數(shù)運算,速度快,精度高
算法步驟:
1.輸入直線的兩端點Po(x0,y0)和此區(qū),yx)o
2.計算初始值A(chǔ)y>|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.當直線沒有畫完時,重復(fù)步驟3和4。否則結(jié)束。
2.3.2園I弧的掃描轉(zhuǎn)換算法
解決的問題
繪出園心在原點,半徑為整數(shù)R的園
圓的特征
八對稱性。只要掃描轉(zhuǎn)換八分之一圓弧,就可以
求出整個圓弧的象素集。
、生成圓弧的隱函數(shù)方法
算法原理
利用其函數(shù)方程,直接離散計算。
圓的函數(shù)方程為:x2+y2=R2
Xi+}=xz+1XG
%+i=round
缺點:浮點運算,開方,取整。
二、生成圓弧的參數(shù)方程方法
元=Reos3
y=Rsin3
4+1=a+A8(A,為一固定角度步長)
%+1=round(Rcos6>+1)
yM=round(RsinUj+J
缺點:計算量大、所畫像素位置間的間距不_致
三、中點畫圓法
?對于圓內(nèi)的點,有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
中點畫圓法原理
構(gòu)造判別式
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時,重復(fù)步驟3和4。否則結(jié)束。
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時,重復(fù)步驟3和4。否則結(jié)束。
233橢圓的掃描轉(zhuǎn)換算法
解決的問題
對標準橢因進行掃描轉(zhuǎn)換,繪出標準橢園
F(x,y)=b2x2+a2y2-a2b2=0
其中,a為沿x軸方向的長半軸長度;b為沿y軸方
向的短半軸長度;a、b均為整數(shù)。
橢圓的對稱性
■橢圓的對稱性,只考慮第一象限橢圓弧生成;
■分上下兩部分,以切線斜率為」的點作為分界點;
尸(羽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)
■而在下一中點,不等式改變方向,則說明橢圓弧從
上部分轉(zhuǎn)入下部分
解決的思路
與園弧中點算法類似:確定一個象素后,接著在
兩個候選象素的中點計算一個判別式的值,由判
別式的符號確定更近的點。
□dl的初始條件:
橢園弧起點為(0,b);第一個中點為(l,b?0.5)
40=/(1/_0.5)
=3_0.5)2-a2b2
=/+/(—b+0.25)
□先討論橢圓弧的上部分
設(shè)(Xp,Yp)已確定,則下一待選像素的中點是
(Xp+l,Yp-0.5)
4=F(%+l?p-0.5)
222
=b\xp+1)+a\yp-0.5)-ab
?若由<0,中點在橢園內(nèi),取正右方象素,判別
式更新為:
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
□再討論橢圓弧的下部分
轉(zhuǎn)入下一部分,下一象素可能是正下方或右下方,
此時判別式要初始化。
&二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圖形的幾何變換
圖形變換的基本原理
二維圖形由點或直線段組成
直線段可由其端點坐標定義
二維圖形的幾何變換的實質(zhì):
對點或?qū)χ本€段端點的變換
p=[xy]匚〉Pf=[xyf
一、二維基本變換
(1)平移變換(Translation)
,平行于x軸的方向上的移動量
Ty平行于y軸的方向上的移動量
幾何關(guān)系|
[x'=JC+T
矩陣形式I
目y']=[x小忙Ty
平移變換
(2)旋轉(zhuǎn)變換(Rotation)
點P繞原點逆時針轉(zhuǎn)。度角
(設(shè)逆時針旋轉(zhuǎn)方向為正方向)
J幾何關(guān)系[
]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旋轉(zhuǎn)變換
\xy\=[xy\\______________________________
-sin6/cos”
(3)比例變換(Scale)
y
指相對于原點的比例變換
司平行于X軸的方向上的縮放量
邑平行于y軸的方向上的縮放量
幾何關(guān)系I相對于原點的比例變換
卜'=X*Sx
=y*s、
矩陣形式
s<o
[%'yr]=[%y]Ji
0Sy
比例變換的性質(zhì)
?當Sx=Sy時,變換前的圖形與變換后的圖形相似;
當Sx=SyX時,圖形將放大,并遠離坐標原點;
當0<Sx=SyVl時,圖形將縮小,并靠近坐標原點;
?當SxrSy時,圖形將發(fā)生畸變。
Sx=Sy<lSx>Sy
(a)Sx=Sy比例(b)SxrSy比例
齊次坐標
齊次坐標表示就是用n+1維向量表示一個n維向量o
,cox2,...,cox幾,co)
有n個分量的向量有n+1個分量的向量
啞元或標量因子
齊次坐標表示不是唯一的
3=1-A規(guī)格化的齊次坐標
齊次坐標技術(shù)的引入
平移、比例和旋轉(zhuǎn)等變換的組合變換處理形式
不統(tǒng)一,將很難把它們級聯(lián)在一起。
變換具有統(tǒng)一表示形式的優(yōu)點
?便于變換合成
?便于硬件實現(xiàn)
基本幾何變換的齊次坐標表示
100
r
平移變換:xy'1]=xyi]o1。山)1]T(4W)
T,1
Sx00
比例變換:xy'1\=xy1]。Sy0=[xy1]S(邑,邑)
o01
cos。sin。0
旋轉(zhuǎn)變換:x'y'1]=xy1]-sin。cos。0=xyi]R⑻
逆時針為正001
整體比例變換
100
010
00s
(4)對稱變換(Symmetry)
對稱變換后的圖形是原圖形關(guān)于某一軸線或原點
的鏡像。
(b)關(guān)于y軸對稱(c)關(guān)于原點對稱
(a)關(guān)于x軸對稱
(d)關(guān)于x二y對稱
(e)關(guān)于x=-y對稱
(a)關(guān)于x軸對稱y
ioo-
O-1O=[x-y1]
001
(b)關(guān)于y軸對稱
--10o-
1]010=[-xy1]
001對稱變換(2)
(c)關(guān)于原點對稱y
對稱變換(3)
(d)關(guān)于y=x軸對稱
_對__稱___變__換__(_4_)__/
(e)關(guān)于產(chǎn)?x軸對稱
幾何關(guān)系|
尸=_y
矩陣形式
對稱變換(5)
\_____________________________________________________________,
0-10一
Nyi]=卜>i]-i00=[-y-X1]
001
(5)錯切變換(Shear)
錯切變換,也稱為剪切、錯位變換,用于產(chǎn)生彈
性物體的變形處理。
(a)原圖(b)沿x方向錯切(c)沿y方向錯切
(a)沿x軸方向關(guān)于y軸錯切
將圖形上關(guān)于y軸的平行線沿x軸方向推成。角的傾
斜線,而保持y坐標不變。
幾何關(guān)系]
Jx'=*+Ax
Iy=y
令a=ctg3有Ax=yctgO=ay
代入得
ty=y
矩陣形式|錯切變換(1)
UL—1X._________________________________________________________________________
100
[xry'1]=[xy1]a10=x+ayyi]
001
(b)沿y軸方向關(guān)于x軸錯切
將圖形上關(guān)于x軸的平行線沿y軸方向推成6角的傾
斜線,而保持x坐標不變。
幾何關(guān)系
(x'=X
Ly'=y+Ay
令Z?=ctgcp有Ay=xctgcp
y+bx
錯切變換(2)
X____________________Z_________________________
b0
10xbx+y1]
01
二、二維復(fù)合變換
復(fù)合變換的特點
0任何一復(fù)雜的幾何變換都可以看作基本幾何變
換的組合形式。
0圖形作一次以上的幾何變換,變換結(jié)果是每次
變換矩陣的相乘。
復(fù)合變換具有形式
P'=PTt-T2-T3----Tn
=P(TiT1Tv---TJ=PT(n>l)
(1)二維復(fù)合平移
兩個連續(xù)平移是相加的
(&&)仃(熱,&)"(&+〃,&+&)
(2)二維復(fù)合比例
連續(xù)比例變換是相乘的
S=S(兀凡1)”(兀02)=義兀?%%?無
(3)二維復(fù)合旋轉(zhuǎn)
兩個連續(xù)旋轉(zhuǎn)是相加的
R=R(4)?R(%)=R(4+仇)
(4)相對任一參考點的二維幾何變換
相對某個參考點Pr(x「y1)作二維幾何變換,其
變換過程為:
■平移
■針對原點進行二維幾何變換
■反平移
關(guān)于任意參照點Pr(x°yj的旋轉(zhuǎn)變換
R(£,K;。)=7(-%,-K)?R(8)?7(%,K)
關(guān)于任意參照點Pr(x°y1)的放縮變換
S(X,%;%,Sy)=T(f
例:點P(2,2)繞點C(l,1)逆時針旋轉(zhuǎn)。=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)相對任意方向的二維幾何變換
相對任意方向作二維幾何變換,其變換的過程是:
■旋轉(zhuǎn)變換
■針對坐標軸進行二維幾何變換
■反向旋轉(zhuǎn)
三、三維幾何變換
三維齊次坐標
(x,y,z)點對應(yīng)的齊次坐標為:
(%力
,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)旋轉(zhuǎn)變換
a.繞x軸旋轉(zhuǎn)
1000
0cos。sin。0
20
一sin。cos。0
0001
b.繞y軸旋轉(zhuǎn)
cos。0—sin。0
0100
TRY
sin。0COS00
0001
C.繞z軸旋轉(zhuǎn)
cos。sin。00
一sin。cos。00
TRZ
0010
0001
(4)對稱變換
a.關(guān)于坐標平面對稱變換
關(guān)于xoy平面進行對稱變換的矩陣計算形式為:
1
0
%=0
0
關(guān)于yoz平面進行對稱變換的矩陣計算形式為:
-1000
0100
0010
0001
關(guān)于ZOX平面進行對稱變換的矩陣計算形式為:
1000
0-100
0010
0001
b.關(guān)于坐標軸對稱變換
關(guān)于x軸進行對稱變換的矩陣計算形式為:
zG
1000
0-100
T=
FX00-10
0001
y
關(guān)于y軸進行對稱變換的矩陣計算形式為:
關(guān)于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
三維變換的一般形式
旋轉(zhuǎn)、比例、
錯切、對稱
O
o
O
(6)三維復(fù)合變換
三維復(fù)合變換是指圖形作一次以上的變換,變換
結(jié)果是每次變換矩陣相乘。
P'=P(7;ZZ…z)=尸T(〃〉1)
a.相對任一參考點的三維變換
相對于參考點F(Xf,丫自zj作比例、旋轉(zhuǎn)、錯切等
變換的過程分為以下三步:
?將參考點F移至坐標原點
?針對原點進行三維幾何變換
?進行反平移
例:相對于F(Xf,yf,zQ點進行比例變換。
相對參考點F的比例變換
b.相對任意方向軸的三維變換
針對任意方向軸的變換可用五個步驟來完成:
?使任意方向軸的起點與坐標原點重合,此時
進行平移變換;
?使方向軸與某一坐標軸重合,此時需進行旋
轉(zhuǎn)變換,且旋轉(zhuǎn)變換可能不止一次;
?針對該坐標軸完成變換;
?用逆旋轉(zhuǎn)變換使方向軸回到其原始方向;
?用逆平移變換使方向軸回到其原始位置。
問題:如何求出為TRAB。
z
P點繞AB軸旋轉(zhuǎn)
求解步驟:
?將坐標原點平移到A點;
?將O,B繞父軸逆時針旋轉(zhuǎn)a角,
則0rB旋轉(zhuǎn)到Mo"平面上;
?將O,B繞y,軸順時針旋轉(zhuǎn)0角,
則O,B旋轉(zhuǎn)到/軸上;
?經(jīng)以上三步變換后,AB軸與7
軸重合,此時繞AB軸的旋轉(zhuǎn)轉(zhuǎn)換
為繞z軸的旋轉(zhuǎn);
TRy的逆變
?最后,求幾,TRX,
換,回到AB原來的位置。
X
2.4.2圖形的投影變換
問題:在二維屏幕上如何顯示三維物體?
■顯示器屏幕、繪圖紙等是二維的
-顯示對象是三維的
?解決方法…-投影
投影變換一就是把三維立體(或物體)投
射到投影面上得到二維平面圖形。
平面幾何投影可分為兩大類
?透視投影
—投影中心到投影面之間的距離是有限的
?平行投影
一一投影中心到投影面之間的距離是無限的
(a)透視投影(b)正投影?斜投影
平面幾何投影的分類
主視圖
-側(cè)視圖
r三視圖-
匚俯視圖
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年大學(xué)美術(shù)(繪畫基礎(chǔ))試題及答案
- 2025年高職環(huán)境監(jiān)測技術(shù)(大氣污染監(jiān)測)試題及答案
- 2025年大學(xué)環(huán)境監(jiān)測方案設(shè)計(監(jiān)測方案編制)試題及答案
- 2026年芳綸纖維項目商業(yè)計劃書
- 2025年大學(xué)大二(市場營銷)市場營銷綜合測試試題及答案
- 多民族社區(qū)慢性病健康公平策略
- 2025年高職熱能動力工程技術(shù)(熱能動力應(yīng)用)試題及答案
- 2025年大學(xué)儀器科學(xué)與技術(shù)(測量與控制技術(shù))試題及答案
- 2025年中職休閑服務(wù)與管理(休閑服務(wù)基礎(chǔ))試題及答案
- 2026年物流管理(貨物運輸調(diào)度)試題及答案
- 2025年-江西建筑安全員《A證》考試題庫及答案
- 財務(wù)制度管理制度清單
- 陜西省榆林市2025屆高三下學(xué)期第二次模擬檢測化學(xué)試卷(原卷版+解析版)
- 二建《施工管理》計算題之網(wǎng)絡(luò)圖
- 2024年中國新型靈活就業(yè)報告-暨南大學(xué)x智聯(lián)招聘-202502
- DBJ-T50-350-2020主城區(qū)兩江四岸消落帶綠化技術(shù)標準
- 肝門部膽管癌診斷和治療指南(2025版)解讀課件
- 加油站市場營銷戰(zhàn)略
- 口腔醫(yī)保知識培訓(xùn)課件
- DB51T 2875-2022 彩燈(自貢)工藝燈規(guī)范
- 選礦安全第一課
評論
0/150
提交評論