Есть точка А (допустим место куда я указал кастованной абилкой) и точка B (координаты ближайшего юнита к точке А).
Если расстояние между ними меньше или равно N то нужная мне точка и есть А.
Но если больше, то это должна быть некая точка C на расстоянии от B с отступом в N в направлении к А.
Как вычислить точку С?
Если расстояние между ними меньше или равно N то нужная мне точка и есть А.
Но если больше, то это должна быть некая точка C на расстоянии от B с отступом в N в направлении к А.
Как вычислить точку С?
Принятый ответ
Чёт сложно
Т.е. простыми словами - если от точки каста до юнита меньше чем 300, с юнитом что-то происходит.
Если больше - то как я понял из ваших слов - точка С сдвигается на то расстояние от Б, которого нехватает до юнита. ->
Делаем инверсию и получаем, то что Точка С будет находиться от А на том расстоянии, которого нехватает до юнита.
Т.е. 400 = 300(N) + 100(расстояние, которого нехватает до юнита)
400 - 300(N) = 100
Т.е. простыми словами - если от точки каста до юнита меньше чем 300, с юнитом что-то происходит.
Если больше - то как я понял из ваших слов - точка С сдвигается на то расстояние от Б, которого нехватает до юнита. ->
Делаем инверсию и получаем, то что Точка С будет находиться от А на том расстоянии, которого нехватает до юнита.
Т.е. 400 = 300(N) + 100(расстояние, которого нехватает до юнита)
400 - 300(N) = 100
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован N1ghtSiren
Т.е. простыми словами - если от точки каста до юнита меньше чем 300, с юнитом что-то происходит.
Если больше - то как я понял из ваших слов - точка С сдвигается на то расстояние от Б, которого нехватает до юнита. ->
Делаем инверсию и получаем, то что Точка С будет находиться от А на том расстоянии, которого нехватает до юнита.
Т.е. 400 = 300(N) + 100(расстояние, которого нехватает до юнита)
400 - 300(N) = 100
Отредактирован Drulia_san
Здесь скорее векторная алгебра идет.
Я наверное сложно сформулировал, скажу проще, если известны координаты двух точек и длины линии между ними, как узнать точку на этой линии с отступом N от точки А или Б в сторону противоположной точки? Мне нужно понять как посчитать X и Y этой точки.
Кажется я понял как надо, включив математического аналитика после банки пивка я понял, что нужно:
xy = ay + 900 * Sin(angle)
Отредактирован prog
Самое топорное решение - нормализуем вектор и умножаем на нужную длину.
Т.е. что-то вроде такого (порядок переменных может потребоваться поменять, не задумывался о том что у тебя за какую из двух точек отвечает)
сx = ax + ((bx-ax)*Lt/Lr)
сy = ay + ((by-ay)*Lt/Lr)
где Lt и Lr это желаемое и имеющееся растояние.
Твой вариант делает то же самое, как ни странно. Но мой вариант с косинусами\синусами выглядит проще