资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,计算机图形学基础,华东理工大学计算机系 谢晓玲,1,习题6.2/P182,6.2 已知二维变换矩阵T,2D,=,a b p,c d q,l m s,试说明矩阵,T,2D,中各元素在变换中的具体作用。,答:缩放:a,d,平移:l,m,旋转:a,b,c,d,透视:p,q,全局缩放:s,错切:b,c,习题6.3/P182,6.3 试推导将二维平面上任意直线段p,1,(x,1,y,1,)p,2,(x,2,y,2,)转换成为与x轴重合的变换矩阵(直线段p1p2与x轴的交角,45,)。,答:,sin()=(y,2,-y,1,)/sqrt(x,2,-x,1,),2,+(y,2,-y,1,),2,),cos()=(x,2,-x,1,)/sqrt(x,2,-x,1,),2,+(y,2,-y,1,),2,),平移T,1,(-x,1,-y,1,)=1 0 0,0 1 0,-x,1,-y,1,1,旋转R,1,(-)=cos-sin 0,sin cos 0,0 0 1,T=T,1,(-x,1,-y,1,)R,1,(-),(x,1,y,1,),(x,2,y,2,),习题6.4/P182,6.4 已知点P(x,p,y,p,)及其直线L的方程Ax+By+C=0,试推导一个相对L作对称变换的变换矩阵T,使点P的对称点P,满足P,=PT。,答:设:k=-A/B,b=-C/B,sin()=-A/sqrt(A,2,+B,2,),cos()=-B/sqrt(A,2,+B,2,),平移T,1,(0,-b)=1 0 0,0 1 0,0 -b 1,(0,-C/B),(-C/A,0),习题6.4/P182,旋转R,1,(-)=cos-sin 0,sin cos 0,0 0 1,关于x轴对称RF,x,=1 0 0,0 -1 0,0 0 1,反旋转R,2,()=cos sin 0,-sin cos 0,0 0 1,(0,-C/B),(-C/A,0),习题6.4/P182,反平移T,2,(0,b)=1 0 0,0 1 0,0 b 1,T=T,1,(0,-b)R,1,(-)RF,x,R,2,()T,2,(0,b),习题6.6/P183,6.6 试证明相对于原点的旋转变换可以等价为一个比例变换和一个错切变换的复合变换。,cos sin 0 s,x,0 0 1 b 0 s,x,bs,x,0,-sin cos 0 =0 s,y,0 c 1 0 =cs,y,s,y,0,0 0 10 0 1 0 0 1 0 0 1,s,x,=cos,s,y,=sin,bs,x,=sin,cs,y,=-sin,b=sin/cos=tg,c=-sin/cos=-tg,cos sin 0 cos 0 0 1 tg 0,-sin cos 0 =0 sin 0 -tg 1 0,0 0 1 0 0 1 0 0 1,习题6.7/P183,6.7 如图所示四边形ABCD,求绕点P(5,4)分别旋转45,和90,的变换矩阵,并求出各端点的坐标,画出变换后的图形。,90,T=0 1 0,-1 0 0,9-1 1,4 1 1 0 1 0 8 3 1,7 3 1,-1 0 0=6 6 1,7 7 1 9-1 1 2 6 1,1 4 1 5 0 1,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/2,0,-,2/2,2/2,0,5-,2/2 4-2/2,1,4 1 1 5+,2,4-2,2,1,7 3 1,T=5+3,2/2,4+,2/2,1,7 7 1 5-,2/2,4+5,2/2,1,1 4 1 5-2,2,4-2,2,1,四舍五入后:,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/P183,6.11 试用编码裁剪法(Cohen-Sutherland)裁剪图6-40的线段。,2,3,1,A(3,3),B(-1,-2),图6-40,codeA=1010,codeB=0101,k=5/4,b=-3/4,y=kx+b,codeA|codeB,0 不在窗口内,codeA&codeB,=0 AB不在窗口同一外侧,根据,codeA的从低到高寻找编码位为1所对应的窗口边界为右边界。求AB与右边界的交点为P,R,(2,7/4)。,令P,R,-A(2,7/4),codeA=0000,并用A代替A,P,R,交换,使得A-B(2,7/4)、0000;,B-,A,(-1,-2)、0101,根据,codeA的从低到高寻找编码位为1所对应的窗口边界为左边界,求AB与左边界的交点P,L,(0,-3/4)。,令P,L,-A(0,-3/4),codeA=0100,并用A代替A,根据,codeA的从低到高寻找编码位为1所对应的窗口边界为底边界,求AB与底边界的交点P,B,(3/5,0)。,令P,B,-A(3/5,0),codeA=0000,并用A代替A,2,3,1,A(-1,-2),B(2,7/4),P,L,2,3,1,A(3/5,0),B(2,7/4),2,3,1,A(0,-3/4),B(2,7/4),P,B,至此,裁剪结束,求得裁剪线段为:(2,7/4),(3/5,0),四舍五入后,裁剪线段为:(2,2),(1,0),习题6.13/P183,6.13 试用中点分隔算法裁剪如图6-40的线段,分隔一直到误差小于0.5为止。,codeA=1010,codeB=0101,中点P,m,(x1+x2)/2,(y1+y2)/2),求A的最远可见点,codeB,0 B不在窗口内,codeA&codeB,=0 AB不在窗口同一外侧,用二分法求AB中点P,m,(,1,1/2)、0000。,P,m,在窗口内,令P,m,-A(1,1/2)、0000,并用A代替A,2,3,1,A(3,3),B(-1,-2),图6-40,P,m,用二分法求AB中点P,m,(,0,-3/4)、0100。,P,m,在窗口外,codeP,m,&codeB,0 P,m,B在窗口同一外侧,,令P,m,-B(0,-3/4)、0100,并用B代替B,用二分法求AB中点P,m,(,1/2,-1/8)、0100。,同理,,令P,m,-B(1/2,-1/8)、0100,并用B代替B,用二分法求AB中点P,m,(,3/4,3/16)、0100。,分析,P,m,和,B的误差小于0.5,则不再分隔。四舍五入得B(1,0)、0000,为A的最远可见点。,P,m,2,3,1,A(1,1/2),B(-1,-2),A,P,m,2,3,1,A(1,1/2),B,A,B(0,-3/4),P,m,A(1,1/2),B,A,B(1/2,-1/8),B,A,B(1,0),codeA=1010,codeB=0101,中点P,m,(x1+x2)/2,(y1+y2)/2),求B的最远可见点,codeA,0 A不在窗口内,codeA&codeB,=0 AB不在窗口同一外侧,用二分法求AB中点P,m,(,1,1/2)、0000。,P,m,在窗口内,令P,m,-B(1,1/2)、0000,并用B代替B,2,3,1,A(3,3),B(-1,-2),图6-40,P,m,用二分法求AB中点P,m,(,2,7/4)、0000。,P,m,在窗口内,,令P,m,-B(2,7/4)、0000,并用B代替B,2,3,1,A(3,3),B(1,1/2),P,m,用二分法求AB中点P,m,(,5/2,19/8)、1010。,P,m,在窗口外,codeP,m,&codeA,0 P,m,A在窗口同一外侧,,令P,m,-A(5/2,19/8)、1010,并用A代替A,2,3,1,A(3,3),B(2,7/4),P,m,2,3,1,A(5/2,19/8),B(2,7/4),P,m,用二分法求AB中点P,m,(,9/4,33/16)、1010。,分析,P,m,和A,的误差小于0.5,则不再分隔。四舍五入得A(2,2)、0000,为B的最远可见点。,至此,裁剪结束,求得裁剪线段为:(2,2),(1,0),习题6.14/P183,6.14 试用Liang-Barsky算法裁剪如图6-40的线段。,P,1,=-(-x,2,-x,1,)=-(-1-3)=4;q,1,=x,1,-x,WL,=3-0=3;,P,2,=x,2,-x,1,=-1-3=-4;q,2,=x,WR,-x,1,=2-3=-1;,P,3,=-(-y,2,-y,1,)=-(-2-3)=5;q,3,=y,1,-y,WB,=3-0=3;,P,4,=y,2,-y,1,=-2-3=-5;q,4,=y,WT,-y,1,=2-3=-1;,P,i,0 不存在直线与窗口边界的平行,2,3,1,A(3,3),B(-1,-2),图6-40,P,m,1,2,3,4,1/5,P,4,0,出去,3:下,1/4,P,2,0,出去,1:左,U(=q,i,/p,i,),AB,边界,U,max,U,min,有交,U,max,U,min,Umin=min(1,u1,u3)=3/5,Umax=max(0,u2,u4)=1/4,UmaxUmin,有交,X=x1+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)、(0.6,0),至此,四舍五入后,求得裁剪线段为:(2,2),(1,0),2,3,1,A(3,3),B(-1,-2),P,m,1,2,3,4,1/5,P,4,0,出去,3:下,1/4,P,2,0,出去,1:左,U(=q,i,/p,i,),AB,边界,U,max,视图,。,4,1,(1,1),1,3,(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),=1 1/3 1,1 1/3 1,-1 -1 1 1 1,补充习题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),=1 cos30 -sin30 1/3 1,1 sin30 cos30 1/3 1,-1 -1 1 1 1 1,4,1,1,2,3,30,
展开阅读全文