Длина эллиптической дуги - PullRequest
4 голосов
/ 30 июня 2010

Учитывая точку P на «каноническом» эллипсе, определяемом осями a, b и длиной дуги s, как мне найти точку Q, также на эллипсе, то есть sпо часовой стрелке вдоль эллиптической кривой от P - так что, если бы я начал с P и "шел по" эллиптической кривой на расстоянии s, я бы достиг Q - программно и не нарушая вычислительнуюбанк?

Я слышал, что это можно вычислить с помощью некоторой эллиптической интеграции, но мне нужно сделать это кучу и быстро.Я ищу простой в использовании, недорогой в вычислительном отношении и достаточно точный метод аппроксимации. Или, по крайней мере, метод, который является одной или двумя из этих вещей.Я буду реализовывать это в python.

Edit: в качестве альтернативы, я мог бы быть вынужден создать таблицу поиска значений положения вокруг эллипсов (мне может понадобиться только десятки разнородных эллипсов),Как мне это сделать, и какой метод я могу использовать для его заполнения?

Ответы [ 3 ]

3 голосов
/ 30 июня 2010

Вам нужно интегрировать уравнение эллипса.На самом деле это не сложно.

Взгляните на уравнения здесь:

http://mathforum.org/library/drmath/view/51945.html

Поскольку вы используете python, реализована Runge-Kutta для интеграциив Python здесь (хотя я не знаю лицензию):

http://doswa.com/blog/2009/04/21/improved-rk4-implementation/

Только на шаге 3 и 4 решения mathforum у вас уже есть значение для ds (длина дуги)) и вы хотите dx.

Найдя dx, выполните шаг 6, чтобы найти y.

1 голос
/ 01 июля 2010

Вы можете использовать scipy.special.ellipeinc для вычисления длины дуги.(Более подробную информацию дает Роджер Стаффорд здесь .)

Если этого недостаточно, вы можете обернуть вычисление длины дуги в функцию и использовать декоратор memize для кэширования результатов предыдущих (arclength) вызовов функций.

Или, как вы упомянули, вы можете предварительно рассчитать нужные значения и сохранить их в формате dict.

0 голосов
/ 19 октября 2015

Чтобы решить проблемы, вам нужна заклинание: в подразделении есть круг
а = 1, что он имеет тот же периметр, что и эллипс. Этот срок составляет 2ррп. тогда периметр P = 2πrp x a

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...