|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Dima Marakasov 2:5020/1826.5 20 Jun 2003 02:20:46 To : Kazantsev Alexey Subject : Геометрия (расчет расстояний) --------------------------------------------------------------------------------
19 Jun 03 13:29, Nick Kovaliov wrote to you:
NK> Если нет, тогда сравнивать
NK> расстояния до крайних точек.
Hа самом деле это не так:
V
_____(B),,,,,,................
___,,.,-s=`""" \
_.Ъo*j^"~`----- \
.*~ ~~~~~----- \
/ ~~~~~~------_____ \
[ (A) ~~~~~~----()
Точка (А) находится вне сектора, и, тем не менее, ближайшая точка на дуге (B) не
является концом этой дуги.
Я бы делал так:
Взять ур-е эллипса (x^2/a^2 + y^2/b^2 = 1) [центр - в начале координат, a,b -
радиусы), выразить отуда y, подставить в формулу длины ( r = sqrt( (x-x0)^2 +
(y-y0)^2 ) ). Получится ф-я r(x). Корень в ней можно просто отпросить, т.к. пока
ищем только критические точки (где r'(x)=0). Берем производную, приравниваем к
0. Решаем уравнение - получаем несколько x. Из ур-я эллипса для каждого из них
получаем y. Получаем несколько точек. Берем те из них, которые лежат на дуге +
концы дуги, считаем расстояния до кажой из них от A и берем min/max расстояния.
Dima
--- GoldED+/W32 1.1.4.7
* Origin: Стадо месопотамов (2:5020/1826.5)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/164703ef24564.html, оценка из 5, голосов 10
|