Главная страница
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.019 c
3-93332
SASH2
2003-12-31 09:43
2004.01.29
Слитие баз?


1-93570
Drakon
2004-01-16 23:18
2004.01.29
Стиль Windows XP в Delphi 8 for .Net


7-93720
ponyol
2003-11-09 07:39
2004.01.29
Delphi и сканер.


14-93647
sapsi
2003-12-31 14:29
2004.01.29
Запрет работы приложения


1-93540
Zeon
2004-01-16 21:44
2004.01.29
Событийные процедуры.