《计算机图形学习题(课堂PPT).ppt》由会员分享,可在线阅读,更多相关《计算机图形学习题(课堂PPT).ppt(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、计算机图形学基础华东理工大学计算机系华东理工大学计算机系 谢晓玲谢晓玲1习题习题6.2/P182o6.2 6.2 已知二维变换矩阵已知二维变换矩阵T T2D2D=a b pa b p c d q c d q l m s l m s试说明矩阵试说明矩阵T T2D2D中各元素在变换中的具体作用。中各元素在变换中的具体作用。答:缩放:答:缩放:a,da,d 平移:平移:l,ml,m 旋转:旋转:a,b,c,da,b,c,d 透视:透视:p,qp,q 全局缩放:全局缩放:s s 错切:错切:b,cb,c习题习题6.3/P182o6.3 6.3 试推导将二维平面上任意直线段试推导将二维平面上任意直线段p
2、 p1 1(x(x1 1,y,y1 1)p)p2 2(x(x2 2,y,y2 2)转转换成为与换成为与x x轴重合的变换矩阵(直线段轴重合的变换矩阵(直线段p1p2p1p2与与x x轴的交角轴的交角4545)。)。答:答:sin()=(ysin()=(y2 2-y-y1 1)/sqrt(x)/sqrt(x2 2-x-x1 1)2 2+(y+(y2 2-y-y1 1)2 2)cos()=(x cos()=(x2 2-x-x1 1)/sqrt(x)/sqrt(x2 2-x-x1 1)2 2+(y+(y2 2-y-y1 1)2 2)平移平移T T1 1(-x(-x1 1,-y,-y1 1)=1 0
3、0)=1 0 0 0 1 0 0 1 0 -x -x1 1 -y -y1 1 1 1旋转旋转R R1 1(-)=cos-sin 0(-)=cos-sin 0 sin cos 0 sin cos 0 0 0 1 0 0 1T=TT=T1 1(-x(-x1 1,-y,-y1 1)R)R1 1(-)(-)(x1,y1)(x2,y2)习题习题6.4/P182o6.4 6.4 已知点已知点P(xP(xp p,y,yp p)及其直线及其直线L L的方程的方程Ax+By+C=0Ax+By+C=0,试推导一个相对试推导一个相对L L作对称变换的变换矩阵作对称变换的变换矩阵T T,使点,使点P P的的对称点对称
4、点P P满足满足P P=PT=PT。答:设:答:设:k=-A/Bk=-A/B,b=-C/Bb=-C/B sin()=-A/sqrt(A sin()=-A/sqrt(A2 2+B+B2 2)cos()=-B/sqrt(Acos()=-B/sqrt(A2 2+B+B2 2)平移平移T T1 1(0,-b)=1 0 0(0,-b)=1 0 0 0 1 0 0 1 0 0 -b 1 0 -b 1(0,-C/B)(-C/A,0)习题习题6.4/P182旋转旋转R R1 1(-)=cos-sin 0(-)=cos-sin 0 sin cos 0 sin cos 00 0 10 0 1关于关于x x轴对称轴
5、对称RFRFx x=1 0 0=1 0 0 0 -1 0 0 -1 0 0 0 1 0 0 1反旋转反旋转R R2 2()=cos sin 0()=cos sin 0 -sin cos 0 -sin cos 0 0 0 1 0 0 1(0,-C/B)(-C/A,0)习题习题6.4/P182反平移反平移T T2 2(0,b)=1 0 0(0,b)=1 0 0 0 1 0 0 1 0 0 b 1 0 b 1T=TT=T1 1(0,-b)R(0,-b)R1 1(-)RF(-)RFx xR R2 2()T()T2 2(0,b)(0,b)习题习题6.6/P183o6.6 6.6 试证明相对于原点的旋转变
6、换可以等价为一试证明相对于原点的旋转变换可以等价为一个比例变换和一个错切变换的复合变换。个比例变换和一个错切变换的复合变换。cos sin 0 s cos sin 0 sx x 0 0 1 b 0 s 0 0 1 b 0 sx x bs bsx x 0 0-sin cos 0 =0 s-sin cos 0 =0 sy y 0 c 1 0 =cs 0 c 1 0 =csy y s sy y 0 0 0 0 1 0 0 10 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1s sx x=cos=cos,s sy y=sin=sin,bs bsx x=sin=sin,cs csy y
7、=-sin=-sinb=sin/cos=tg b=sin/cos=tg,c=-sin/cos=-tg c=-sin/cos=-tg cos sin 0 cos 0 0 1 tg 0 cos sin 0 cos 0 0 1 tg 0 -sin cos 0 =0 sin 0 -tg 1 0 -sin cos 0 =0 sin 0 -tg 1 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 习题习题6.7/P183o6.7 6.7 如图所示四边形如图所示四边形ABCDABCD,求绕点,求绕点P(5,4)P(5,4)分别旋转分别旋转4545和和9090的变换矩阵,并求出各端
8、点的坐标,画出的变换矩阵,并求出各端点的坐标,画出变换后的图形。变换后的图形。9090T=0 1 0T=0 1 0 -1 0 0 -1 0 0 9-1 1 9-1 14 1 1 0 1 0 8 3 14 1 1 0 1 0 8 3 17 3 1 7 3 1 -1 0 0=6 6-1 0 0=6 6 1 17 7 1 9-1 17 7 1 9-1 1 2 6 1 2 6 11 4 11 4 1 5 0 1 5 0 1AA(8,3),B(8,3),B(6,6),C(6,6),C(2,6),D(2,6),D(5,0)(5,0)A(4,1)B(7,3)C(7,7)D(1,4)A(8,3)B(6,6)C
9、(2,6)D(5,0)4545T=T(-5,-4)R(45T=T(-5,-4)R(45)T(5,4)T(5,4)=2/22/2 2/22/2 0 0 -2/22/2 2/22/2 0 0 5-5-2/2 4-2/22/2 4-2/2 1 14 1 1 5+4 1 1 5+22 4-2 4-22 2 1 17 3 1 7 3 1 T=5+3T=5+32/22/2 4+4+2/2 2/2 1 1 7 7 1 7 7 1 5-5-2/22/2 4+5 4+52/2 2/2 1 1 1 4 11 4 1 5-2 5-222 4-2 4-22 2 1 1四舍五入后:A(6,1),B(7,5),C(4,8
10、),D(2,1)A(4,1)B(7,3)C(7,7)D(1,4)A(6,1)B(7,5)C(4,8)D(2,1)习题习题6.11/P183o6.11 试用编码裁剪法(试用编码裁剪法(Cohen-Sutherland)裁剪图裁剪图6-40的线段。的线段。2 31A(3,3)B(-1,-2)图6-40codeA=1010,codeB=0101k=5/4,b=-3/4,y=kx+bcodeA|codeB0 不在窗口内codeA&codeB=0 AB不在窗口同一外侧根据codeA的从低到高寻找编码位为1所对应的窗口边界为右边界。求AB与右边界的交点为PR(2,7/4)。令PR-A(2,7/4),cod
11、eA=0000,并用A代替APR交换,使得A-B(2,7/4)、0000;B-A(-1,-2)、0101根据codeA的从低到高寻找编码位为1所对应的窗口边界为左边界,求AB与左边界的交点PL(0,-3/4)。令PL-A(0,-3/4),codeA=0100,并用A代替A根据codeA的从低到高寻找编码位为1所对应的窗口边界为底边界,求AB与底边界的交点PB(3/5,0)。令PB-A(3/5,0),codeA=0000,并用A代替A2 31A(-1,-2)B(2,7/4)PL2 31A(3/5,0)B(2,7/4)2 31A(0,-3/4)B(2,7/4)PB至此,裁剪结束,求得裁剪线段为:(
12、2,7/4),(3/5,0)四舍五入后,裁剪线段为:(2,2),(1,0)习题习题6.13/P183o6.13 试用中点分隔算法裁剪如图试用中点分隔算法裁剪如图6-40的线段,的线段,分隔一直到误差小于分隔一直到误差小于0.5为止。为止。codeA=1010,codeB=0101中点Pm(x1+x2)/2,(y1+y2)/2)求求A的最远可见点的最远可见点codeB0 B不在窗口内codeA&codeB=0 AB不在窗口同一外侧用二分法求AB中点Pm(1,1/2)、0000。Pm在窗口内,令Pm-A(1,1/2)、0000,并用A代替A2 31A(3,3)B(-1,-2)图6-40Pm用二分法
13、求AB中点Pm(0,-3/4)、0100。Pm在窗口外,codePm&codeB0 PmB在窗口同一外侧,令Pm-B(0,-3/4)、0100,并用B代替B用二分法求AB中点Pm(1/2,-1/8)、0100。同理,令Pm-B(1/2,-1/8)、0100,并用B代替B用二分法求AB中点Pm(3/4,3/16)、0100。分析Pm和B的误差小于0.5,则不再分隔。四舍五入得B(1,0)、0000,为A的最远可见点。Pm2 31A(1,1/2)B(-1,-2)APm2 31A(1,1/2)BAB(0,-3/4)PmA(1,1/2)BAB(1/2,-1/8)BAB(1,0)codeA=1010,c
14、odeB=0101中点Pm(x1+x2)/2,(y1+y2)/2)求求B的最远可见点的最远可见点codeA0 A不在窗口内codeA&codeB=0 AB不在窗口同一外侧用二分法求AB中点Pm(1,1/2)、0000。Pm在窗口内,令Pm-B(1,1/2)、0000,并用B代替B2 31A(3,3)B(-1,-2)图6-40Pm用二分法求AB中点Pm(2,7/4)、0000。Pm在窗口内,令Pm-B(2,7/4)、0000,并用B代替B2 31A(3,3)B(1,1/2)Pm用二分法求AB中点Pm(5/2,19/8)、1010。Pm在窗口外,codePm&codeA0 PmA在窗口同一外侧,令
15、Pm-A(5/2,19/8)、1010,并用A代替A2 31A(3,3)B(2,7/4)Pm2 31A(5/2,19/8)B(2,7/4)Pm用二分法求AB中点Pm(9/4,33/16)、1010。分析Pm和A的误差小于0.5,则不再分隔。四舍五入得A(2,2)、0000,为B的最远可见点。至此,裁剪结束,求得裁剪线段为:(2,2),(1,0)习题习题6.14/P183o6.14 试用试用Liang-Barsky算法裁剪如图算法裁剪如图6-40的的线段。线段。P1=-(-x2-x1)=-(-1-3)=4;q1=x1-xWL=3-0=3;P2=x2-x1=-1-3=-4;q2=xWR-x1=2-
16、3=-1;P3=-(-y2-y1)=-(-2-3)=5;q3=y1-yWB=3-0=3;P4=y2-y1=-2-3=-5;q4=yWT-y1=2-3=-1;Pi0 不存在直线与窗口边界的平行2 31A(3,3)B(-1,-2)图6-40Pm12341/51/5P P4 40,0,0,出去出去3:3:下下1/41/4P P2 20,0,0,出去出去1:1:左左U(=qU(=qi i/p/pi i)ABAB边界边界U Umaxmax U Uminmin有交有交UmaxUminUmin=min(1,u1,u3)=3/5 Umax=max(0,u2,u4)=1/4 UmaxUmin 有交有交 X=x1
17、+Umax(x2-x1)=3+1/4(-1-3)=2 Y=y1+Umax(y2-y1)=3+1/4(-2-3)=1.75 X=x1+Umin(x2-x1)=3+3/5(-1-3)=0.6 Y=y1+Umin(y2-y1)=3+3/5(-2-3)=0得交点得交点(2,1.75)(2,1.75)、(0.6,0)(0.6,0)至此,四舍五入后,求得裁剪线段为:(2,2),(1,0)2 31A(3,3)B(-1,-2)Pm12341/51/5P P4 40,0,0,出去出去3:3:下下1/41/4P P2 20,0,0,出去出去1:1:左左U(=qU(=qi i/p/pi i)ABAB边界边界U Um
18、axmax 视图视图。41(1,1)13(4,3)为了保持纵横比不变,则:w窗/h窗=w视/h视=3/2取w视=1,得视区(0,0)、(1,2/3)Sx=1/3,Sy=1/3T窗-视=T(-1,-1)S(1/3,1/3)T(0,0)=1 1/3 1 1 1/3 1 -1 -1 1 1 1补充习题补充习题2o补充补充2 已知窗口如图所示,以已知窗口如图所示,以NDC为视图,要为视图,要求保持纵横比不变,求求保持纵横比不变,求T窗口窗口-视图视图。为了保持纵横比不变,则:w窗/h窗=w视/h视=3/2取w视=1,得视区(0,0)、(1,2/3)Sx=1/3,Sy=1/3T窗-视=T(-1,-1)R(-30)S(1/3,1/3)T(0,0)=1 cos30 -sin30 1/3 1 1 sin30 cos30 1/3 1-1 -1 1 1 1 14112330