Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.30;
Скачать: CL | DM;

Вниз

Растояние от точки до отрезка   Найти похожие ветки 

 
jack128 ©   (2004-05-14 12:39) [0]

Есть отрезок (x1, y1); (x2, y2) и точка (x, y) нужно определить сабж

первое и простейшее, что приходит на ум - это

найти угол (x, y)-(x1, y1)-(x2, y2) (исходя из скалярного произведения векторов cos_Fi = [(x - x1) * (x2 - x1) + (y - y1) * (y2 - y1)] / [(Длина отрезка (x1, y1); (x, y)) * (Длина отрезка (x1, y1); (x2, y2))]

если больше угол больше 90 то искомое растояние = Длина отрезка (x1, y1); (x, y)
иначе
 если угол (x, y)-(x2, y2)-(x1, y1)  > 90 то Result =  Длина отрезка (x2, y2); (x, y)
 иначе Result = Длина((x, y); (x1, y1)) * sin((x, y)-(x1, y1)-(x2, y2))

Но может что то по проще/быстрее есть?


 
Rouse_ ©   (2004-05-14 12:49) [1]

Теорема пифагора :)
Прямой угол и остальные углы тебе извесны а также гипотенуза известна - осталось найти катеты :)


 
jack128 ©   (2004-05-14 12:53) [2]


> Теорема пифагора :)
> Прямой угол и остальные углы тебе извесны а также гипотенуза
> известна - осталось найти катеты :)
Если известна только гипотинуза и углы, то Пифагор не при делах ;-)


 
MBo ©   (2004-05-14 12:59) [3]

http://algolist.manual.ru/maths/geom/distance/pointline.php


 
jack128 ©   (2004-05-14 13:09) [4]


> MBo ©   (14.05.04 12:59)
еще раз напомню - расстояние до отрезка(!!!) Мне собственно не нравиться две первые проверки углов в моем алгоритме, а их придется оставить и для алгоритма с алголиста.. А в таком случаи у меня даже лудше алгоритм..


 
MBo ©   (2004-05-14 13:17) [5]

Насколько я помню, в конце страницы там именно про отрезок...


 
jack128 ©   (2004-05-14 13:41) [6]


> Насколько я помню, в конце страницы там именно про отрезок...
угу, не заметил :-) Сенкс.



Страницы: 1 вся ветка

Текущий архив: 2004.05.30;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.041 c
3-1084249325
Jedu
2004-05-11 08:22
2004.05.30
Сортировка по заданному полю в IBDataSet


1-1084356739
BlackTiger
2004-05-12 14:12
2004.05.30
Как преобразовать "&#_1092;&#_1099;&#_1074;" в String.


6-1081350040
csr
2004-04-07 19:00
2004.05.30
TidIOHandlerSocket - вопрос


1-1084541238
Beglec
2004-05-14 17:27
2004.05.30
Не могу понять предупреждение компилятора


4-1082457137
Alexandr_N
2004-04-20 14:32
2004.05.30
Время