#curve #b-spline #derivative #spline #nalgebra #graphics

no-std bsplines

基于nalgebra构建的N维B样条曲线及其导数

9个版本

0.0.1-alpha.82024年2月9日
0.0.1-alpha.72024年2月8日

#516 in 数学

Download history 31/week @ 2024-04-02

69 每月下载

Apache-2.0

150KB
3K SLoC

bsplines Rust库

Crates.io Docs.rs License

Rust库,用于基于nalgebra的向量化、N维B样条曲线及其导数。

🚧 本库正在建设中 🚧

  • 使用迭代器并简化循环
  • 使用thiserror
  • 重构可见性和文件夹结构
  • 重构方法选择和设置结构
  • 添加基准测试并提高性能

lib.rs:

bsplines是一个基于[nalgebra]的库,用于向量化、N维B样条曲线及其导数。

特性

B样条是什么?

B样条是参数函数,由多项式基函数组成,这些基函数是分段的,且多项式的次数为p > 0。这些分段多项式被连接起来,使得参数函数在p-1次上连续可微。整体函数在有限域上参数化,使用所谓的结点向量,其陪域是一个N维向量空间,由控制点定义。它们可以描述[曲线][curve],也可以描述曲面。这些特性导致了许多令人向往的性质。分段定义使B样条函数具有多功能性,可以插值或近似复杂形状和高维数据,同时保持多项式次数低。由于多项式性质,所有可能的导数都是可访问的。

![一个二维B样条曲线。][img-curve]

然而,评估或空间操作可以快速执行,因为只需要考虑局部多项式段,并且相关的数值过程是稳定的。最后,多项式代表一种存储空间信息的内存高效方式,因为很少的多项式系数就足以描述复杂的形状。

文献

Piegl1997 Piegl, L., Tiller, W. NURBS书。视觉通信专著。Springer,柏林,海德堡,第2版,1997。
Eilers1996 Eilers, P. H. C., Marx, B. D.,使用B样条和惩罚的灵活平滑,统计科学,11(2) (1996) 89–121。
Tai2003 Tai, C.-L., Hu, S.-M., Huang, Q.-X.,通过结点调整和约束优化近似B样条曲线的合并,计算机设计,35(10) (2003) 893–899。

依赖关系

~4MB
~80K SLoC