Перпендикуляр от отрезка к точке

Добавлен , опубликован
Алгоритмы, Наработки и Способности
Способ реализации:
Jass
Тип:
Алгоритм
Находит длину перпендикуляра от отрезка, заданного Xa, Ya, Xb, Yb к точке, заданной Xc, Yc. Полезно при реализации заклинаний типа "Огненная стена", во избежание последовательных пиков юнитов по прямой.
Автор - silumin
function Perpendicular takes real Xa,real Ya,real Xb,real Yb,real Xc,real Yc returns real
    return SquareRoot((Xa - Xc) * (Xa - Xc) + (Ya - Yc) * (Ya - Yc)) * Sin(Atan2(Yc-Ya,Xc-Xa) - Atan2(Yb-Ya,Xb-Xa))
endfunction
`
ОЖИДАНИЕ РЕКЛАМЫ...
1
4
11 лет назад
1
А где пример
0
27
4 года назад
Отредактирован MpW
0
Я так понял это должно быть так
Пикаешь всех, и проверяешь длину. Если длина перпенд < ширины/2 - попало
Загруженные файлы
0
28
4 года назад
0
Находит длину перпендикуляра от отрезка, заданного Xa, Ya, Xb, Yb к точке, заданной Xc, Yc.
Может наоборот, перпендикуляр от точки к линии, что проходит через отрезок?

А, это было опубликовано 7 лет назад.
0
29
7 месяцев назад
Отредактирован nazarpunk
0
Более точно это кратчайшее расстояние между прямой проходящей через точки a, b и точкой c.
Ну и можно сэкономить несколько действий:
function Perpendicular takes real xa, real ya, real xb, real yb, real xc, real yc returns real
    local real dxac = xc - xa
    local real dyac = yc - ya
    return SquareRoot(dxac * dxac + dyac * dyac) * Sin(Atan2(dyac, dxac) - Atan2(yb - ya, xb - xa))
endfunction
Чтобы оставить комментарий, пожалуйста, войдите на сайт.