计算机图形学中的 B 样条曲线
先决条件 -贝塞尔曲线
B样条曲线的概念解决了贝塞尔曲线的缺点,众所周知,这两条曲线本质上都是参数化的。在贝塞尔曲线中我们面临一个问题,当我们改变任何控制点各自的位置时,整个曲线形状都会发生变化。但是这里在B样条曲线中,只有曲线形状的特定部分会受到控制点相应位置变化的变化或影响。
在B 样条曲线中,控制点对曲线形状进行局部控制,而不是像贝塞尔曲线那样全局控制。
改变控制点 P 1位置前的 B 样条曲线形状 –
改变控制点 P 1位置后的 B 样条曲线形状 –
你可以在上图中看到只有第 1 段的形状,因为我们只改变了控制点 P 1 ,而第 2 段的形状保持不变。
B样条曲线:
正如我们在上面看到的,B 样条曲线与控制点的数量无关,由平滑地连接几个线段组成,其中每个线段的形状由该线段区域中的一些特定控制点决定。考虑下面给出的曲线——
这条曲线的属性是——
- 我们上面有“n+1”个控制点,所以,n+1=8,所以n=7。
- 让我们假设这条曲线的阶数是'k',所以我们得到的曲线的多项式次数为“k-1”。按照惯例,'k' 的值必须在以下范围内:2 ≤ k ≤ n+1。所以,让我们假设 k=4,所以曲线度数将是 k-1 = 3。
- 该曲线的总段数将通过以下公式计算 -
总数seg = n – k + 2 = 7 – 4 + 2 = 5。
Segments | Control points | Parameter |
---|---|---|
S0 | P0,P1,P2,P3 | 0≤t≤2 |
S1 | P1,P2,P3,P4 | 2≤t≤3 |
S2 | P2,P3,P4,P5 | 3≤t≤4 |
S3 | P3,P4,P5,P6 | 4≤t≤5 |
S4 | P4,P5,P6,P7 | 5≤t≤6 |
B 样条曲线中的结点:
曲线的两条线段之间的点相互连接,这些点称为B 样条曲线中的节点。在三次多项式次数曲线的情况下,节点为“n+4”。但在其他常见情况下,我们有“n+k+1”个结。因此,对于上述曲线,总节点向量将是 -
Total knots = n+k+1 = 7 + 4 + 1 = 12
这些结向量可以是三种类型——
- 统一(定期)
- 开服
- 非制服
B样条曲线方程:样条曲线方程如下——
其中P i , k, t 分别代表曲线的控制点、度数、参数。
以下是x i 的一些条件如下 -
基函数的一些情况:
B样条曲线的性质:
- 每个基函数的所有参数都有 0 或 +ve 值。
- 除了 k=1 之外,每个基函数都有一个最大值。
- B样条曲线多项式的次数不依赖于控制点的数量,这使得它比贝塞尔曲线更可靠。
- B 样条曲线通过曲线每段上的控制点提供局部控制。
- 给定参数的基函数之和为 1。