3

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

我有一组坐标(当前在 0,0 原点周围浮动 x、y 距离),我通过 Javascript 将其转换为纬度、经度坐标。(换位很容易,所以不用担心——我只是告诉你,让应用程序更清晰。)

其余的请参考下图:

例子

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

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

我想要的是有一个 Javascript 函数,它可以让我执行以下操作:指定这个系列中的两个连续点(x1,y1;x2,y2),指定中间的插值步骤数(比如 5 到 10 ),然后输出一个坐标数组,当线性链接时(即在它们之间画一条直线时),看起来像上面的红线(曲线的程度显然受步数的限制) .

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

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

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

我已经看过中点圆算法,发现很难适应这个目的(因为需要顺序性和非整数坐标);我还研究了各种样条插值方法,发现它们太复杂了,我的假人无法理解。

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

4

0 回答 0