B样条曲线与曲面相关知识点汇总

本文整理自西安交通大学软件学院祝继华老师的计算机图形学课件,请勿转载

B样条曲线与曲面

de Boor-Cox递推定义

image-20220215161853739

两个特殊观察

  • 基函数 N i , k ( t ) N_{i,k}(t) Ni,k(t) [ t i , t i + k ) [t_i,t_{i+k}) [ti,ti+k)上非零;
  • 在任何一个节点区间 [ t i , t i + 1 ) [t_i,t_{i+1}) [ti,ti+1), 最多有k个(k-1)次基函数非零: N i − k + 1 , k ( t ) , N i − k + 2 , k ( t ) , . . . , N i , k ( t ) N_{i-k+1,k}(t),N_{i-k+2,k}(t),...,N_{i,k}(t) Nik+1,k(t),Nik+2,k(t),...,Ni,k(t)

image-20220215162110303

性质

节点数目计算

如果节点数目是(m+1),函数的阶数是k,控制点的个数是(n+1),则m=(n+k)

基函数 N i , k ( t ) N_{i,k}(t) Ni,k(t) [ t i , t i + k ) [t_i,t_{i+k}) [ti,ti+k)上非零。

例题:

五个控制顶点的三次B样条曲线由几个节点构成?

解:

n = 4 , k = 3+1=4

m=n+k=8

节点数=m+1=9

局部性

需要注意定义域!!!

  • k阶B样条曲线上参数为 t ∈ [ t i , t i + 1 ] t\in[t_i,t_{i+1}] t[ti,ti+1]的一点至多与k个控制定点 P j ( j = i − k + 1 , . . . , k ) P_j(j=i-k+1,...,k) Pj(j=ik+1,...,k)有关,与其他控制顶点无关
  • P i P_i Pi只影响再区间 [ t i , t i + k ) [t_i,t_{i+k}) [ti,ti+k)上的曲线 P ( t ) P(t) P(t)
    • 基函数 N i , k ( t ) N_{i,k}(t) Ni,k(t) [ t i , t i + k ) [t_i,t_{i+k}) [ti,ti+k)上非零
  • 基函数 N i , k ( t ) N_{i,k}(t) Ni,k(t)在区间 [ t i , t i + k ) [t_i,t_{i+k}) [ti,ti+k)上都是次数不高于(k-1)的多项式

例:改变一条以P0,P1,…,P9为控制顶顶点的4阶B样条曲线的一个顶点P5,有几段曲线的形状会改变

移动曲线的第i个控制顶点Pi,至多影响定义在区间 [ t i , t i + k ) [t_i,t_{i+k}) [ti,ti+k)上的那部分曲线的形状,因此移动控制顶点Pi,曲线在 [ t 5 , t 9 ) [t_5,t_{9}) [t5,t9)区间会发生变化,即改变的了4段曲线的形状。

开曲线定义域

有k个基函数的支持,定义域是 [ t k − 1 , t n + 1 ] [t_{k-1},t_{n+1}] [tk1,tn+1]

举例

  • 使用节点向量 T = { 0 , 0.25 , 0.5 , 0.75 , 1 } T=\{0,0.25,0.5,0.75,1\} T={0,0.25,0.5,0.75,1},如果基函数是2阶的(即k=2),那么有三个基函数 N 0 , 2 ( t ) , N 1 , 2 ( t ) N_{0,2}(t),N_{1,2}(t) N0,2(t),N1,2(t) N 2 , 2 ( t ) N_{2,2}(t) N2,2(t)
  • 第一个和最后一个节点区间只有一个非零基函数,而第二和第三节点区间(即 [ 0.25 , 0.5 ) [0.25,0.5) [0.25,0.5) [ 0.5 , 0.75 ) [0.5,0.75) [0.5,0.75))有两个非零基函数。
  • 节点区间 [ 0 , 0.25 ) [0,0.25) [0,0.25) [ 0.75 , 1 ) [0.75,1) [0.75,1)没有基函数的“完全支持”。
  • 一般来说,区间 [ t 0 , t k − 1 ) [t_0,t_{k-1}) [t0,tk1) [ t n + 1 , u n + k ] [t_{n+1},u_{n+k}] [tn+1,un+k]不会有基函数的“完全支持”,当B样条曲线是开曲线时被忽略。

image-20220215163653030

尽管在两端的节点区间没有被利用,B样条曲线仍然是由所有控制点定义的

变差缩减性

设平面内 n+1 个控制顶点构成B样条曲线 P(t) 的特征多边形。在该平面内的任意一条直线与 P(t) 的交点个数不多于该直线和特征多边形的交点个数:

image-20220215163933373

造型灵活性

可构造直线段、尖点、切线等情况

  • 直线段:只要4点共线,此时定义在 P i , P i + 1 , P i + 2 , P i + 1 P_i,P_{i+1},P_{i+2},P_{i+1} Pi,Pi+1,Pi+2,Pi+1的曲线为直线
  • 通过某一点:只要使 P i , P i + 1 , P i + 2 P_i,P_{i+1},P_{i+2} Pi,Pi+1,Pi+2重合;尖点也可通过三重节点的方法得到
  • 相切:为了使曲线和某一直线L相切,只要取 P i , P i + 1 , P i + 2 P_i,P_{i+1},P_{i+2} Pi,Pi+1,Pi+2位于L上及 t i + 3 t_{i+3} ti+3的重数不大于2

image-20220215164821647

例子:

Q,Q1,Q2,S1,S2是平面上的5个点。请设计一条均匀三次B样条曲线,使曲线经过这5个点,且满足如下设计要求:

  • 在Q1,Q2点与Q Q1,Q Q2相切;
  • 分别在Q,Q1和Q,Q2间生成一段直线段;
  • 在Q是一尖点。

呃,说实话,前面也不知道是在干啥,但是根据上面结论可以做出来后面的几幅图

image-20220215165324671

image-20220215165333084

image-20220215165338253

image-20220215165342855

image-20220215165348477

image-20220215165354421

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hydrion-Qlz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值