这是我第一次在这里发帖,所以我希望这没问题。我正在做一个 java 项目,但我的问题实际上是关于我将用于它的数学......
我在(x1,y1),(x2,y2)和(x3,y3)有三个(不同的)点。我所需要的只是一个公式,说明它们之间形成的三次样条的长度。对于擅长微积分的人来说,这应该很容易推导出来。我在网上四处寻找,但似乎找不到解决方案。同样,我什至不需要样条的方程 - 只需要它的长度,给定三个点。提前感谢!如果有人能弄清楚并分享这一点,你就会:)
我有一些坏消息。
首先是立方 b 样条通常需要 4 个点来定义。 可以从 3 个点定义一个点,但它通常涉及以某种方式弥补另一个点(例如,使用度提升)。 因此,我们需要了解您如何准确定义样条曲线 - 如果它是其他类型的样条曲线(catmull-rohm?),或者您如何构建它的细节。
第二个是b样条的长度没有闭式方程,甚至贝塞尔曲线也没有。 我通常做的是在很多点上对曲线进行采样,然后计算折线的长度。
有些公式可以根据曲线的导数告诉您误差边界是多少,并且有些方法使用弧线而不是线段近似,但这些方法可能比它们的价值更复杂。
有关详细信息,请参阅贝塞尔曲线入门。 然而,可悲的是,tfinniga 对于需要使用近似的三次样条是正确的。