Форум: "Игры";
Текущий архив: 2004.01.29;
Скачать: [xml.tar.bz2];
ВнизТочка на отрезке, ближайшая к данной. Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c