当前位置:首页 > 《计算机图形学》1-4章习题解答
2.将三角形A(0,0),B(1,1),C(5,2)放大两倍,保持C(5,2)不变。 答:
?0?'S?S?P1?R?P2?1???50121??1??1?0??1?????501?20??2??0?0??1????00200??1??0?0??1????50120???5??0??3??1????5?2021??1?1??得:A'?(?5,?2),B'?(?3,0),C'?(5,2)。
3.将类似菱形的多边形A(-1,0),B(0,-2),C(1,0),D(0,2)进行如下的反射变换: (a)相对于水平线y=2; (b)相对于垂直线x=2; (c)相对于直线y=x+2。 答:
(a) A'?(?1,4),B'?(0,6),C'?(1,4),D'?(0,2) (b) A'?(5,0),B'?(4,?2),C'?(3,0),D'?(4,2) (c) A'?(?2,1),B'?(?4,2),C'?(?2,3),D'?(0,2)
4.请写出一个图例变换,将正方形A(0,0),B(1,0),C(1,1),D(0,1)一半大小的复本放到主图形的坐标系中,且正方形的中心在(-1,-1)点。 答:原正方形的中心在P(1/2,1/2),首先进行关于P点的缩放变换,变换矩阵为M; ?1/2?M?0???1/401/21/40??0 ?1??然后要进行平移变换将中心点从P移到P’(-1,-1),此时水平和垂直方向的平移量均为-3/2,
变换矩阵为N; ?1?N?0????3/201?3/20??0 ?1??则有变换矩阵: ?1/2?T?M?N?0????5/401/2?5/40??0 ?1??
5.假设有一条从P1到P2的直线上的任意一点P,证明对任何组合变换,变换后的点P都在P1到P2之间。
答:设P1(x1,y1)是P1(x1,y1)的变换,P2(x2,y2)是P2(x2,y2)的变换。又设组合变换表
'''''' 5
?a?示为:b???cdef0??0?1??
'y1?dx1?ey1?f (1)
则有:x1'?ax1?by1?c'和 x2?ax2?by2?cy2?dx2?ey2?f (2)
''对P1到P2直线上的任意点P(x,y),要证明P'(x',y')在P1'和P2'连接的直线上,其中P是P的变换,且x?ax?by?c,y?dx?ey?f, (3)
y2?y1x?x'2'1''''即要证明:?y2?yx?x'2''', (4)
将公式(1)、(2)、(3)代入公式(4),经整理得:
d?ea?by2?y1x2?x1y2?y1x2?x1?a?bd?ey2?yx2?xy2?yx2?x
因为(x,y)满足:
y2?y1x2?x1?y2?yx2?x,
由此得到,P'在P1'和P2'连接的直线上。
6.二次旋转变换定义为先绕x轴旋转再绕y轴旋转的变换: (a)写出这个变换的矩阵;
(b)旋转的先后顺序对结果有影响吗?
答:设三维图形绕x轴逆时针旋转?x角度,绕y轴逆时针旋转?y角度,变换矩阵为:
?1?0T???0??00cos?x?sin?x00sin?xcos?x00cos?xsin?x00??cos?y??00???0??sin?y??1??0sin?y?sin?xcos?ycos?xcos?y00100?sin?y0cos?y00??0?0??1?0??0?0??1?cos?y??sin?xsin?y????cos?xsin?y?0?
7.写出关于某个给定平面对称的镜面反射变换。(注:用一个法向量N和P0(x0,y0,z0)参
6
考点确定一个参考平面。) 答:
(1)将P0平移到原点,变换矩阵为T1;
(2)使法线向量N平行于xy平面的法线向量K,变换矩阵为T2; (3)进行关于xy平面的镜面反射变换,变换矩阵为T3; (4)进行步骤(2)和(1)的逆变换,变换矩阵为T4和T5。 设向量N?n1I?n2J?n3K,则有N?为:
???0??N??n1n20?????N0?????n1n31???N?0??0?0n3n1Nn2Nn3N0?0??0????0??1??
n1?n2?n3,??222n2?n3,所以变化矩阵
22?1?0T?T1?T2?T3?T4?T5???0???x0010?y0001?z0??n2?0?1?0???0??0010000?10??0???0????0???1??????N0n1N0?n1n2?n1n3?Nn3?N?n2?n2N0?n3N0??1?0??0????00??x0??1??010y0001z00??0??0??1?
8.如何确定一个点P在观察点的内部还是外部? 答:一个平面将空间分成两部分。平面的一般方程是:
n1(x?x0)?n2(y?y0)?n3(z?z0)?0
对于任意点P(x,y,z),若定义一个标量函数f(P),有:
f(P)?f(x,y,z)?n1(x?x0)?n2(y?y0)?n3(z?z0)
如果signf(P)?signf(Q),则说明P点和Q点在同一边(相对平面而言)。令
fT,fB,fR,fL,fN,fF分别表示顶平面、底平面、右平面、左平面、前平面、后平面。
另外,L和R分别是窗口的左下角点和右上角点,且Pb和Pf分别是后裁剪平面和前裁剪平面的参考点。
7
如果下面都成立,则P点在观察体内: 对于平面fT来说,P和L在同一边; 对于平面fB来说,P和R在同一边; 对于平面fR来说,P和L在同一边; 对于平面fL来说,P和R在同一边; 对于平面fN来说,P和pb在同一边; 对于平面fF来说,P和pf在同一边。 相当于:
signfT(P)?signfT(L)signfB(P)?signfB(R)signfR(P)?signfR(L)signfL(P)?signfL(R)signfN(P)?signfN(Pb) signfF(P)?signfF(Pf)
9.将梁友栋-Barsky线段裁剪算法推广到三维,写出对下述三维观察体所要满足的不等式: (a)平行规范化观察体; (b)透视规范化观察体。
答:设P1(x1,y1,z1)和P2(x2,y2,z2)是线段的两个端点。线段的参数方程是:
?x?x1?u?x?y?y?u?y1??z?z?u?z1?0?u?1
平行规范化观察体是由平面x?0,x?1,y?0,y?1,z?0和z?1组成的单位立方体; 透视规范化观察体是由平面x?z,x?-z,y?z,y?-z,z?z(前)和组成的被截z?(后)1f断的部分棱锥。
(a)对于平行规范化观察体,内部点满足: xmin?x1?u?x?xmaxymin?y1?u?y?ymaxzmin?z1?u?z?zmax其中,xmin?ymin?zmin?0,xmax?ymax?zmax?1
六个不等式为:
upk?qkk?1,2,3,4,5,6
其中:
8
共分享92篇相关文档