计算机图形学复习资料
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4、常用的线段裁剪方法有几种?简述它们的优缺点。
答:常用的线段裁剪方法有三种,它们是:
(1)Cohen-SutherLand 裁剪算法;
(2)中点分割算法;
(3)参数化裁剪算法(Cyrus-Beck算法);
Cohen-SutherLand 裁剪算法与中点分割算法在区码测试阶段能以位运算方式高效率地进行,因而当大多数线段能够简单地取舍时,效率较好。参数化裁剪算法(Cyrus-Beck算法)在多数线段需要进行裁剪时,效率更高。这是因为运算只涉及到参数,仅到必要时才进行坐标计算。
7、为什么使用非均匀有理B样条?
答:非均匀B样条函数的节点参数沿参数轴的分布是不等距的,近年来,它得到了广泛的发展和应用,主要原因是:
(1)对标准的解析形状(如圆锥曲线,二次曲线,回转面等)和自由曲线,曲面提供了统一的数学表示,无论是解析形状还是自由格式的形状均有统一的表示参数,便于工程数据库的存取和应用。
(2)可通过控制点和权因子来灵活的改变形状。
(3)对插入节点,修改,分割,几何插值等的处理工具比较有利。
(4)具有透视投影变换和仿射变换的不变性。
(5)非有理B样条,有理及非有理Bezier曲线,曲面是NURBS的特例表示。
三、论述题
1、论述圆的Bresenham算法的原理,方法和步骤。
Bresenham画圆算法是在每一步考察两个可能的像素点中哪一个更靠近理论圆周,从而推出沿圆周的整数位置。
基本思想:通过比较像素与圆的距离平方来避免开方运算。
基本方法:每一步都选择一个离开实际圆周最近的点P i(x i,y i)使其误差项最小。
设圆之半径为r。先考虑圆心在(0,0),并从x=0,y=r开始的顺时针方向的1/8圆周的生成过程。在这种情况下,x每步增加1,从x=0开始,到x=y结束。即有:
x i+1=x i+1
相应的y i+1则在两种可能中选择:
y i+1=y i,或者y i+1=y i-1
选择的原则是考察精确值y靠近y i还是靠近y i-1,计算式为:
y2=r2-(x i+1)2
d1=y i2-y2=y i2-r2+(x i +1)2
d2=y2-(y i-1)2=r2-(x i +1)2-(y i -1)2
令p i=d1-d2,并代入d1, d2,则有
p i=2(x i +1)2+ y i2+( y i -1)2-2r2 (1)
p i称为误差。如果p i<0则y i+1=y i,否则y i+1= y i -1。p i的递归式为:
p i+1= p i+4x i+6+2(y2i+1- y i2)-2(y i+1- y i) (2)
p i的初值由式(1)代入x i=0, y i =r而得
p i=3-2r(3)
根据上面的推导,圆周生成算法步骤为:
1、求误差初值,p i=3-2r;i=1;画点(0, r);
2、求下一个光栅位置:
x i+1= x i +1;
if p i<0 则y i+1=y i;
否则y i+1=y i-1;
3、画点(x i+1, y i+1)
4、计算下一个误差:
if p i<0 则p i+1=p i+4x i+6;
否则p i+1=p i+4(x i-y i)+10;
5、i=i+1;if x=y 则end;否则返2。
虽然式(2)式表示p i+1的算法似乎很复杂,但因为y i+1只能取值y i或y i-1,因此在算法中,第4步的算式变得很简单,只须作加法和4的乘法。因此圆的Bresenham算法运行速度也是很快的,并适宜于硬件实现。
2、简述Bezier 曲线的性质?
答:Bezier 曲线P(t)具有以下性质:
(1)端点性质:
P(0)=P1;
P(1)=P n
(2)端点切矢量:
P‘(0)=n(P1- P0);
P‘(1)=n(P n- P n-1)
(3)端点的曲率:P(t)在两端点的曲率分别为:
这是因为
(4)对称性:
若保持原全部顶点的位置不变,只是把次序颠倒过来,则新的Bezier曲线形状不变,但方向相反。
(5)几何不变性
Bezier曲线的位置和形状只与特征多边形的顶点的位置有关,它不依赖坐标系的选择。(6)凸包性
因为P(t)是多边形各顶点P1,P2, ,P n的加权平均,而权因子0≤ B i,n(t)≤ 1,这反映在几何图形上有两重含义:
a. Bezier曲线P(t)位于其控制顶点P1,P2, ,P n的凸包之内;
b. Bezier 曲线P(t)随着其控制多边形的变化而变化;
(7)变差缩减性
对于平面Bezier曲线P(t),平面内任意条直线与其交点的个数不多于该直线与其控制多边形的交点个数;
3、写出一次、二次、三次B 样条曲线的矩阵表示。
答:(1)一次B 样条曲线
设空间P0,P1,…, P n为n+1个控制点,其中每相邻两个点和构造出一段一次的样条函数。其中的第i 段一次B 样条函数P i(t)的矩阵表示为:
(2)二次B 样条曲线
设空间P0 P1,…, P n为n+1 个控制点,其中每相邻三个点和构造出一段二次的样条函数。其中的第i 段二次B 样条函数P i(t)的矩阵表示为:
端点位置矢量:
P i,3(0)=(P i+P i-1)/2; P i,3(1)=(P i+P i+1)/2
端点的一阶导数矢量:
P’i,3(0)= P i-P i-1;
P’i,3(1)= P i+1-P i ;
P’i,3(1)= P’i+1,3(0);
端点的二阶导数矢量:
P’i,3(t)= P i-1-2P i+ P i+1;
曲线段的二阶导数矢量等于该曲线的两条边矢量P i-1-P i 和P i+1-P i 所构成的对角线矢量。(3)三次B 样条曲线
设空间P0 P1,…, P n为n+1 个控制点,其中每相邻四个点和构造出一段三次的样条函数。其中的第i 段三次B 样条函数P i(t)的矩阵表示为: