algorithm - 用于生成三次样条轨迹(不是插值)的库?

标签 algorithm geometry spline

一点背景。我有一个使用三次样条曲线进行一维轨迹的模拟。在此上下文中,三次样条将对象的位置、速度、加速度和加加速度指定为时间的函数。

如果你有:

  • 初始值和最终值 位置、速度、加速度和 时间
  • 常数值约束 最大和最小速度, 加速度和 SCSS

然后有一个独特的样条。如果你不指定最终时间,而是想要最小时间的轨迹,那么也有一个唯一的样条。

不过,实际上找到这些样条曲线可能是一件非常痛苦的事情。在指定时间的情况下,样条将由最多 7 个多项式组成,并且节点(多项式之间的过渡点)无法提前知晓。

这不是将样条拟合到一组数据的常见情况,它是根据边界条件和一些附加约束创建样条。我读过人们使用类似安排并有类似需求的论文,但我从未找到任何库(甚至源代码)来解决生成此类样条的问题。我已经编写了一些处理大多数情况的代码,但它不是非常健壮或快速。我不是很担心它会很快,但更健壮会很棒。

是否有任何图书馆可以做到这一点?开源代码,即使不是作为库构建?首选 C、C++、Java 或 Python,但如果它是开源的,其他语言作为引用仍然有用。

最佳答案

有一个用于 C++ 的开源 boost 库,它可能会帮助您完成一半。

我认为它具有您需要的所有基本构建 block (Legrendre/Laguerre/Hermite 多项式、求根等...),尽管它缺少实际计算样条曲线的功能。

库文档在这里,您可以自己查看:http://www.boost.org/doc/libs/1_45_0/libs/math/doc/html/index.html

关于algorithm - 用于生成三次样条轨迹(不是插值)的库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4362118/

相关文章:

c - 光线追踪球形纹理

r - 如何将 spline() 插值的 x 范围限制为 dplyr 中的第一个和最后一个非 NA 值?

javascript - Highcharts 单击后将新数据添加到系列中

寻找趋势 block 的算法

c++ - 如何将音频字节转换为样本

c++ - Eigen 二维叉积

delphi - 有没有一个函数可以将圆的度数移动到0以上?

python - 限速python装饰器

algorithm - 整理书籍 - 搜索相关问题

qt - Qml样条图中的异常