我正在寻找一种可以连续点和连续曲线连接的算法。想象一下从点a到b到c的绘制直到最后一点,当你从一点到另一点绘制时,该线必须是一条曲线,并且相对于前一点和下一点是连续的,就好像给定的点只是样本一样一个闭环。请参见下图。
这样的算法是否有这样的算法?
*图中的圆圈是我的积分列表。
答案 0 :(得分:4)
鉴于你的点是有序的,样条插值绝对是最好的方法。 (正如bo1024评论所示)我强烈推荐以下注释:
http://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/
具体而言,这里的部分与你要求的闭环相关:
http://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/spline/B-spline/bspline-curve-closed.html
编辑:如果曲线必须通过这些点,则唯一度解n是拉格朗日插值多项式。您可以使用维基页面上的公式为点向量的每个分量创建一个多项式:
http://en.wikipedia.org/wiki/Lagrange_polynomial
不幸的是,如果点数太多,拉格朗日插值会非常嘈杂。因此,我仍然建议使用一些固定度样条插值。 Hermite多项式是另一种选择,而不是B样条:
http://en.wikipedia.org/wiki/Cubic_Hermite_spline
这些将保证曲线通过这些点。要获得闭合曲线,您需要在求解系数时重复曲线的前d个点,其中d是您用来逼近点的Hermite样条曲线的度数。
答案 1 :(得分:-2)
问题与travelling salesman problem非常相似,您可以扩展一些用于解决问题的算法以适合您的情况。
例如,进化算法很容易适应,你会发现很多关于使用它们来解决TSP的参考文献。