Javascript spline / arc interpolation for dummies

时间:2013-05-20 16:47:44

标签: javascript interpolation spline

我正在做一些我正在做的工作;我在这里搜索了许多关于数值插值的线程,并发现它们要么包含太多的数学运算来解释它们,要么它们的编码解决方案过于具体而无法推广到我正在处理的任务上

我有一组坐标(目前浮动x,y距离在0,0原点附近),我通过Javascript转置到纬度,经度坐标。 (换位很简单,所以不要担心 - 我只是告诉你要使应用程序更清晰。)

其余的,请参考下图:

example

点是坐标。 (它们是通过算法生成的。)蓝线表示点之间的简单线性插值。我想要的是更像红线的东西。它不是相当椭圆 - 您可以看到围绕第一个坐标,它形成几乎像一个完美圆形的弧。

请注意,某些点在各个地方都是负面的。请注意,它们之间的线必须按顺序绘制 - 一种不按顺序生成点的算法将使这个应用程序更加困难。

我想要的是有一个允许我执行以下操作的Javascript函数:指定此系列中的两个连续点(x1,y1; x2,y2),指定其间插入的步数(例如, 5到10),然后输出一个坐标数组,当线性链接时(也就是说,当它们之间画一条直线时),看起来像上面的红线(曲线的程度明显受到数字的限制)步骤)。

在所有许多样条函数中,哪些满足这些要求?对于我来说,样条函数的数学精度不如简单地将其适应于此目的,以及它的美学输出。我也可以手动设置每组坐标的偏心率/圆度(所以第一个真的应该是圆形的,但后者不应该是)。

换句话说,我正在寻找一个简单的函数来获取任意两组坐标之间的弧的内部坐标。编辑澄清我很好,有一个第三个变量设置弧的倾斜(正或负)及其偏心或其他。该函数不一定必须知道上图中的位置,我将知道这一点。我只是在寻找可以帮助我插入弧点的东西。

我想我理解问题的参数;我擅长的是几何,并将数学答案转化为可用的Javascript。 (因为我不真的理解数学。)

我已经查看了Midpoint circle algorithm并发现很难适应这个目的(因为需要顺序性和非整数坐标);我也查看了各种spline interpolation methods,发现它们太复杂了,我的虚拟自我无法理解。

任何指针,帮助和代码都将不胜感激!

0 个答案:

没有答案