Измерение расстояния по эллипсу - PullRequest
6 голосов
/ 20 мая 2011

Предположим, у нас есть эллипс x ^ 2 / a ^ 2 + y ^ 2 / b ^ 2.

Взяв точку (a * cos (t), b * sint (t)) на эллипсе, какой самый быстрый способ найти другую точку на эллипсе, такую, чтобы расстояние между ними было заданным d. [d меньше чем pi * a * b].

Проблема возникла, когда у меня есть угловой [четвертый эллипс], и мне нужно найти точки вдоль него, разделенные каким-то «d».

Ответы [ 2 ]

3 голосов
/ 24 мая 2011

Длина подраздела эллипса представляет собой эллиптический интеграл без решения в замкнутой форме.

Чтобы рассчитать расстояние по эллипсу, вам понадобится процедура численного интегрирования. Я рекомендую Romberg, или Квадратуру Гаусса (посмотрите в Википедии). Если вы делаете это несколько раз, то предварительно вычислите расстояние через несколько точек вокруг эллипса, чтобы вы могли быстро добраться до нужной области, а затем начните интегрировать.

Вам нужно будет разделить пополам (посмотреть в Википедии), чтобы найти нужную длину.

0 голосов
/ 09 декабря 2016

Аналитического решения для длины эллиптической дуги не существует. Это означает, что вы не сможете вставить числа в уравнение, чтобы найти результат, но вместо этого используйте метод численного интегрирования.

Правило Симпсонов очень легко реализовать, хотя, скорее всего, оно медленнее, чем методы, упомянутые в других ответах.

Теперь, когда у вас есть способ найти длину эллиптической дуги, просто измеряйте разные конечные точки, пока не найдете одну из длины d с некоторым приемлемым допуском

...