B样条是无理的,组成无理B样条曲线或曲面。有理曲线或曲面可以精确地表示圆锥截面。非均匀有理B样条(Non-Uniform Rational B-Splines, NURBS)就是为了表达更精确的曲面引入的,其控制顶点包含权重。NURBS的基函数与B样条不同,但结点向量、张量积的性质和细分规则是不变的。
1 几何角度
在 R d \mathbb{R}^d Rd空间的NURBS实体通过在 R d + 1 \mathbb{R}^{d+1} Rd+1空间的B样条实体投影得到,其中 d d d是维数。图1说明了一个在 R 2 \mathbb{R}^2 R2空间的半圆 C ( ξ ) C(\xi) C(ξ)是如何通过在 R 3 \mathbb{R}^3 R3空间的二次B样条曲线 C w ( ξ ) C^w(\xi) Cw(ξ)得到的。
控制顶点 P i \mathbf{P}_i Pi的表示如下
( P i ) j = ( P i w ) j w i j = 1 , … , d (1) (\mathbf{P}_i)_j=\frac{(\mathbf{P}_i^w)_j}{w_i} \quad j=1,\dots,d \tag{1} (Pi)j=wi(Piw)jj=1,…,d(1)
其中 w i = ( P i w ) d + 1 w_i=(\mathbf{P}_i^w)_{d+1} wi=(Piw)d+1而 P i w \mathbf{P}_i^w Piw是“投影控制顶点”。权重 w i w_i wi在几何上是“投影控制顶点”的“高”,见图1。也就是说 R d \mathbb{R}^{d} Rd维的NURBS实体中的控制顶点,是维的B样条控制顶点前几维分量除以最后一维分量得到的。
从几何上来讲,在NURBS中进行结点插入首先要将NURBS中的控制顶点投影到 R d + 1 \mathbb{R}^{d+1} Rd+1维空间,之后使用B样条结点插入公式计算插入后的控制顶点,最后再将其投影到 R d \mathbb{R}^d Rd维空间得到新的NURBS控制顶点。
2 代数角度
NURBS曲线的基函数表示为
R i p ( ξ ) = N i , p ( ξ ) w i W ( ξ ) = N i , p ( ξ ) w i ∑ i ^ = 1 n N i ^ , p ( ξ ) w i (2) R_{i}^{p}(\xi)=\frac{N_{i, p}(\xi) w_{i}}{W(\xi)}=\frac{N_{i, p}(\xi) w_{i}}{\sum_{\hat{i}=1}^{n} N_{\hat{i}, p}(\xi) w_{i}} \tag{2} Rip(ξ)=W(ξ)Ni,p(ξ)wi=∑i^=1nNi^,p(ξ)wiNi,p(