Skip to main content

vec

Векторная математика: расстояние, длина, нормализация, углы. Чистая математика без обращения к движку или сущностям — векторы теми же тройками чисел, что и везде в модуле (p:origin() возвращает x, y, z, а не таблицу, и vec.* принимает их так же).

vec.distance

Расстояние между двумя точками.

Аргументы

Возвращает

Пример

p:origin() — не последний аргумент вызова, поэтому Lua обрежет его до одного значения, если передать его напрямую вторым в списке аргументов: разложи обе точки в переменные, как в примере выше.

vec.length

Длина вектора.

Аргументы

Возвращает

vec.normalize

Вектор единичной длины в том же направлении.

Аргументы

Возвращает

Нулевой вектор нормализуется сам в себя — деления на ноль не будет.

vec.to_angle

Углы, которые смотрят вдоль вектора.

Аргументы

Возвращает

Пример

Обратная операция для vec.angle_vector.

vec.angle_vector

Единичный вектор направления взгляда для заданных углов.

Аргументы

Возвращает

Пример

Тот же движковый вызов, что p:trace() использует для направления взгляда игрока (MAKE_VECTORS), только без привязки к конкретному игроку — годится для сущностей и вычисленных углов.

Смотри также