![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Точка на отрезке, ближайшая к данной.
alxx © (2003-07-15 12:13:00)
Не подскажете, как найти координаты точки на отрезке, которая ближе всех к отрезку? Через синусы я могу вывести, но хотелось бы обойтись делением и умножением.
MBo (2003-07-15 18:05:00) [1]
>neuro
не опечатка, а недописька :)
Если t<0 - ближайшей точкой является конец A,
если t>1 - конец B
neuro (2003-07-15 17:58:00) [2]
> если t<0 и >1 - берем концы
это конечно опечатка, но как смотрицца 8)
alxx (2003-07-15 13:04:00) [3]
Спасибо. Объяснили двоешнику.
MBo (2003-07-15 12:40:00) [4]
отрезок 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 12:29:00) [5]
Поторопился с вопросом. Оказывается в Sapersky_ (09.07.03 22:52) есть прямой ответ и на этот мой вопрос.
alxx (2003-07-15 12:28:00) [6]
Что такое "дифференцируешь квадрат расстояния до точки"?
alxx (2003-07-15 12:27:00) [7]
Я, если честно, схалявил в тот раз. Взял просто Sapersky_ (09.07.03 22:52).
Спасибо.
MBo (2003-07-15 12:23:00) [8]??
http://www.delphimaster.ru/cgi-bin/forum.pl?look=1&id=1057755124&n=9
MBo © (09.07.03 17:21)