计算机图形学第6章习题_第1页
计算机图形学第6章习题_第2页
计算机图形学第6章习题_第3页
计算机图形学第6章习题_第4页
计算机图形学第6章习题_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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 p1 1(x(x1 1,y,y1 1) p) p

2、2 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 0)= 1 0

3、 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、点pp满足满足p=ptp=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

5、10 0 1关于关于x x轴对称轴对称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/p1

6、83o6.6 6.6 试证明相对于原点的旋转变换可以等价为一试证明相对于原点的旋转变换可以等价为一个比例变换和一个错切变换的复合变换。个比例变换和一个错切变换的复合变换。 cos sin 0 scos 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 0 c 1 0 = cs c 1 0 = csy y s sy y 0 0 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1s sx x=cos=cos,s sy y=sin=si

7、n,bs bsx x=sin=sin,cs csy y= -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 -sin cos 0 = 0 sin 0 - tg 1 0 - tg 1 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 1 习题习题6.7/p183o6.7 6.7 如图所示四边形如图所示四边形abcdabcd,求绕点,求绕

8、点p(5,4)p(5,4)分别旋转分别旋转4545和和9090的变换矩阵,并求出各端点的坐标,画出的变换矩阵,并求出各端点的坐标,画出变换后的图形。变换后的图形。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 -1 0 0 = 6 67 3 1 -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 15 0 1a(8,3),b(6,6),c(2,6),d(5,0)a(8,3),b(6,6)

9、,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)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 t = 5+37 3 1 t = 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

10、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),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不在窗口同一外侧根据cod

11、ea的从低到高寻找编码位为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所对应的窗口边界为左边界,求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(

12、2,7/4)pl2 31a(3/5,0)b(2,7/4)2 31a(0,-3/4)b(2,7/4)pb至此,裁剪结束,求得裁剪线段为:(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

13、,1/2)、0000。pm在窗口内,令pm-a(1,1/2)、0000,并用a代替a2 31a(3,3)b(-1,-2)图6-40pm用二分法求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(-

14、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,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代替b2 31a(3,3)b(-1,-2)图6-40pm用二分法求ab中点pm( 2,7/4)、0000。pm在窗口内,令pm-b(2,7/4)、0000,并用b代替b2

15、31a(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代替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算法裁剪如图算法裁剪如图

16、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 不存在直线与窗口边界的平行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

17、 u uminmin有交有交umaxuminumin=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)(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 umaxmax 视图视图。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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论