这是我第一次在这里发帖,所以我希望这没关系。我正在研究一个java项目,但我的问题是关于我将要使用的数学......
我在(x1,y1),(x2,y2)和(x3,y3)有三个(不同的)点。我所需要的只是它们之间形成的三次样条长度的公式。对于擅长微积分的人来说,这应该很容易推导出来。我在网上看了很多但似乎无法找到解决方案。同样,我甚至不需要样条的等式 - 只要它的长度,给出三点。提前致谢!如果有人可以解决这个问题并分享,那么你将会成功:)
答案 0 :(得分:1)
我有一些坏消息。
首先,立方b样条通常需要4个点来定义。可以从3个点定义一个,但它通常涉及以某种方式构成另一个点(例如,使用度数提升)。因此,我们需要获得有关您如何确定样条曲线的信息 - 如果它是其他类型的样条曲线(catmull-rohm?),或者您的详细信息构建它。
第二个问题是,对于b样条的长度,甚至是Bezier曲线,都没有闭合式。我通常做的是在很多点处对曲线进行采样,然后计算折线的长度。
根据曲线的导数,有些公式可以告诉你你的误差范围是什么,并且有些方法使用弧而不是线段进行近似,但这些方法可能比它们更复杂。值得。
答案 1 :(得分:0)
有关详细信息,请参阅primer on bezier curves。然而,遗憾的是,tfinniga对于需要使用近似的三次样条曲线是正确的。