计算机辅助几何设计大作业
次数。 由这个公式我们可以看出,要确定第 i 个 k 次 B-样条 N i ,k (t ) , 需要用到 k 2 个节点:
ti , ti 1 , , ti k 1. 那么我们把区间 ti , ti k 1 叫做 N i ,k (t ) 的支撑区间。支撑节点左端节点的下
标就是 N i ,k (t ) 的第一个下标,也就是表示这个 B-样条在参数 t 轴上的位置。相应的曲线方 程 中 的 n 1 个 控 制 顶 点 Pi (i 0,1, , n) , 要 用 到 n 1 个 k 次 B- 样 条 基 函 数
k 1 个顶点有关。
除此之外,这个局部性质也表明,在曲线定义域内,控制顶点 Pi k , Pi k 1 , , Pi 及相应
的 B-样条基函数决定了定义在非零节点区间 t [ti , ti 1 ] 上那一段 k 次 B-样条曲线段,与其 余要素没有关系。于是,往下标下降的方向错一个顶点,即 Pi k 1 , Pi k , , Pi 1 那 k 1 个控 制 顶 点 就 定 义 了 [ui 1 , ui ] 上 的 那 一 段 曲 线 。 往 下 标 增 加 方 向 错 过 一 个 顶 点 , 即
Bezier 曲线有下列的性质: (1)断点插值: P (0) P0 , P (1) P 1. (2)与首边和终边相切: P (0) n( p1 p0 ), P (1) n( Pn Pn 1 ). (3)仿射不变性:即对任何仿射变换 有 P (t )
' '
( P ) B
j
i
j ,k
(t ), t [t i , t i 1]
从上 式可以看 出 B- 样条 曲线的局 部性质 ,也就是 k 次 B- 样条 曲线上定 义域内 参数为 t [ti , ti 1 ] 的一点 P (t ) 不是和所有的顶点有关,而是至多与 P j ( j i k , i k 1, , i ) 这
i 0 i
n
i ,n
(t ).
(4)凸包性: 即 P (t ) 落在由控制多边形生成的凸包内. (5)变差减缩性:即任一条直线与 P (t ) 的交点的个数都不超过该直线与控制多边形交点的 个数. 根据 Bezier 曲线的定义确定的参数方程绘制 Bezier 曲线, 因其计算量过大, 只适合计 算机辅助绘图。 另一方面, 计算机绘制的曲线实际上是由计算出的很密的点连接而成, 而在 工程研究中, 往往需要知道给定的 t 值对应的 Bezier 曲线上的点 P(t)的准确位置。 3 B 样条曲线的研究 早在 1946 年舍恩伯格 (Schoenberg) 提出了关于 B-样条的理论, 但是他的论文直到 1967 年才发表出来。德布尔(De Boor)与考克斯(Cox)在 1972 年分别独立地给出了关于 B样条计算的标准算法。戈登(Gordon)与里森费尔德(Riesenfeld,1974)在研究研究贝齐尔 方法的基础上引入 B-样条方法,使其成为 CAGD 中的一个形状数学描述的基本方法。 B-样条方法保留了大部分的贝齐尔方法的优良性质,同时避免了贝齐尔曲线方法的缺 点,关于曲线形状的局部控制的问题也得到了较好的解决,同时对曲线、曲面间的连接问题 也利用参数连续性得到了基本解决。 B-样条曲线方程可以表示为
N j ,k (t )( j i k , i k 1, , i ) ,其他 k 次 B-样条在该点处均为零。
考察式(1)表示的 B-样条曲线定义的区间 t [ti , ti 1 ] 上那一曲线段,略去其中基函数 取零值的那些项,则可表示为:
ቤተ መጻሕፍቲ ባይዱ
P (t )
j i k
PN
k r
t ti t t 与 i k 1 ,其中,参数 t 把第 i 个 k 次 B- 样条 ti k ti ti k 1 tt i
0 若ti t ti k 1 ,可以看出,非负性也包含在其中了; N i ,k (t ) 0 其他 在节点区间内部它是无限次可微的,在 r 重节点处它是 k r 次可微的,即
Pi k 1 , Pi k 2 , , Pi 1 那 k 1 个控制顶点就定义了 [ui 1 , ui 2 ] 上的一段曲线段。可见增加或减
少一个控制顶点,样条曲线相应增加或减少了一曲线段。 另个方面,变动顶点 Pi 将使曲线方程(1)右端 Pi N i ,k (t ) 那项发生变化。与 Pi 相联系的 基函数 N i ,k (t ) 具有支撑区间 [ti , ti k 1 ]. 它在其支撑区间所含的 k 1 个节点区间上都可能取 得非零值。而且在曲线定义域内,定义在这 k 1 个节点区间上的每段 B-样条曲线段方程里 都含有 Pi N i ,k (t ) 。这样,这些 B-样条曲线部分就都与 Pi 有关,就都受到影响。于是我们得 到:调整第 i 个控制顶点 Pi 不是对整条 B- 样条曲线都有影响,这至多只影响定义在区间
P (t ) PB i i , n (t )
i 0
n
0 t 1
式中 Pi (i 0,1, , n) 为折线多边形的顶点。
Bi ,n (t ) 称伯恩斯坦基函数 Bi ,n (t ) Cni t i (1 t ) n i
i Cn
n! i !(n i )!
(i 0,1, , n )
N i ,k (t ) (i 0,1, , n) , 定义这一组 B-样条基的节点矢量 U [t 0 , t1 , , t n k 1 ] 是它们的支撑
区间所含的节点的并集。 递推公式表明, k 次 B-样条 N i ,k (t ) 可由两个 k 1 次 B-样条 N i ,k 1 (t ) 与 N i 1,k 1 (t ) 递推 得到。其线性组合的系数分别为
(Inner Mongolia University for the Nationalities College of Mathematics, Inner Mongolia Tongliao 028000 )
Abstract: This paper briefly describes the historic background of computer-aided geometric design and concept of Bezier curve and B-spine curve. Key words: Computer-aided geometric design; Bezier curve; B-spine curve 1 引言 计算机辅助几何设计(CAGD)主要研究以复杂方式自由变化的曲线曲面,即所谓的自 由型曲线曲面,其中参数曲线曲面造型与形状调整是 CAGD 的一个重要内容。它起源于汽 车制造、飞机、船舶的数学放样和外形设计,随着计算机的出现二产生并迅速发展起来的一 门独立的新兴交叉学科。它与近代数学的许多分支学科,如应用数值分析、逼近论、微分几 何、应用计算方法、代数几何学、高等代数、拓扑学、微分方程与偏微分方程、分形学、小 波分析等,并与一些应用性较强的现代科技知识相互渗透,如计算几何、实体造型、图形图 像学、数据结构、计算机程序语言、机械设计和加工制造等学科,是计算机辅助设计、计算 机辅助制造等应用系统设计开发的理论基础。CAGD 主要解决在计算机图像系统的环境下 对几何外形信息的计算机表示、逼近以及用计算机控制、分析有关形状信息等问题。随着计 算机技术的飞速发展, 计算机辅助几何设计在近三十年来也得到了飞速发展。 其研究工作开 始于二十世纪六十年代, 在几代学者的共同努力下, 曲线曲面的表示和造型已形成了较为完 备的几何理论体系。CAGD 的造型方法和相关的理论已广泛地应用于其他技术领域,如游 戏动画制作、计算机视觉、工业造型、建筑设计等。 曲线曲面造型理论是 CAGD 和 CG(Computer Graphics: 计算机图形)的重要的内容 之一,即研究用计算机来表示、分析、显示和设计关于曲线曲面的相关问题自上世纪六十年 代由 Coon、Bezier 等大师奠定其理论基础以来,已经取得了长足的发展。 工业产品的外形一般可分为两大类:一类是如平面、圆、圆锥面、柱面、球面、等解析 曲面组成的外形, 许多的机械零件都是归属于这一类, 通过利用画法几何和机械制图就可以 清楚地表示、 传递它内存的形状信息。 第二类通常是不能借助初等解析式来表示的曲面构成, 而是以较为复杂的方式自由变化的曲线曲面, 也就是通常意义下的自由形状的曲线、 曲面构 成,例如轮船、汽车、飞机等零部件外形。CAGD 的主要研究对性是自由形状的曲线、曲 面,CAGD 的首要任务是建立曲线或曲面的数学模型,即利用直观有效的曲线曲面造型设 计技术来对曲线曲面进行恰当的表示、 清晰的显示和快速的处理。 自由曲线曲面通常用参数 方程来表示,相应的曲线或曲面被称为参数曲线或参数曲面。 2 Bezier 曲线的研究 Bezier曲线是以“逼近”为基础, 先勾画折线多边形、然后用光滑的参数曲线去逼近这
P (t ) N i ,k Pi , t k t t n 1, n k .
i 1
n
(1)
其中, {Pi }i 1 R 为控制顶点,
n
3
1 ti t ti 1 N i ,0 (t ) 0 其他 t ti t t N i ,k 1 (t ) i k 1 N i 1,k 1 (t ) N i ,k (t ) t t t t i k i i k 1 t i 0 规定 0 0 N i ,k (t ) 由两个下标,其中第一个下标 i 表示基函数的序号,第二下标 k 表示基函数的
的;
(4)规范性
N
i
i ,k
(t ) 1.
2. B-样条的局部性质 区间 [ti , ti k 1 ] 是 k 次 B-样条 N i ,k (t ) 的支撑区间,B-样条的次数 k 不会影响到它的左端 节点 ti 的下标,但会影响右端节点 ti k 1 的下标,也就是次数 k 会影响到支撑区间包含的节 点区间数(含零长度区间) 。 k 次 B-样条的支撑区间中包含了 k 1 个节点区间。所以在参 数 t 轴 上 任 意 一 个 点 t [ti , ti 1 ] 处 , 就 至 多 只 有 k 1 个 非 零 的 B- 样 条