NURBS Curves

1. 定义

NURBS(Non Uniform Rational B-spline)曲线通常称为非均匀有理B样条曲线,其数学定义如下:
在这里插入图片描述
其中,
在这里插入图片描述
N i , p ( u ) N_{i,p}(u) Ni,p(u) p p p次B样条基函数, P 0 , P 1 , . . . , P n P_0, P_1, ..., P_n P0,P1,...,Pn为控制点, U = { u 0 , u 1 , . . . , u m u_0, u_1, ..., u_m u0,u1,...,um }为节点向量, w 0 , w 1 , . . , w n w_0, w_1, .., w_n w0,w1,..,wn代表权重.

推导过程:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

容易得到以下结论:

  1. 如果所有权重均等于1,NURBS 曲线退化成B样条曲线.
  2. NURBS 曲线是有理曲线.

2. 性质

2.1 NURBS基函数的性质

  1. R i , p ( u ) R_{i,p}(u) Ri,p(u)是关于 u u u p p p次有理函数.
  2. 如果 u ∉ [ u i , u i + p + 1 ) u∉[u_i,u_{i+p+1}) u/[ui,ui+p+1),则 R i , p ( u ) = 0 R_{i,p}(u)=0 Ri,p(u)=0
  3. u ∈ [ u i , u i + 1 ) u∈[u_i,u_{i+1}) u[ui,ui+1)时,至多存在 p + 1 p+1 p+1 p p p次基函数,即 R i − p , p ( u ) , R i − p + 1 , p ( u ) , . . . , R i , p ( u ) R_{i-p,p}(u), R_{i-p+1,p}(u), ..., R_{i,p}(u) Rip,p(u),Rip+1,p(u),...,Ri,p(u)非0.
  4. u ∈ [ u i , u i + 1 ) u∈[u_i,u_{i+1}) u[ui,ui+1)时, ∑ j = i − p i R j , p ( u ) = 0 \sum\limits_{j=i-p}^{i}R_{j,p}(u)=0 j=ipiRj,p(u)=0.
  5. 如果节点数量为 m + 1 m+1 m+1,B样条基函数的次数为 p p p,个数为 n + 1 n+1 n+1,则 m = n + 1 + p m=n+1+p m=n+1+p.
  6. 基函数 R i , p ( u ) R_{i,p}(u) Ri,p(u) k k k重节点 u u u C p − k C^{p-k} Cpk连续.
  7. 如果对所有的 i i i,均有 w i = c w_i=c wi=c,其中 c c c是一个非0常量,则 R i , p ( u ) = N i , p ( u ) R_{i,p}(u) = N_{i,p}(u) Ri,p(u)=Ni,p(u).

2.2 NURBS曲线的性质

  1. NURBS曲线是次数为 p p p的分段有理曲线组合.
  2. m = n + p + 1 m = n + p + 1 m=n+p+1.
  3. Clamped NURBS曲线经过 p 0 p_0 p0 p n p_n pn两个控制点.
  4. 强凸包性:
    u ∈ [ u i , u i + 1 ) u∈[u_i,u_{i+1}) u[ui,ui+1)时,曲线段 C ( u ) C(u) C(u) 在由控制点 P i − p , P i − p + 1 , . . . , P i P_{i-p}, P_{i-p+1}, ..., P_i Pip,Pip+1,...,Pi组成的凸包内.
  5. 局部修改特性:
    改变控制点 P i P_i Pi的位置,只会影响处在 [ u i , u i + p + 1 ) [u_i,u_{i+p+1}) [ui,ui+p+1)区间内的曲线段 C ( u ) C(u) C(u).
  6. C ( u ) C(u) C(u) k k k重节点 u u u C p − k C^{p-k} Cpk连续.
  7. 变差递减性.
  8. B样条曲线和贝塞尔曲线是NURBS曲线的特例.
  9. 投影不变性.

3. 修改权重

增加(或,减少)权重值会将曲线拉向(或,远离)控制点 P i P_i Pi。当 w i w_i wi值无穷大时,曲线通过控制点 P i P_i Pi,当 w i w_i wi为零时,控制点 P i P_i Pi对曲线无影响。

进一步推导:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可得以下结论:
如果 w k w_k wk为非负,则 C ( u ) C(u) C(u)始终位于 C 0 ( u ) C^0(u) C0(u) P k P_k Pk的线段上,其中 C 0 ( u ) C^0(u) C0(u) w k = 0 w_k=0 wk=0对应的点, u u u [ u k , u k + p + 1 ] [u_k,u_{k+p+1}] [uk,uk+p+1]中。并且,当 w k w_k wk从0变为无穷大时, C ( u ) C(u) C(u) C 0 ( u ) C^0(u) C0(u)移到 P k P_k Pk,如果 w k w_k wk是无穷大, C 0 ( u ) C^0(u) C0(u)变成 P k P_k Pk
示意图:
在这里插入图片描述

4. 相关算法

4.1 节点插入:单点插入

假设有 N + 1 N + 1 N+1个控制点 P 0 , P 1 , … , P n P_0,P_1,…,P_n P0P1Pn,其相关权值分别为 W 0 , W 1 , … , W N W_0,W_1,…,W_N W0W1WN,节点向量为 U U U,次数 p p p.
P i = ( x i , y i , z i ) P_i=(x_i,y_i,z_i) Pi=(xiyizi),则控制点 P i W = ( w i x i , w i y i , w i z i , w i ) P^W_i=(w_ix_i,w_iy_i,w_iz_i,w_i) PiW=(wixi,wiyi,wizi,wi) 0 < = i < = n 0<=i<=n 0<=i<=n,节点向量 U U U定义了一个 p p p次的四维B样条曲线。在这个四维B样条曲线中插入一个新的节点 t t t,得到一组新的控制点 Q i W = ( X i , Y i , Z i , W i ) Q^W_i=(X_i,Y_i,Z_i,W_i) QiW=(Xi,Yi,Zi,Wi) 0 < = i < = n 0<=i<=n 0<=i<=n。通过将 Q i W Q^W_i QiW的前三个分量除以第四个分量,将 Q i W Q^W_i QiW投影回三维空间,得到给定NURBS曲线的新的控制点集。

4.2 De Boor’s Algorithm

只需将每个控制点乘以其权重,将NURBS曲线转换为4D B样条曲线,在此4D B样条曲线上执行de Boor算法,然后通过将前三个分量除以第四个分量,并保留第四个分量作为其新权重,将生成的曲线投影回3D。

5. Rational Bézier Curves

有理贝塞尔曲线:

在这里插入图片描述在这里插入图片描述

6. Rational Bézier Curves: Conic Sections

构建圆锥曲线:
示意图:
在这里插入图片描述
计算:
在这里插入图片描述
在这里插入图片描述

抛物线:在这里插入图片描述
在这里插入图片描述

椭圆:
在这里插入图片描述
双曲线:
在这里插入图片描述

结论:
由三个非共线控制点 P 0 、 P 1 和 P 2 P_0、P_1和P_2 P0P1P2定义的有理Bézier曲线,当 w w w大于、等于或小于1时,分别为双曲线、抛物线或椭圆。

7. Circular Arcs and Circles

周期性的弧或圆:
示意图:
在这里插入图片描述
计算:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
结果:
在这里插入图片描述

完整圆的构建:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值