Math 椭圆弧长

Math 椭圆弧长,math,Math,给定轴a、b定义的“标准”椭圆上的点p,以及弧长s,我如何在椭圆上找到点Q,也就是说,s从P顺时针沿着椭圆曲线,这样,如果我从P开始,沿着椭圆曲线“走”一段距离s,我会通过编程达到Q,而不会破坏计算库 我听说这可以通过某种椭圆积分来计算,但我需要快速地做一系列的计算。我要寻找的是一种易于使用、计算成本低廉且相当精确的近似方法。或者至少是一种可以作为其中一种或两种方法的方法。我将用python实现这一点 编辑:或者,我可能被迫创建椭圆周围位置值的查找表(我可能只需要10个不同的椭圆)。我应该怎么做

给定轴
a、b
定义的“标准”椭圆上的点
p
,以及弧长
s
,我如何在椭圆上找到点
Q
,也就是说,
s
P
顺时针沿着椭圆曲线,这样,如果我从
P
开始,沿着椭圆曲线“走”一段距离
s
,我会通过编程达到
Q
,而不会破坏计算库

我听说这可以通过某种椭圆积分来计算,但我需要快速地做一系列的计算。我要寻找的是一种易于使用、计算成本低廉且相当精确的近似方法。或者至少是一种可以作为其中一种或两种方法的方法。我将用python实现这一点


编辑:或者,我可能被迫创建椭圆周围位置值的查找表(我可能只需要10个不同的椭圆)。我应该怎么做?我可以用什么方法来填充它?

你需要积分椭圆方程。其实并不难

看看这里的方程式:

因为您使用的是python,所以这里使用python实现了Runge Kutta for integration(尽管我不知道许可证):

在mathforum解决方案的第3步和第4步中,您已经有了ds(弧长)的值,并且您想要dx

找到dx后,使用步骤6找到y。

您可以使用来计算弧长。(更多细节由罗杰·斯塔福德提供。)

如果速度不够快,可以将arclength计算包装在函数中,并使用缓存先前(arclength)函数调用的结果


或者,正如您所提到的,您可以预先计算所需的值,并将它们存储在一个目录中。

为了解决您需要的问题,您需要一个猜想:单位elipse中有一个圆

a=1,它的周长与elipse相同。这个perim是2πrp。周长P=2πrp x a

一致;真正的数学积分在计算上是最简单、最精确的。我认为提问者试图避免的是or意义上的“整合”,即在某一点上添加微小的
ds
,直到你达到所需的
s
。什么是
p
r
,以及
a
?最初的问题是沿着椭圆的一部分求弧长。你似乎在说,要找到整个椭圆的周长,你需要找到一个周长相同的圆的周长。这和“要找到周界,首先要找到周界”是一样的。