Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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


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)


Наверх

Титульная страница Поиск, карта сайта Написать письмо