計算圖形學(xué)推導(dǎo)作圖_第1頁
計算圖形學(xué)推導(dǎo)作圖_第2頁
計算圖形學(xué)推導(dǎo)作圖_第3頁
計算圖形學(xué)推導(dǎo)作圖_第4頁
計算圖形學(xué)推導(dǎo)作圖_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、 四、推導(dǎo)題(共10分)1 用Bresenham算法生成橢圓 時,若:在第一象限上半部分誤差項遞推公式為:下半部分的遞推公式為:當(dāng)時,說明從橢圓的上半部分轉(zhuǎn)入下半部分。請寫出畫整個橢圓的算法步驟。1答:算法步驟如下:1).輸入橢圓的長半軸a和短半軸b。2).計算初始值d=b2+a2(-b+0.25)、x=0、y=b。3).繪制點(x,y)及其在四分象限上的另外三個對稱點。4).判斷d的符號。若d0,則先將d更新為d+b2(2x+3),再將(x,y)更新為(x+1,y);否則先將d更新為d+b2(2x+3)+a2(-2y+2),再將(x,y)更新為(x+1,y-1)。5).當(dāng)b2(x+1)<

2、;a2(y-0.5)時,重復(fù)步驟3和4。否則轉(zhuǎn)到步驟6。6).用上半部分計算的最后點(x,y)來計算下半部分中d的初值:7).繪制點(x,y)及其在四分象限上的另外三個對稱點。8).判斷d的符號。若d0,則先將d更新為b2(2xi+2)+a2(-2yi+3),再將(x,y)更新為(x+1,y-1);否則先將d更新為d+a2(-2yi+3),再將(x,y)更新為(x,y-1)。9).當(dāng)y>0時,重復(fù)步驟7和8。否則結(jié)束。1寫出正二測投影變換矩陣,確定變換矩陣中的參數(shù),并給出詳細(xì)步驟。答案: 正軸測投影變換矩陣的一般形式:X軸上的單位矢量1 0 0 1變換后為:x y z 1 = 1 0 0

3、 1T = cos 0 -sinsin 1Y軸上的單位矢量0 1 0 1變換后為:x y z 1 = 1 0 0 1T = -sin 0 -cossin 1Z軸上的單位矢量0 0 1 1變換后為: x y z 1 = 0 0 1 1T = 0 0 cos 1則三個方向的變形系數(shù)分別為:按照正二軸測投影變換的定義有: p = r假定Y軸上的單位矢量經(jīng)變換后長度變?yōu)?/2,即取Y軸的變形系數(shù)恒為1/2:可得:=20。42, =19 。28。 五、作圖題(共20分)用Bresenham算法生成直線段。要求:根據(jù)已知條件,先列出計算式算出各點的坐標(biāo)值,然后在下面的方格中標(biāo)出各點(用“”)。已知:線段的

4、起點(0,0),終點(-6,-4) (1)確定計長方向及走步數(shù); (2分)(2)算出誤差值,正確取點; (16分)(3)在方格圖中正確標(biāo)出各點; (2分)(4)若在各點之間連線,扣1分。已知一直線段起點(2,10),終點(8,2),利用Bresenham算法生成此直線段,寫出生成過程中坐標(biāo)點及誤差的變化情況。并在下面的方格中,標(biāo)出直線上各點解: 以Y方向計長走步數(shù)C=8是第四象限方向 C=8 x0= 2,y0=10,取點(2,10)C=7 (x1)= 2X-Y=12-8=4>0 x1= x0+1=3,y1= y0-1=9 取點(3,9)C=6 (x2)=(x1)+2X-2Y =4+12-

5、16=0 x2= x1+1=4,y2= y1-1=8 取點(4,8)C=5 (x3)=(x2)+2X-2Y=0+12-16=-4<0 x3= x2=4,y3= y2 -1=7 取點(4,7)C=4 (x4)=(x3)+2X =-4+12=8 x4= x3+1=5,y4= y3-1=6 取點(5,6)C=3 (x5)=(x4)+2X-2Y=8+12-16=4>0 x5= x4+1=6,y5= y4-1=5 取點(6,5)C=2 (x6)=(x5)+2X-2Y =4+12-16=0 x6= x5+1=7,y6= y5-1=4 取點(7,4)C=1 (x7)=(x6)+2X-2Y=0+1

6、2-16=-4<0 x7= x6-=7,y7= y6-1=3 取點(7,3)C=0 (x8)=(x7) +2X =-4+12=8 x8= x7+1=8,y8= y7-1=2 取點(8,2)確定計長方向及走步數(shù): 2分算出誤差值,正確取點: 16分在方格圖中正確標(biāo)出各點: 2分若在各點之間連線,扣2分用Bresenham算法生成直線段。要求:根據(jù)已知條件,先列出計算式算出各點的坐標(biāo)值,然后在下面的方格中標(biāo)出各點(用“”)。已知:線段的起點(0,0),終點(6,5)解:起點坐標(biāo)為(0,0),終點坐標(biāo)為(6,5) y =y2-y1=5, x=x2-x1=6 m = y / x=6/5 d1 =

7、 y - yk = m ( xk+ 1) - yk d2 = ( yk + 1 ) - y =(yk + 1)- m ( xk + 1 )那么d1-d2 = 2m ( xk + 1 ) - 2yk 1將 m = y / x, y y2-y1, xx2-x1帶入令pk = x ( d1 - d2 ) = 2y . xk - 2x . yk+ c =12 . xk-10. yk+7(其中c=2 y- x)又有 pk+1 =2y . xk+1 - 2x. yk+1+ c=12 . xk+1-10. yk+1+7 所以pk+1 - pk = 2y (xk+1 - xk ) - 2x (yk+1 - y

8、k )if pk <0 , d1 - d2 <0 ,取右方象素,有 yk+1= yk ,則 pk+1 = pk + 2yif pk >=0, d1 - d2 >=0,取右上方象素,有 yk+1= yk + 1, yk+1 - yk = 1,則 pk+1 = pk + 2y - 2x第一點為(0,0) 所以 pk=7>0 第二點為 (1,1)第二點為(1,1) 所以 pk= 5>0 第三點為(2,2)第三點為(2,2) 所以 pk=3>0 第四點為(3,3)第四點為(3,3) 所以 pk=1>0 第五點為(4,4)第五點為(4,4) 所以 pk=-

9、1<0 第六點為(5,4)第六點為(5,4) 所以 pk=-3<0 第七點為(6,5)用Bresenham算法生成直線段。要求根據(jù)已知條件,先列出計算式算出各點的坐標(biāo)值,然后在下面的方格中標(biāo)出各點(用“”)。已知:線段的起點(0,0),終點(-8,4)給定頂點P0P1P2P3P4構(gòu)成的控制多邊形,繪出二次B樣條曲線的形狀示意圖。要求:簡要說明作圖過程,保留作圖輔助線,作出(或文字說明)曲線上各特征點的切線矢量。正確繪制曲線 8分畫出以P0P1P2 決定的地0段3次樣條曲線: A為P0P1的中點,B為P1P2的中點,C為AB連線的中點與P1連線的中點,該段曲線起點為A點,終點為B點,

10、并在1/2處過C點;A點的切矢為P1-P0,B點的切矢為P2-P1,C點的切矢平行于P2-P0,且等于P0P2的1/2。 正確標(biāo)出A、B、D三點 3分 指出A、B、D三點的切矢 3分以同樣的方法畫出:以P1P2 P3決定的地3段1次樣條曲線 1分給定頂點P0P1P2P3P4P5P6構(gòu)成的控制多邊形,繪出三次B樣條曲線的形狀示意圖。P0P1P3P2P4P5P6要求:簡要說明作圖過程,保留作圖輔助線,作出(或文字說明)曲線上各特征點的切線矢量。畫出以P0P1P2 P3決定的第0段3次樣條曲線: M1為P0P2的中點,A點位于P1M1的1/3處,A點的切矢平行于P0P2,且等于P0P2的1/2,A點

11、的二階導(dǎo)數(shù)矢量為中線矢量P1M1的兩倍;M2為P2P3的中點,B點位于P2M2的1/3處,A點的切矢平行于P1P3,且等于P1P3的1/2,B點的二階導(dǎo)數(shù)矢量為中線矢量P2M2的兩倍; 正確標(biāo)出A、B兩點、 指出A、B點的切矢、 指出A、B點的二階導(dǎo)數(shù)矢量 以同樣的方法畫出其它樣條曲線。2、請利用下面給出的控制點的坐標(biāo),做三次Brezier曲線:p0=(1,0,0);p1=(5,5,0);p2=(15,7,0);p3=(10,2,0)。答:則n=3時,B0(t)=(1-t)³,B1(t)=3(1-t)²t,B2(t)=3(1-t)t²,B3(t)=t³,

12、對于參數(shù)t的不同取值,坐標(biāo)P(t)可以用下式求得:P(t) B0(t)p0 B1(t) p1 B2(t) p2 B3(t) p300.20.40.60.81B010.510.220.060.010B100.380.430.230.10B200.10.230.430.380B300.010.060.220.511P(0)=1×(1,0,0)0× (5,5,0)0× (15,7,0) 0×(10,2,0) (1,0,0)P(0.2)=0.51×(1,0,0)0.38× (5,5,0)0.10× (15,7,0) 0.01

13、5;(10,2,0)(4.01,2.62,0)P(0.4)=0.22×(1,0,0)0.43× (5,5,0)0.23× (15,7,0) 0.06×(10,2,0)(6.42,3.88,0)P(0.6)=0.06×(1,0,0)0.23× (5,5,0)0.43× (15,7,0) 0.22×(10,2,0)(9.86,4.60,0)P(0.8)=0.01×(1,0,0)0.10× (5,5,0)0.38× (15,7,0) 0.51×(10,2,0)(11.31,4.18

14、,0)P(1)=0×(1,0,0)0× (5,5,0)0× (15,7,0) 1×(10,2,0)(10.00,2.00,0)01234524681012(1,0,0)(4.01,2.62,0)(6.42,3.88,0)(9.86,4.60,0)(11.31,4.18,0)(10.00,2.00,0)用掃描線填充法將頂點為P0 (2,5), P1(2,10),P2(9,6),P3(16,11),P4(12,2),P5(7,2)的多邊形填充。寫出填充步驟并進(jìn)行填充。答:(1)建立NET:(2)寫出每一條掃描線的AET用掃描線填充法將頂點為P0 (2,5),

15、 P1(2,10),P2(9,6),P3(16,11),P4(12,2),P5(7,2)的多邊形填充。寫出填充步驟并進(jìn)行填充。答:(1)建立邊分類表EL:5 7 -5/34 12 4/95 5.3 -5/34 12.4 4/95 3.6 -5/34 12.9 4/95 2 -5/311 13.3 4/910 2 010 9 -7/411 9 7/511 13.7 4/9(2)寫出每一條掃描線的活化鏈表以及交點進(jìn)行配對和著色:10 2 010 7.3 -7/411 10.4 7/511 14.2 4/910 2 010 5.6 -7/411 11.8 7/511 14.6 4/910 2 010

16、 3.9 -7/411 13.2 7/511 15 4/910 2 010 2.2 -7/411 14.6 7/511 15.5 4/911 16 7/511 16 4/9y=2,AEL交點:(7,2)(12,2),著色兩點間所有點y=3,AEL交點:(5.3,3)(12.4,3), 根據(jù)左閉右開原則,著色(5,3)(14,3)之間所有點y=4, AEL 交點:(3.6,4) (12.9,4), 根據(jù)左閉右開原則,著色(3,4) (12,4)之間所有點y=5, AEL 交點:(2,5) (13.3,5), 根據(jù)左閉右開原則,著色(2,5) (13,5)之間所有點y=6, AEL交點:(2,6)

17、(9,6) (9,6)(13.7,6),按X大小配對,并根據(jù)左閉右開原則,著色(2,6)與(9,6), (9,6)與(13,6)之間的所有點y=7, AEL交點:(2,7)(7.3,7) (10.4,7)(14.2,7),按X大小配對,并根據(jù)左閉右開原則,著色(2,7)與(7,7), (10,7)與(14,7)之間的所有點y=8, AEL交點:(2,8)(5.6,8) (11.8,8)(14.6 ,8),按X大小配對,并根據(jù)左閉右開原則,著色(2,8)與(5,8), (11,8)與(14,8)之間的所有點y=9, AEL交點:(2,9)(3.9,9) (13.2,9)(15 ,9),按X大小配

18、對,并根據(jù)左閉右開原則,著色(2,9)與(3,9), (13,9)與(15,9)之間的所有點y=10,AEL交點:(2,10)(2.2,10) (14.6,10)(15.5,10),按X大小配對,根據(jù)左閉右開原則,著色(2,10)與(2,10), (14,10)與(15,10)之間的所有點y=11,AEL交點(16,11)(16,11), 著色點(16,11)。試根據(jù)下列給定的條件,畫出有關(guān)曲線的形狀示意圖。已知:圖(a)所示三次Bezier曲線的控制多邊形,共有4個控制點P0P1P2P3;圖(b)所示為二次B樣條曲線的控制多邊形,共有4個控制點P0P1P2P3。要求:簡要說明作圖過程,保留作

19、圖輔助線,作出(或文字說明)B樣條曲線上各特征點的切線矢量。圖(a):共7分(1)正確標(biāo)出A、B、C、各點, (5分)(2)正確繪制曲線, (2分)圖(b):共8分A為P0P1的中點,A點的切矢為P0P1的走向且等于(P1-P0);B為AP1C中線P1M的中點,B點的切矢平行于AC,且等于1/2(P2-P0);C為P1P2的中點,C點的切矢為P1P2的走向且等于(P2-P1);D為CP2E中線P2M1的中點,其切矢平行于CE,且等于1/2(P3-P1);E為P2P3的中點,其切矢為P2P3的走向且等于(P3-P2)。(1)正確標(biāo)出A、B、C、D、E各點, (5分)(2)正確繪制曲線, (2分)

20、(3)說明(或作出)曲線上A、B、C、D、E各點的切矢, (1分)給定頂點P0P1P2P3構(gòu)成的控制多邊形,繪出三次Bezier曲線的形狀示意圖。要求:簡要說明作圖過程,保留作圖輔助線,作出(或文字說明)曲線上各特征點的切線矢量。P3P2P0P1AGFEDCBH解: A為的P0P1中點,B為P1P2的中點,C為P2P3的中點,D為AB的中點,E為BC的中點,F(xiàn)為DE的中點,該曲線的起點為P0,P0的切矢為P0P1的走向且等于3(P1-P0);終點為P3,P3的切矢為P2P3的走向且等于3(P3-P2);該曲線的過F且與EB相切,F(xiàn)點將曲線分成以P0ABF和FEC P3為特征多邊形的兩段三次Be

21、zier曲線。2. 試按左下右上順序用四向算法,分析當(dāng)S1為種子時,下圖區(qū)域的填充過程。S1673101112928543 11 4 63 11 4 73 11 4 8 33 11 4 8 2 103 11 4 8 2 9 113 11 4 8 2 9 123 11 4 8 2 93 11 4 8 2 3 11 4 8 5 83 11 4 8 53 11 4 83 11 43 113圖中ABCD為矩形窗口,P1P2為待裁剪線段。試用中點分割法求出P1的最遠(yuǎn)可見點,當(dāng)線段長度0.5時算法結(jié)束。P1P2已知窗口及線段的坐標(biāo)分別為A(0,0)、B(0,6)、C(10,6)、D(10,0),P1(-1

22、,10)、P2(11,0)。解:設(shè)P1P2的中點為P12(x1,y1)x1=(-1+11)/2=5, y1=(11+0)/2=5因為P12 P2不是完全不可見,故對P12 P2作進(jìn)一步處理設(shè)P12 P2的中點為P22(x2,y2)x2=(5+11)/2=8, y2=(5+0)/2=2.5因為P22 P2不是完全不可見,故對P22 P2作進(jìn)一步處理設(shè)P22 P2的中點為P32(x3,y3)x3=(8+11)/2=9.5, y3=(2.5+0)/2=1.25因為P32 P2不是完全不可見,故對P32 P2作進(jìn)一步處理設(shè)P32 P2的中點為P42(x4,y4)x4=(9.5+11)/2=10.25,

23、 y4=(1.25+0)/2=1.125因為P42 P2是完全不可見,故對作進(jìn)一步處理設(shè)P32P42的中點為P52(x5,y5)x5=(9.5+10.25)/2=9.875, y5=(1.25+1.125)/2=1.1875所以P1的最遠(yuǎn)可見點為P52(9.875,1.1875) 六、計算題(共15分)已知圖中所示三角形ABC各頂點的坐標(biāo)A(2,4)、(4,4)、(4,1),相對A點逆時針旋轉(zhuǎn)600,各頂點分別到達(dá)A、B、C。試計算A、B、C的坐標(biāo)值。(要求用齊次坐標(biāo)進(jìn)行變換,列出變換矩陣。)解: :圖中ABCD為矩形窗口,P1P2為待裁剪線段。試用中點分割法求出P1的最遠(yuǎn)可見點,當(dāng)線段長度0

24、.5時算法結(jié)束。已知:窗口及線段的坐標(biāo)分別為A(-7,1)、B(-2,1)、C(-2,5)、D(-7,5)、P1(-9,0)、P2(0,6)。(1)確定每個分割點,并正確計算出坐標(biāo)值; (每步2分,共10分)(2)精度判斷計算; (3分)(3)給出正確結(jié)論。 (2分)已知三角形ABC各頂點的坐標(biāo)A(1,2)、B(5,2)、C(3,5),相對直線Y=4做對稱變換后到達(dá)A、B、C。試計算A、B、C的坐標(biāo)值。(要求用齊次坐標(biāo)進(jìn)行變換,列出變換矩陣)(1)將坐標(biāo)系平移至P1 (0,4)點 2分(2) 以X軸對稱 2分 (3)將坐標(biāo)系平移回原處 2分(4) 變換矩陣:T=TA*TB*TC= 2分(5)

25、求變換后的三角形ABC各頂點的坐標(biāo)A、B、C 7分A: XA'=1, Y A'=6 B: XB'=5, Y B'=6 C: XA'=3, Y A'=3 已知圖中所示三角形ABC各頂點的坐標(biāo)A(2,4)、(4,4)、(4,1),相對A點逆時針旋轉(zhuǎn)600,各頂點分別到達(dá)A、B、C。試計算A、B、C的坐標(biāo)值。(要求用齊次坐標(biāo)進(jìn)行變換,列出變換矩陣。)已知三角形ABC各頂點的坐標(biāo)A(1,2)、B(5,2)、C(3,5),相對直線P1P2(線段的坐標(biāo)分別為:P1 (-1,-1) 、P2 (8,3) )做對稱變換后到達(dá)A、B、C。試計算A、B、C的坐標(biāo)值。(

26、要求用齊次坐標(biāo)進(jìn)行變換,列出變換矩陣,列出計算式子,不要求計算結(jié)果)解:(1) P1 P2與X軸的夾角為: 1分(2)將坐標(biāo)系平移至P1 (-1,-1)點 2分(3) 繞原點轉(zhuǎn)-角 2分(4) 以X軸對稱 2分(5) 繞原點轉(zhuǎn)角 2分(6)將坐標(biāo)系平移回原處(7) 變換矩陣:T=TA*TB*TC*TD*TE 3分(8) 求變換后的三角形ABC各頂點的坐標(biāo)A、B、C 3分A: B: C: 已知圖示三角形ABC各頂點的坐標(biāo)A(1,2)、(5,2)、(3,5),相對直線X=4作對稱變換后,分別到達(dá)A、B、C。試計算A、B、C的坐標(biāo)值。(要求用齊次坐標(biāo)進(jìn)行變換,列出變換矩陣。)已知三角形ABC各頂點的

27、坐標(biāo)A(1,2)、B(5,2)、C(3,5),相對直線Y=4-X 做對稱變換后到達(dá)A、B、C。試計算A、B、C的坐標(biāo)值。(要求用齊次坐標(biāo)進(jìn)行變換,列出變換矩陣)(1)將坐標(biāo)系平移至P1 (4,0)點 2分(2) 以Y=X對稱 2分 (3)將坐標(biāo)系平移回原處 2分(4) 變換矩陣:T=TA*TB*TC= 2分(5) 求變換后的三角形ABC各頂點的坐標(biāo)A、B、C 1分A: XA'=2, Y A'=-3 2分B: XB'=2, Y B'=-1 2分C: XA'=-1, Y A'=1 2分1已知三角形ABC各頂點的坐標(biāo)A(1,2)、B(5,2)、C(3,

28、5),相對直線P1P2(線段的坐標(biāo)分別為:P1 (-1,-1) 、P2 (8,3) )做對稱變換后到達(dá)A、B、C。試計算A、B、C的坐標(biāo)值。(要求用齊次坐標(biāo)進(jìn)行變換,列出變換矩陣,列出計算式子,不要求計算結(jié)果)解: (1) 將坐標(biāo)平移至P1 (-1,-1)點: (2) 線段P1P2與X軸夾角為(3) 順時針方向旋轉(zhuǎn)角: (4) 關(guān)于X軸對稱: (5)逆時針轉(zhuǎn)回: (6) 將坐標(biāo)系平移回原處 (7)變換矩陣: (8) 求變換后的三角形ABC各頂點的坐標(biāo)A、B、C A: B: C: 2已知四個型值點P1(4,1,1),P2(0,0,0),P3(3,0,3),和P4(-1,1,1),用線段連接相鄰的

29、Pi,構(gòu)造一條連接好的三次B樣條曲線,寫出該曲線的參數(shù)表達(dá)式,并計算參數(shù)為0,1/3,2/3和1的值。答案: x(t)=4*+0*+3*+(-1)*y(t)=1*+0*+0*+1*z(t)=1*+0*+3*+1*當(dāng):t=0, P(x,y,z)=P(1.1667, 0.1667, 0.6667) t=1/3, P(x,y,z)=P(1.3025, 0.0556, 1.1667) t=2/3, P(x,y,z)=P(1.6975, 0.0556, 1.7778) t=1, P(x,y,z)=P(1.8333, 0.1667, 2.1667)七、分析題(共10分)用掃描線填充法將頂點為P0 (2,5

30、), P1(2,10),P2(9,6),P3(16,11),P4(18,4),P5(12,2),P6(7,2)的多邊形填充。請寫出EL和AEL。建立用掃描線填充法將頂點為P0 (2,1), P1(1,7),P2(8,5),P3(7,1),P4(6,4)的多邊形填充時的邊分類表。五、算法說明題 每小題15分,共計30分2畫出Cohen-Sutherland裁剪算法的流程圖并說明此算法最適合的使用場合七、根據(jù)算法作圖題 每小題15分,共計15分五 、已知一多邊形如圖,寫出其新邊表的數(shù)據(jù)結(jié)構(gòu)。六 、利用分割遞推Casteljau算法,作圖求由P0,P1,P2,P3四個點定義的Bezier曲線上的一個

31、點C(0.5) 并利用Bezier曲線的性質(zhì)畫出兩端點的切線。P0P1,P2P3為兩端點的切線 C(0.5)為Bezier曲線上t=0.5的點            八 、對斜平行投影,設(shè)定投影方向矢量為    形體被投影到XOY平面上。形體上的一點為(x,y,z),確定它在XOY平面上的投影(xs,ys)。六、(本題15分)如右圖所示的多邊形,若采用改進(jìn)的有效邊表算法進(jìn)行填充,在填充時采用“下閉上升”的原則(即刪除y=ymax的邊之后再填充)試畫出該多邊

32、形的ET表和當(dāng)掃描線Y=3和Y=8時的AET表。解:ET表如下:當(dāng)掃描線Y=8時的AET表:當(dāng)掃描線Y=3時的AET表:7/37-1/375-1/24.553/4991/2/八、(本題10分)如圖所示,物體ABCDEFGH進(jìn)行如下變換,寫出其變換矩陣并求出復(fù)合變換后頂點的齊次坐標(biāo)。1、 平移使點C與點P(1,1,0)重合;2、繞z軸旋轉(zhuǎn)60°。解:平移點C與點P重合的平移矩陣為繞z軸旋轉(zhuǎn)60°矩陣為所以,復(fù)合變換后的矩陣為T1*T2,有:其中ABCDEFGH為變換后對應(yīng)的齊次坐標(biāo)。五、如下圖所示多邊形,若采用改進(jìn)的有效邊表算法進(jìn)行填充,試寫出該多邊形的ET表和當(dāng)掃描線Y=4

33、時的AET表。(本題10分)解:ET表:六、假設(shè)在觀察坐標(biāo)系下窗口區(qū)的左下角坐標(biāo)為(wxl=10,wyb=10),右上角坐標(biāo)為(wxr=50,wyt=50)。設(shè)備坐標(biāo)系中視區(qū)的左下角坐標(biāo)為(vxl=10,vyb=30),右上角坐標(biāo)為(vxr=50,vyt=90)。已知在窗口內(nèi)有一點p(20,30),要將點p映射到視區(qū)內(nèi)的點p,請問p點在設(shè)備坐標(biāo)系中的坐標(biāo)是多少?(本題10分)解:將窗口左下角點(10,10)平移至觀察坐標(biāo)系的坐標(biāo)原點,平移矢量為(-10,-10)。 針對坐標(biāo)原點進(jìn)行比例變換,使窗口的大小和視區(qū)相等。比例因子為: Sx=(50-10)/(50-10)=1; Sy=(90-30)/

34、(50-10)=1.5。 將窗口內(nèi)的點映射到設(shè)備坐標(biāo)系的視區(qū)中,再進(jìn)行反平移,將視區(qū)的左下角點移回到設(shè)備坐標(biāo)系中原來的位置(10,30),平移矢量為(10,30)。p點在設(shè)備坐標(biāo)系中的坐標(biāo)是(20,60)。一、 利用中點Bresenham畫圓算法的原理推導(dǎo)第一象限從y=x到x=0圓弧段的掃描轉(zhuǎn)換算法(要求寫清原理、誤差函數(shù)、遞推公式)。(10分)解:x方向為最大走步方向,xi+1=xi-1,yi+1由d確定di=F(xm,ym)=(xi-1)2+(yi+0.5)2-R2 di <0時,點在圓內(nèi),xi+1=xi-1, yi+1= yi+0.5di+1=F(xm,ym)= (xi-2)2+(

35、yi+1.5)2-R2 =xi2-4xi+4+yi2+3yi+1.52-R2 =(xi-1)2-2xi+3+(yi+0.5)2+2yi+2-R2 = di -2xi+2yi+5 = di +2(yi-xi)+5 di0時,點在圓外,xi+1=xi-1,yi+1=yidi+1=F(xm,ym)=(xi-2)2+(yi+0.5)2-R2 =xi2-4xi+4+(yi+0.5)2-R2 = di -2xi+3五、(本題10分)利用中點Bresenham畫圓算法的原理推導(dǎo)第一象限從y=0到x=y圓弧段的掃描轉(zhuǎn)換算法(設(shè)半徑為R,要求寫清原理、誤差函數(shù)、遞推公式)。解:算法原理:如圖a所示,從y=0到x

36、=y圓弧段即為逆時針方向,此時當(dāng)y方向走一步時,x方向能否走一步需要根據(jù)判別式進(jìn)行判斷,推導(dǎo)如下:先構(gòu)造函數(shù)F(x,y)=x2+y2-R2,對于圓上點F(x,y)0;對于圓外點F(x,y)>0;圓內(nèi)點F(x,y)<0。假設(shè)M為Pr和Pl的中點即M(xi-0.5,yi+1)所以判別式為:圖ad=F(xM,yM)=F(xi-0.5,yi+1)= (xi-0.5)2+( yi+1)2-R2當(dāng)d<0時,如圖b,下一點取Pr(xi,yi+1)當(dāng)d>0時,如圖c,下一點取Pl(xi-1,yi+1)當(dāng)d0時,任取上述情況中一種即可。誤差項的遞推:如圖b所示,當(dāng)d<0時,取Pr(

37、xi,yi+1),欲判斷下一個象素,應(yīng)計算:d=F(xi-0.5,yi+2)=d+2yi+3,即d的增量為2yi+3;如圖c所示,當(dāng)d>0時圖b,取Pl(xi-1,yi+1),欲判斷下一個象素,應(yīng)計算:d=F(xi-1.5,yi+2)=d-2xi+2yi+3, 即d的增量為-2xi +2yi+3。繪制第一個點為(R,0),所以d的初始值為d0F(R-0.5,1)=1.25-R圖c1、已知三角形ABC各頂點的坐標(biāo)A(1,2)、B(5,2)、C(3,5),相對直線Y=4做對稱變換后到達(dá)A、B、C。試計算A、B、C的坐標(biāo)值。(要求用齊次坐標(biāo)進(jìn)行變換,列出變換矩陣)解:(1)將坐標(biāo)系平移至P1

38、(0,4)點 (2) 以X軸對稱 (3)將坐標(biāo)系平移回原處 (4) 變換矩陣:T=TA*TB*TC= (5) 求變換后的三角形ABC各頂點的坐標(biāo)A、B、C A: XA'=1, Y A'=6 B: XB'=5, Y B'=6 C: XA'=3, Y A'=3 七、(本題15分)如圖所示四邊形ABCD,求繞P(5,4)點逆時針旋轉(zhuǎn)90度的變換矩陣,并求出各端點坐標(biāo),畫出變換后的圖形。解: 1.一條直線的兩個端點是(0,0)和(6,18),計算x從0變到6時y所對應(yīng)的值。解答:由于直線的方程沒有給出,所以必須找到直線的方程。下面是尋找直線方程(ymxb

39、)的過程。首先尋找斜率:m y/x (y2y1)/(x2x1) (180)/(60) 3接著b在y軸的截距可以代入方程y3xb求出 030b。因此b0,所以直線方程為y3x。當(dāng)x從0變到6時y所對應(yīng)的值如下表:x0123456y03691215182寫出關(guān)于xy平面對稱面的鏡面反射變換。解答:由圖得知P(x,y,z)得對稱點是(x,y,z)。其反射變換是:P(x,y,z)P(x,y,z)yxz3寫出直線方程對應(yīng)的xy坐標(biāo)方程,假設(shè)坐標(biāo)系是由xy坐標(biāo)系旋轉(zhuǎn)90°得到。解答:旋轉(zhuǎn)坐標(biāo)變換方程可以寫成:,代入原方程式得到,寫成y的方程式,得4使用斜截式方程畫斜率介于0°和45&#

40、176;之間的直線的步驟是什么?解答:用斜截式方程畫直線的過程如下:(1) 計算dx:dxx2x1。(2) 計算dy:dyy2y1。(3) 計算m:mdy/dx。(4) 計算b: by1m×x1(5) 設(shè)置左下方的端點坐標(biāo)為(x,y),同時將xend設(shè)為x的最大值。如果dx < 0,則xx2、yy2和xendx1。如果dx > 0,那么xx1、yy1和xendx2。(6) 測試整條線是否已經(jīng)畫完,如果x > xend就停止。(7) 在當(dāng)前的(x,y)坐標(biāo)畫一個點。(8) 增加x:xx1。(9) 根據(jù)方程ymxb計算下一個y值。轉(zhuǎn)到步驟(6)。5寫出從到的段與(a)垂

41、直線xa,(b)水平線yb的交點。解答:線段的參數(shù)方程為:(a) 因為,將它代入方程得到。然后把此值再代入方程,則交點是和(b) 因為,將它代入方程得到。然后把此值再代入方程,則交點是和6使用Bresenham算法畫斜率介于0°和45°之間的直線所需的步驟。解答:用Bresenham算法畫直線的過程如下:(1)計算初始值dx x2x1Inc2 2(dydx)dy y2y1d Inc1 dxInc1 2dy(2)設(shè)置左下方的端點坐標(biāo)為(x,y),同時將xend設(shè)為x的最大值。如果dx < 0,則xx2,yy2和xendx1。如果dx > 0, 那么xx1、yy1和xendx2。(3) 在當(dāng)前的(x,y)坐標(biāo)畫一個點。(4) 判斷整條線段是否已經(jīng)畫完,如果xxend就停止。(5) 計算下一像素的位置。如果d<0,那么ddInc1。如果d0,那么dd + Inc2,并且yy1。(6) 增加x:xx1。(7) 在當(dāng)前的(x,y)坐標(biāo)畫一個點。(8) 轉(zhuǎn)到步驟(4)。6.已知4個型值點(1.0,2.0,),(2.5,3.5),(4.0,4.5

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論