Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.29;
Скачать: CL | DM;

Вниз

Точка на отрезке, ближайшая к данной.   Найти похожие ветки 

 
alxx ©   (2003-07-15 12:13) [0]

Не подскажете, как найти координаты точки на отрезке, которая ближе всех к отрезку? Через синусы я могу вывести, но хотелось бы обойтись делением и умножением.


 
MBo ©   (2003-07-15 12:23) [1]

??

http://delphimaster.net/view/9-1057755124/
MBo © (09.07.03 17:21)


 
alxx ©   (2003-07-15 12:27) [2]

Я, если честно, схалявил в тот раз. Взял просто Sapersky_ (09.07.03 22:52).

Спасибо.


 
alxx ©   (2003-07-15 12:28) [3]

Что такое "дифференцируешь квадрат расстояния до точки"?


 
alxx ©   (2003-07-15 12:29) [4]

Поторопился с вопросом. Оказывается в Sapersky_ (09.07.03 22:52) есть прямой ответ и на этот мой вопрос.


 
MBo ©   (2003-07-15 12:40) [5]

отрезок xa,ya-xb,yb
точка x0,y0

lx=xb-xa
ly=yb-ya
dx=xa-x0
dy=ya-y0
ур-е прямой
X=xa+t*lx
Y=ya+t*ly
квадрат расстояния от точки x0 до точки прямой с параметром t
R^2=(lx*t+dx)^2+(ly*t+dy)^2
производная
2t(lx^2+ly^2)+2(dx*lx+dy*ly)
очевидно, квадрат расстояния имеет только минимум, в нем производная=0

t=-(dxlx+dyly)/(lx^2+ly^2)

подставляем t в ур-е прямой, находим кооординаты.
если t<0 и >1 - берем концы


 
alxx ©   (2003-07-15 13:04) [6]

Спасибо. Объяснили двоешнику.


 
neuro ©   (2003-07-15 17:58) [7]

> если t<0 и >1 - берем концы
это конечно опечатка, но как смотрицца 8)


 
MBo ©   (2003-07-15 18:05) [8]

>neuro
не опечатка, а недописька :)

Если t<0 - ближайшей точкой является конец A,
если t>1 - конец B



Страницы: 1 вся ветка

Текущий архив: 2004.01.29;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.012 c
8-93590
arcoant
2003-09-23 22:07
2004.01.29
OpenGL


1-93496
Карелин Артем
2004-01-19 10:55
2004.01.29
Показ хинта во время работы.


14-93633
Курящий
2004-01-08 17:30
2004.01.29
Курящим


8-93593
_SHURIK_
2003-08-29 14:33
2004.01.29
Проблема с Flash


1-93556
-=Mr.Cold=-
2004-01-17 14:47
2004.01.29
Окно как в FlashGet e