Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.011 c
14-93661
@ndrey
2004-01-08 01:20
2004.01.29
Знатоки, есть ли Винда ХР Server?


7-93725
Shaman%20O%20Mega
2003-11-13 14:48
2004.01.29
Загрузка процессора


9-93323
Xandr
2003-07-14 08:03
2004.01.29
DelphiX MIDI


6-93613
strong
2003-11-24 13:57
2004.01.29
проблема com/ip


1-93440
Lkan
2004-01-16 07:16
2004.01.29
динамический массив




   Наверх