在由轴P
定义的'规范'椭圆和弧长a, b
上给出一个点s
,如何找到一个点Q
,同样在椭圆,沿着s
的椭圆曲线顺时针方向P
- 这样,如果我从P
开始并沿着椭圆曲线“走”,距离为{{1}我会以编程方式到达s
并且不会破坏计算库?
我听说过这可以通过某种椭圆集成来计算,但我需要快速完成这一过程。我正在寻找的是一种易于使用,计算成本低廉且相当准确的近似方法。或者至少是一种方法,即一种或两种方法。我将在python中实现它。
编辑:或者,我可能会被迫创建一个围绕省略号的位置值查找表(我可能只需要10个不同的省略号)。我该怎么做,我可以用什么方法来填充它?
答案 0 :(得分:3)
您需要整合椭圆方程。实际上并不困难。
看看这里的等式:
http://mathforum.org/library/drmath/view/51945.html
由于你正在使用python,所以用于集成的Runge-Kutta在这里用Python实现(不过我不知道许可证):
http://doswa.com/blog/2009/04/21/improved-rk4-implementation/
就在mathforum解决方案的第3步和第4步,你已经有了ds(弧长)的值,你想要dx。
找到dx后,使用步骤6找到y。
答案 1 :(得分:1)
您可以使用scipy.special.ellipeinc来计算arclengths。 (更多细节由Roger Stafford here提供。)
如果速度不够快,可以将arclength计算包装在一个函数中,并使用memoize decorator来缓存先前(arclength)函数调用的结果。
或者,正如您所提到的,您可以预先计算所需的值,并将它们存储在词典中。
答案 2 :(得分:-2)
为了解决你需要结合的问题:单位椭圆中有一个圆圈
a = 1,它在椭圆上具有相同的周长。那个周期是2πrp.your。那么周长是P =2πrpxa