Мод Гарри lua, приближающий вектор

В моде garry у нас есть метатаблица векторов: Vector
Это больше своего рода математического вопроса.
У меня есть 2 вектора: позиция игроков (1) и один фиксированный на карте (2).
Я хочу нарисовать текст в фиксированной позиции, но поскольку он будет внутри вещей, я могу т. Итак, как мне переместить вектор 2 к игроку (1). Я могу использовать тип Angle: Угол. Я могу просто изменить масштаб текста.
Заранее спасибо!


person JMgamerZzz TM    schedule 05.07.2017    source источник


Ответы (1)


Я предполагаю, что вы говорите о точках, а не о векторах в традиционном смысле. Назовем точку, в которой игрок - это V1, и фиксированную точку V2, тогда вектор, представляющий расстояние от фиксированной точки до игрока, D, будет:

D = V1 - V2

Теперь мы перемещаем V2 на новую позицию ближе к игроку, скажем, на некоторую долю c:

V2 = V2 + c * D

Поэтому, если вы хотите переместить текст на десятую часть ближе к игроку, вы должны установить c = 1/10.

Например, используя ваши библиотеки, мы можем просто изменить вектор с фиксированной точкой (2):

d = v1
d:Sub(v2)
d:Mul(0.1)
v2:Add(d)

Приведенный выше код переместит фиксированную точку v2 на десятую часть ближе. Если вы можете проверить, не закрывается ли текст чем-то или нет, вы можете перемещать его шаг за шагом, пока он не станет свободным.

person Ed Jaras    schedule 06.07.2017