《计算机图形学期末复习练习题(有答案).doc》由会员分享,可在线阅读,更多相关《计算机图形学期末复习练习题(有答案).doc(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流1、2、3、4、5、6、7、 计算机图形学期末复习练习题(有答案).精品文档.8、 XOY平面上特征多边形顶点P1(0,0),P2(1,1),P3(2,-1),P4(3,0)确定一条三次Bezier曲线P(t),。用递推(de Casteljau)算法求解P(1/2)。4Bezier曲线的递推(de Casteljau)算法 计算Bezier曲线上的点,可用Bezier曲线方程,但使用de Casteljau提出的递推算法则要简单的多。如图所示,设、是一条抛物线上顺序三个不同的点。过和点的两切线交于点,在点的切线交和于和,则如下比例成立:这是
2、所谓抛物线的三切线定理,其几何意义如下图所示。图 抛物线的三切线定理当P0,P2固定,引入参数t,令上述比值为t:(1-t),即有: t从0变到1,第一、二式就分别表示控制二边形的第一、二条边,它们正好是两条一次Bezier曲线。将一、二式代入第三式得:当t从0变到1时,它正好表示了由三顶点P0、P1、P2三点定义的一条二次Bezier曲线。并且表明:这二次Bezier曲线P20可以定义为分别由前两个顶点(P0,P1)和后两个顶点(P1,P2)决定的一次Bezier曲线的线性组合。依次类推,由四个控制点定义的三次Bezier曲线P30可被定义为分别由(P0,P1,P2)和(P1,P2,P3)确
3、定的二条二次Bezier曲线的线性组合;进一步由(n+1)个控制点Pi(i=0, 1, ., n)定义的n次Bezier曲线Pn0可被定义为分别由前、后n个控制点定义的两条(n-1)次Bezier曲线P0n-1与P1n-1的线性组合:由此得到Bezier曲线的递推计算公式: 这便是著名的de Casteljau算法。用这一递推公式,在给定参数下,求Bezier曲线上一点P(t)非常有效。上式中:是定义Bezier曲线的控制点,即为曲线上具有参数t的点。de Casteljau算法稳定可靠,直观简便,可以编出十分简捷的程序,是计算Bezier曲线的基本算法和标准算法。function deCas
4、teljau(i,j) begin if i = 0 then return P0,j else return (1-u)* deCasteljau(i-1,j) + u* deCasteljau(i-1,j+1) end 这一算法可用简单的几何作图来实现。给定参数,就把定义域分成长度为的两段。依次对原始控制多边形每一边执行同样的定比分割,所得分点就是第一级递推生成的中间顶点,对这些中间顶点构成的控制多边形再执行同样的定比分割,得第二级中间顶点。重复进行下去,直到n级递推得到一个中间顶点即为所求曲线上的点。下图所示为几何作图求三次Bezier曲线(给定参数域)上t1/3的点。把定义域分成长度为
5、1/3 : (1-1/3)的两段。依次对原始控制多边形每一边执行同样的定比分割,所得分点就是第一级递推生成的中间顶点、,对这些中间顶点构成的控制多边形再执行同样的定比分割,得第二级中间顶点、。重复进行下去,直到第3级递推得到一个中间顶点即为所求曲线上的点P(t)。图 几何作图法求Bezier曲线上一点(n=3,t=1/3)上述过程的de casteljau算法递推出的Pki呈三角形,对应结果如图所示。递归算法是上述过程的逆过程,首先从上向下递归,直到最底层后开始返回,最顶部点P30即为曲线上的点。图 n=3时,Pin的递推关系另外,这一算法隐含说明任一Bezier曲线均可被分割为两段Bezie
6、r曲线。第一段由P0、P01、P02、P03确定,参数空间为0,1/3;第二段P03、P12、P21、P3确定,参数空间为1/3,1,分割后的曲线形状保持不变。如图所示。图 Bezier曲线的分割(n=3,t=1/3)2、采用Gouraud明暗处理模型计算如图所示点P的颜色值。P点的颜色值为(0.5, 0, 0.5)*0.4+(0, 0.5, 0.5)*0.6 = (0.2, 0.3, 0.5)3、如图所示,采用Cohen-Sutherland算法对线段进行裁剪时,1) 线段端点P点和Q点的编码各是多少2) 此时是否需要与窗口的边界进行求交运算,为什么(利用点的编码解释)?3) 如需要,可以与
7、窗口的哪些边界求交,为什么?1) c1 = 0100、c2 = 10102) 需要,因为c1|c2 != 0000 且c1&c2 = 00003) 与R,B和T边界进行求交,因为c1&0100 != 0000, c2&1000!= 0000, c2&0010!= 00004、如图所示多边形,采用扫描线算法进行填充,写出扫描线Y=5的新边表和活动边表(AET表),并解释边表结点数据结构的每个域。新边表活动边表其中第1项保存当前扫描线与边的交点坐标x值;第2项保存从当前扫描线到下一条扫描线间x的增量Dx;第3项保存该边所交的最高扫描线号ymax;第4项保存指向下一条边的指针。5、 如图所示三角形ABC,将其关于B点逆时针旋转900,采用矩阵的形式计算缩小后三角形各点的规范化齐次坐标,并用OpenGL函数编程实现。(20分)变换矩阵:各点的规范化齐次坐标为6、采用Bresenham算法转换直线段,起点x0(2,1)、终点x1(12,5)。1、给出判别式d的表达式(初始条件及递推关系式):2、递推过程中y的坐标值及d的值xyd21345678d的表达式:当时,当时,判断条件:当di0时,选择象素(xi1,yi1) xyd212*4-10-231-2+2*4=6426+2*4-2*10=-652-6+2*4 =2632+2*4-2*10=-1073-10+2*4=-483
限制150内