计算机辅助几何设计期末作业
- 格式:pdf
- 大小:252.19 KB
- 文档页数:19
由此得到 Bezier 曲线的递推计算公式:
1 bik = (1 − t ) bik −1 + tbik+− 1 , k = 1,..., n, i = 0,1,..., n − k
3 p(t ) 为 R 2 中的一条曲线, 令 p (t ) = B0 , 则对 t ∈ [0,1] , 称为基于控制顶点 b0 , b1 , b2 , b3
的 Bezier 曲线。易知:
p ( t ) = (1 − t ) b0 + 3 (1 − t ) tb1 + 3 (1 − t ) t 2b2 + t 3b3
i = b i i ⎞ ⎛ bi −1 + ⎜ 1 − ⎟ bi , i = 0,..., n + 1 n +1 ⎝ n +1⎠
当原控制点为 (1,5), (9,1), (7,8), (3, 2) 时,升阶一次以后,两个控制多边形定义了相 同的 Bezier 曲线,如图 5 所示。
图 5 升阶:两个多边形定义了相同的三次曲线 2 B 样条曲线 虽然 Bezier 曲线较好地解决了整体形状控制问题,但仍存在连接问题和局 部修改问题。而 B 样条曲线不仅具有 Bezier 曲线的几何特征,而且还具有曲线
姓名:
学号:
专业:
计算机辅助几何设计期末作业
——基于 Bezier 曲线和 B 样条曲线的手绘图
姓名: 专业: 学号: 得分:
计算机辅助几何设计(Computer Aided Geometric Design)简称 CAGD, 主要研 究在计算机图像系统的环境下对曲线、曲面信息的表示、逼近、分析和综合。它 起源于飞机、船舶的外形放样(Lofting)工艺。随着计算机图形显示对于真实性、 实时性和交互性要求的日益增强, 计算机辅助几何设计在近几十年来得到了长足 的发展。 Bezier 曲线是法国雷诺(Renault)汽车公司的工程师 Bezier 在 1971 年给出的 一种由控制多边形定义曲线的方法。Bezier 曲线具有良好的几何性质,能简洁、 清晰地描述和表达自由曲线曲面,在 CAGD 中占有重要的位置。Bezier 曲线的 最大优点之一是:控制点如果构成凸多边形,即控制多边形是凸的,Bezier 曲线 也是凸的。无论在理论上还是应用上,我们都希望曲线整体要达到一定高的光滑 度。当设计一个复杂的曲线曲面时,希望用多张曲面或多条曲线拼接而成,那么 在相接的地方要求光滑,这时就要用到连续性的概念。我们应用 B 样条方法实 现曲线的光滑拼接。 B 样条曲线是由许多的多项式曲线段组成, 它比 Bezier 曲线 更加灵活通用。 本文首先针对 Bezier 曲线的造型问题做了一系列的理论阐述与实践,然后 进一步针对 B 样条曲线的造型问题, 从手绘图形中读入数据点集合 {d i } , 将其作 为 de Boor 控制点,进而运用 B 样条方法,输出平滑后的曲线。最后综合运用 Bezier 方法及 B 样条方法开展几何设计。 1 Bezier 曲线 1.1 Bezier 曲线的定义 给定 n + 1 个空间向量 bi ( i = 0,1,..., n ) ,则 Bezier 曲线段的 n 次参数方程表示 如下:
1 b00b0 1 0 b0 b1
=
b10b11
0 b11b2
=
1 2 b0 b0 1 b02b1
这就是抛物线的三切线定理。
0 0 当 b0 , b2 固定,引入参数 t ,令上述比值为 t : (1 − t ) ,即有:
1 b0 = (1 − t ) b00 + tb10 0 b11 = (1 − t ) b10 + tb2 1 1 b02 = (1 − t ) b0 + tb1
n
(i = 0,1,....n)
n
由于 ∑ Bi ,n (t ) 恰好是二项式 [t + (1 − t )]n 的展开式,从而有 ∑ Bi , n (t ) ≡ 1 。
i =0 i =0
在二维平面中,bi 是平面上的一系列点,t 在 0 到 1 之间取值。 任意取定 [0,1] 之间的某个 t 可以得到一个 p (t ) (即平面上一个点) ,随着 t 的不断变化,点也随 之改变。当 t 从 0 变到 1 时,就得到平面上的一条曲线,该曲线就是 Bezier 曲线。 下面用一个例子来解释该方法:给定四点 b0 , b1 , b2 , b3 ,用下面方法构造一条 曲线:对任意 t ∈ [0,1] ,取
t 从 0 变到 1,第一、二式是两条一次 Bezier 曲线。将第一、二式代入第三式得:
0 b02 ( t ) = (1 − t ) b00 + 2t (1 − t ) b10 + t 2b2 2
0 0 当 t 从 0 变到 1 时, 它表示了由 b0 三个控制顶点形成的一条二次 Bezier , b10 , b2
图 6 山峦耸立 2.2 C1的二次B样条闭曲线
4
姓名:
学号:
专业:
的二条二次 Bezier 曲线的线性组合。由 n + 1 个控制点 bi0 ( i = 0,1,..., n ) 定义的 n 次
Bezier 曲线 b0n ( t ) 可被定义为分别由前、后 n 个控制点定义的两条 n − 1 次 Bezier
曲线 b0n −1 ( t ) 和 b1n −1 ( t ) 的线性组合:
用 de Casteljau 算法绘制的 Bezier 曲线如图 4 所示。
图 4 de Casteljau 算法绘制 Bezier 曲线 1.3 Bezier 曲线的升阶公式 假设用上面介绍的方法设计一个 n 次 Bezier 曲线。在对多边形多次修改后, 可以发现 n 次曲线不具有充分的灵活性来模拟所要求的形状。在这种情况下,一 个可行的方法就是通过再增加一个顶点来增加多边形的灵活性。增加了一个顶 点,曲线的次数也就增加了 1,但仍要求保持曲线的形状不发生改变。因此,我
维图形中。但是如何快速、准确地绘制曲线仍是一个问题。通常的绘制方法是令
t 取 0 到 1 之间不同的值,求出 Bezier 曲线上的很多点,然后将这些点用小直线
段相连,从而绘出 Bezier 曲线。 1.2 Bezier 曲线的递推(de Casteljau)算法 根据 Bezier 曲线的定义确定参数方程绘制 Bezier 曲线,因其计算量过大,
这便是 de Casteljau 算法。用这一递推公式,在给定参数下,求 Bezier 曲线上一 点 p (t ) 非常有效。上式中:bi0 ( i = 0,1,..., n ) 是定义 Bezier 曲线的控制点,b0n ( t ) 即 为曲线 p (t ) 上参数为 t 的点。
0 下面给出一个具体的例子:当 b00 = (1,1) , b10 = ( 2,5 ) , b2 = ( 6, 7 ) , b30 = ( 9,3) 时,
3 2
给定四点 b0 , b1 , b2 , b3 所得的 Bezier 曲线如图 1 所示。
2
姓名:
学号:
专业:
图 1 四个控制点的 Bezier 曲线 类似于上述例子,现从手绘图形中读入数据点集合 {bi } ,将其作为控制点绘 制图形,如图 2 所示。
图 2 更高阶的 Bezier 曲线
Bezier 曲线是图形学中最基本、最重要的内容之一,它广泛应用于二维和三
给定节点序列,通过给定的de Boor控制点计算出满足C1条件的Bezier控制 点,然后运用分段de Casteljau算法,绘制相应的满足C1条件的二次B样条曲线。 具体过程如下:
(1) 令 b0 = d −1 , b2l = dl ; (2) 令 b2 j −1 = d j −1 , j = 1,..., l ; (3) 令 b2 j =
∑b B
i =0 i
n
n i
(t )
= (1 − t + t )∑ bi Bin (t )
i =0
n
= ∑ bi (1 − t ) Bin (t ) + ∑ bi tBin (t )
i =0 n i =0
n
n
= ∑ bi
i =0
n n − i + 1 n +1 i + 1 n +1 Bi (t ) + ∑ bi Bi +1 (t ) n +1 n +1 i =0
n +1 n − i + 1 n +1 i n +1 Bi (t ) + ∑ bi −1 Bi (t ) n +1 n +1 i =0 i =0 n +1 n +1− i i = ∑( bi + bi −1 )Bin +1 (t ) n + 1 n + 1 i =0
= ∑ bi
n +1
比较参数就可以得到所求的结果:
6
姓名:
学号:
Hale Waihona Puke 专业:形状局部可调及连续阶数可调等 Bezier 曲线所没有的特征。一条 B 样条曲线由 许多多项式曲线段组成,曲线段可以用 de Boor 算法进行处理。 2.1 C1的二次B样条曲线 一条C1的二次B样条曲线是由下面几点定义的:
(1) 每个曲线段的次数小于等于 2; (2) 节点序列 t0 < ... < tl , Δ j −1 = t j − t j −1 , ( j = 1,..., l ) ; (3) de Boor 控制点为 d −1 , d 0 ,..., dl −1 , dl 。
0 ,..., b n +1 的曲线来描述原来顶点为 b ,..., b 的曲线。为了实现这 们要用控制点为 b 0 n