曲线均匀分布_曲线篇:深刻理解B 样条曲线(下)

本文深入探讨B样条曲线的clamped特性,解释为何曲线端点经过控制点并拥有特定切线方向。同时阐述B样条的导数仍为B样条,保持其优良特性,并讨论控制点移动对曲线形状的影响。文章适合对曲线分布有研究需求的读者。
摘要由CSDN通过智能技术生成

561c23eac95ce628b3601d351d60f562.png

前两篇中讲解了贝塞尔曲线和B样条基础。

FrancisZhao:曲线篇: 贝塞尔曲线​zhuanlan.zhihu.com
d7f77037a40524e2730acf6a7e6f5c6b.png
FrancisZhao:曲线篇:深刻理解B 样条曲线(上)​zhuanlan.zhihu.com
72efa9fde37db1b9a5e9f2a1daee93b6.png

本文讲一下B样条的进阶

clamped B样条

由于我们常用的B样条是clamped B样条,我们就直接以其为例。

一个由n + 1 控制点和一个节点向量U = { u0, u1, ...., um } 定义的 p次B-样条曲线C(u),其中前p+1个和最后 p+1个节点是 "clamped" (即,u0 = u1 = ... = upum-p = um-p+1 = ... = um).

比如 3次clampedB样条,节点向量可以为[0 0 0 0 0.3 0.6 0.9 1 1 1 1].

在下图中,其中n = 10, m = 14 和p = 3, 头四个节点和最后四个节点是clamped而中间7个节点上均匀分布的。有8个节点区间,每个对应于一个曲线段。在下面左图,这些节点点以三角形标示。

节点区间[0 0 0 0 1/8 2/8 3/8 4/8 5/8 6/8 7/8 1 1 1 1].

fde0e8dc506d4cf5322a49ade07d3536.png
方形为控制点,三角形为节点

18f4eb26e52f886f54297673b401482c.png
为同样控制点的贝塞尔曲线,与上图对比

0d08ab2eaba21339de1d3d0e112e9e42.png
分别为7次5次3次B样条曲线

以上几组中, 体现了clamped B样条的关键两个特性,1 曲线的端点经过头尾的控制点 2 曲线的首位切线方向和分别与第一第二,倒数第一第二的控制点组成的直线方向相同。

那么为什么clamped B样条会会有这种特性呢?

如果你不能回答这个问题, 那么实际上就没有理解B样条的性质.

这 要回到B样条基函数计算的的本身

7759e54081360912bc3a11b63d67c877.png
假设仅仅有7个节点

假设我们仅仅有7个节点, 如果 u0=u1=0, u2不为0, 那么区间[u0 u1)就是[0 0 ), 这个区间是不存在的, 所以基函数N0,0就是为0.

这个在上图中的意思, 当有6个控制点的时候, B样条是0阶曲线, 那么N0,0是0, 所以控制点P0根本就没有用上, 因为系数一直是0.

假设u0=u1=u2=0, u3不为0. 那么对于0阶b样条来说, N0,0 N1,0,都为0, 控制点P0 P1都没有用上. 对于1阶B样条, N0,1为0, 所以第一个控制点P0也是没有用上.对于2阶B样条, N0,2,不为0了, 因为是N2,0不为0. 所以N0,2 仅仅由N1,1决定, N1,1仅仅由N2,0决定.

a007dd3f28a32905ecc79df7f9501559.png

再回头看B样条的基函数公式, u趋近于0的时候N0,2的系数是趋近于1的, 因此必然经过P0点.

因此也可以清楚,如果我认为B样条的局部是具有贝塞尔的性质,那么最大的区别就是基函数的作用范围,贝塞尔的所有基函数都是作用在整个区间,但是B样条有着明确的作用范围,这个性质导致了B样条没有必然通过控制点端点的性质。

B样条的导数:

先讲clamped B样条

既然B样条是贝塞尔曲线的扩展,那么必然要继承贝塞尔曲线一些优良的性质。贝塞尔曲线的导数还是贝塞尔, B样条的导数还是B样条。

接下来看推导公式:

6e1bab9bbeef3953c3ede76bb53ffcf6.png
B样条公式

6d28c1aa7b2638f2155fe9c83f2ee069.png
基函数求导

6d28c1aa7b2638f2155fe9c83f2ee069.png
基函数求导为低一阶的基函数求导

694b9d8b2635751a119052d1296294b0.png
最终的基函数求导

3a00342037d7f3332188c20ac5c799e7.png

因此,可知,B样条的导数还是B样条, 依然保留B样条的优良特性。

控制点减1,阶数减1,那么节点数目必然是减2. 对于clamped B样条,只要是去除第一个和最后一个节点就ok了,因此clamped B样条的求导还是clamped B样条,这个性质使其方便计算,应用广泛。

移动控制点

强凸包性质,如果u位于 [ui,ui+1),那么 C(u) 位于由控制点Pi, Pi-1, ..., Pi-p+1, Pi-p定义的凸包内。

可以理解为B样条为分区间的贝塞尔曲线,因此必然满足贝塞尔的凸包性质。

如果在 [ui,ui+1)区间,Pi, Pi-1, ..., Pi-p+1, Pi-p都在同一直线上,那么这一段B样条必然也在这个直线上。

ok,如果你已经掌握了这些知识,那么恭喜你,已经入门了。

专栏里每一篇都是我一个字一个字打的,都是我认为的原创干货。
欢迎指正讨论,转载请注明,认同请点赞。
这个系列的文章很容易出错,希望大佬们多多指正补充。
仅仅收藏是学不会的,还得点赞喜欢加转发啊。

6fc0ae91d5f68e3c4d72f1ece1a52137.png
FrancisZhao:专栏文章列表以及一些说明​zhuanlan.zhihu.com
f53088419e621ea9f692f1cdb377a6e5.png

本文的主要参考资料:

搜索结果提示 - 博客园找找看
CS3621 Introduction to Computing with Geometry Course Notes
B-样条曲线教程(B-spline Curves Notes)目录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值