您好,欢迎访问三七文档
计算机图形学基础华东理工大学计算机系·谢晓玲习题6.2/P1826.2已知二维变换矩阵T2D=abpcdqlms试说明矩阵T2D中各元素在变换中的具体作用。答:缩放:a,d平移:l,m旋转:a,b,c,d透视:p,q全局缩放:s错切:b,c习题6.3/P1826.3试推导将二维平面上任意直线段p1(x1,y1)p2(x2,y2)转换成为与x轴重合的变换矩阵(直线段p1p2与x轴的交角θ≤45°)。答:sin(θ)=(y2-y1)/sqrt((x2-x1)2+(y2-y1)2)cos(θ)=(x2-x1)/sqrt((x2-x1)2+(y2-y1)2)①平移T1(-x1,-y1)=100010-x1-y11②旋转R1(-θ)=cosθ-sinθ0sinθcosθ0001③T=T1(-x1,-y1)R1(-θ)(x1,y1)θ(x2,y2)习题6.4/P1826.4已知点P(xp,yp)及其直线L的方程Ax+By+C=0,试推导一个相对L作对称变换的变换矩阵T,使点P的对称点P’满足P’=PT。答:设:k=-A/B,b=-C/Bsin(θ)=-A/sqrt(A2+B2)cos(θ)=-B/sqrt(A2+B2)①平移T1(0,-b)=1000100-b1(0,-C/B)(-C/A,0)θ习题6.4/P182②旋转R1(-θ)=cosθ-sinθ0sinθcosθ0001③关于x轴对称RFx=1000-10001④反旋转R2(θ)=cosθsinθ0-sinθcosθ0001(0,-C/B)(-C/A,0)θ习题6.4/P182⑤反平移T2(0,b)=1000100b1⑥T=T1(0,-b)R1(-θ)RFxR2(θ)T2(0,b)习题6.6/P1836.6试证明相对于原点的旋转变换可以等价为一个比例变换和一个错切变换的复合变换。cosθsinθ0sx001b0sxbsx0-sinθcosθ0=0sy0·c10=csysy0001001001001∴sx=cosθ,sy=sinθ,bsx=sinθ,csy=-sinθ∴b=sinθ/cosθ=tgθ,c=-sinθ/cosθ=-tgθ∴cosθsinθ0cosθ001tgθ0-sinθcosθ0=0sinθ0·-tgθ10001001001习题6.7/P1836.7如图所示四边形ABCD,求绕点P(5,4)分别旋转45°和90°的变换矩阵,并求出各端点的坐标,画出变换后的图形。①90°T=010-1009-11411010831731·-100=6617719-11261141501∴A’(8,3),B’(6,6),C’(2,6),D’(5,0)A(4,1)B(7,3)C(7,7)D(1,4)A’(8,3)B’(6,6)C’(2,6)D’(5,0)②45°T=T(-5,-4)R(45°)T(5,4)=√2/2√2/20-√2/2√2/205-√2/24-√2/214115+√24-2√21731·T=5+3√2/24+√2/217715-√2/24+5√2/211415-2√24-2√21∴四舍五入后:A’(6,1),B’(7,5),C’(4,8),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/P1836.11试用编码裁剪法(Cohen-Sutherland)裁剪图6-40的线段。231A(3,3)B(-1,-2)图6-40codeA=1010,codeB=0101k=5/4,b=-3/4,y=kx+b①∵codeA|codeB0∴不在窗口内②∵codeA&codeB=0∴AB不在窗口同一外侧③根据codeA的从低到高寻找编码位为1所对应的窗口边界为右边界。求AB与右边界的交点为PR(2,7/4)。令PR-A’(2,7/4),codeA’=0000,并用A’代替APR④交换,使得A’-B’(2,7/4)、0000;B-A’’(-1,-2)、0101⑤根据codeA’’的从低到高寻找编码位为1所对应的窗口边界为左边界,求A’’B’与左边界的交点PL(0,-3/4)。令PL-A’’’(0,-3/4),codeA’’’=0100,并用A’’’代替A’’⑥根据codeA’’’的从低到高寻找编码位为1所对应的窗口边界为底边界,求A’’’B’与底边界的交点PB(3/5,0)。令PB-A’’’’(3/5,0),codeA’’’’=0000,并用A’’’’代替A’’’231A’’(-1,-2)B’(2,7/4)PL231A’’’’(3/5,0)B’(2,7/4)231A’’’(0,-3/4)B’(2,7/4)PB⑦至此,裁剪结束,求得裁剪线段为:(2,7/4),(3/5,0)⑧四舍五入后,裁剪线段为:(2,2),(1,0)习题6.13/P1836.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’代替A231A(3,3)B(-1,-2)图6-40Pm⑤用二分法求A’B中点Pm(0,-3/4)、0100。⑥∵Pm在窗口外,codePm&codeB0∴PmB在窗口同一外侧,∴令Pm-B’(0,-3/4)、0100,并用B’代替B⑦用二分法求A’B’中点Pm(1/2,-1/8)、0100。⑧同理,令Pm-B’’(1/2,-1/8)、0100,并用B’’代替B⑨用二分法求A’B’’中点Pm(3/4,3/16)、0100。⑩分析Pm和B’’的误差小于0.5,则不再分隔。四舍五入得B’’’(1,0)、0000,为A的最远可见点。Pm231A’(1,1/2)B(-1,-2)APm231A’(1,1/2)BAB’(0,-3/4)PmA’(1,1/2)BAB’’(1/2,-1/8)BAB’’’(1,0)codeA=1010,codeB=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’代替B231A(3,3)B(-1,-2)图6-40Pm⑤用二分法求AB’中点Pm(2,7/4)、0000。⑥∵Pm在窗口内,∴令Pm-B’’(2,7/4)、0000,并用B’’代替B231A(3,3)B’(1,1/2)Pm⑥用二分法求AB’’中点Pm(5/2,19/8)、1010。⑦∵Pm在窗口外,codePm&codeA0∴PmA在窗口同一外侧,∴令Pm-A’(5/2,19/8)、1010,并用A’代替A231A(3,3)B’’(2,7/4)Pm231A’(5/2,19/8)B’’(2,7/4)Pm⑧用二分法求A’B’’中点Pm(9/4,33/16)、1010。⑨分析Pm和A’的误差小于0.5,则不再分隔。四舍五入得A’’(2,2)、0000,为B的最远可见点。⑩至此,裁剪结束,求得裁剪线段为:(2,2),(1,0)习题6.14/P1836.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-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∴不存在直线与窗口边界的平行231A(3,3)B(-1,-2)图6-40Pm12341/5P40,进入4:上3/5P30,出去3:下1/4P20,进入2:右3/4p10,出去1:左U(=qi/pi)AB边界UmaxUmin∴有交UmaxUmin②Umin=min(1,u1,u3)=3/5Umax=max(0,u2,u4)=1/4∴UmaxUmin有交③X=x1+Umax(x2-x1)=3+1/4(-1-3)=2Y=y1+Umax(y2-y1)=3+1/4(-2-3)=1.75X=x1+Umin(x2-x1)=3+3/5(-1-3)=0.6Y=y1+Umin(y2-y1)=3+3/5(-2-3)=0∴得交点(2,1.75)、(0.6,0)④至此,四舍五入后,求得裁剪线段为:(2,2),(1,0)231A(3,3)B(-1,-2)Pm12341/5P40,进入4:上3/5P30,出去3:下1/4P20,进入2:右3/4p10,出去1:左U(=qi/pi)AB边界UmaxUmin∴有交习题6.15/P1836.15试用Sutherland-Hodgeman算法裁剪如图6-41的多边形,要求画出每次裁剪对应的图形,并标出输入和输出的顶点。62A(4,1)图6-4126B(5,4)C(8,1)D(6,8)E(1,5)①输入:ABCDE输出:ABCD12A62A(4,1)26B(5,4)C(8,1)D(6,8)E(1,5)12②输入:ABCD12A输出:3B45D126③输入:3B45D126输出:3B7D126③输入:3B7D126输出:3B78912662A(4,1)26B(5,4)C(8,1)D(6,8)E(1,5)12345662A(4,1)26B(5,4)C(8,1)D(6,8)E(1,5)123456762A(4,1)26B(5,4)C(8,1)D(6,8)E(1,5)12345678962A(4,1)26B(5,4)C(8,1)D(6,8)E(1,5)123456789习题6.16/P1836.16试用Weiler-Atherton算法裁剪如图6-41的多边形,要求写出输入和输出的顶点。62A(4,1)图6-4126B(5,4)C(8,1)D(6,8)E(1,5)主顶点序列:AI1BI2CDI3I4EI5I6A蓝点:进点緑点:出点裁顶点序列:aI4I5bI6I1cI2dI3a结果顶点序列:I1BI2dI3I4I5I6I162A26BCDEabcdI1I2I3I4I5I6补充习题1补充1已知窗口如图所示,以NDC为视图,要求保持纵横比不变,求T窗口-视图。41(1,1)13(4,3)①为了保持纵横比不变,则:w窗/h窗=w视/h视=3/2②取w视=1,得视区(0,0)、(1,2/3)∴Sx=1/3,Sy=1/3③T窗-视=T(-1,-1)S(1/3,1/3)T(0,0)=11/3111/31-1-1111补充习题2补充2已知窗口如图所示,以NDC为视图,要求保持纵横比不变,求T窗口-视图。①为了保持纵横比不变,则:w窗/h窗=w视/h视=3/2②取w视=1,得视区(0,0)、(1,2/3)∴Sx=1/3,Sy=1/3③T窗-视=T(-1,-1)R(-30)S(1/3,1/3)T(0,0)=1cos30-sin301/311sin30cos301/31-1-1111141130°
本文标题:第6章习题
链接地址:https://www.777doc.com/doc-6921230 .html