📜  计算机图形学中的 B 样条曲线

📅  最后修改于: 2022-05-13 01:57:13.578000             🧑  作者: Mango

计算机图形学中的 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。
SegmentsControl pointsParameter
S0P0,P1,P2,P30≤t≤2
S1P1,P2,P3,P42≤t≤3
S2P2,P3,P4,P53≤t≤4
S3P3,P4,P5,P64≤t≤5
S4P4,P5,P6,P75≤t≤6

B 样条曲线中的结点:
曲线的两条线段之间的点相互连接,这些点称为B 样条曲线中的节点在三次多项式次数曲线的情况下,节点为“n+4”。但在其他常见情况下,我们有“n+k+1”个结。因此,对于上述曲线,总节点向量将是 -

Total knots = n+k+1 = 7 + 4 + 1 = 12

这些结向量可以是三种类型——



  • 统一(定期)
  • 开服
  • 非制服

B样条曲线方程:样条曲线方程如下——

\mathbf{Q(t)=\sum^n_{i=o} P_i* N_{i,k}(t)}\\ \textbf{Where \,}\mathbf{N_{i,k}}\textbf{ \,is Basis function of B-splne curve.}

其中P i , k, t 分别代表曲线的控制点、度数、参数。

\mathbf{N_{i,k}(t)=\frac{(t-x_i)*N_{i,k-1}(t)}{x_{i+k-1}-1}+\frac{(x_{i+k}-t)*N_{i+1,k-1}(t)}{x_{i+k}-x_{i+1}}}

以下是x i 的一些条件如下 -

\mathbf{x_i=0; if\,\,i\lt k;}\\ \mathbf{x_i=i-k+1; if\,\,k\le i\le n;}\\ \mathbf{x_i=0; if\,\,i\gt n.}

基函数的一些情况:

\mathbf{N_{i,k}(t)=\binom{1;\,\,if\,\,x_i\le t\le x_{i+1}}{0;\,else}}\\ \textbf{where\,}\mathbf{\,t_{min}\le t \le t_{max.}}

B样条曲线的性质:

  • 每个基函数的所有参数都有 0 或 +ve 值。
  • 除了 k=1 之外,每个基函数都有一个最大值。
  • B样条曲线多项式的次数不依赖于控制点的数量,这使得它比贝塞尔曲线更可靠。
  • B 样条曲线通过曲线每段上的控制点提供局部控制。
  • 给定参数的基函数之和为 1。