9个版本
0.0.1-alpha.8 | 2024年2月9日 |
---|---|
0.0.1-alpha.7 | 2024年2月8日 |
#516 in 数学
69 每月下载
150KB
3K SLoC
bsplines
Rust库
Rust库,用于基于nalgebra的向量化、N维B样条曲线及其导数。
🚧 本库正在建设中 🚧
- 使用迭代器并简化循环
- 使用
thiserror
- 重构可见性和文件夹结构
- 重构方法选择和设置结构
- 添加基准测试并提高性能
lib.rs
:
bsplines是一个基于[nalgebra]的库,用于向量化、N维B样条曲线及其导数。
特性
- 创建任意多项式次数
p
的N维(N
)曲线,其中N = 1, 2, 3, ...
- 对所有可用的导数
k
(其中k = 0, 1, ..., p)进行高效的曲线评估。
- 使用nalgebra构建,以连续数组存储点数据
- 多种方法进行
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