voxelcore/doc/ru/scripting/builtins/libquat.md
2026-08-15 14:58:09 +05:00

2.1 KiB
Raw Blame History

Библиотека quat

Библиотека для работы с кватернионами.

Кватернионы задаюся таблицей, состоящей из 4 компонентов: {w, x, y, z}

Кватернион из матрицы - quat.from_mat4(...)

-- создаёт кватернион на основе матрицы вращения
quat.from_mat4(m: matrix, [опционально] dst: quat) -> quat

Кватернион из углов Эйлера - quat.from_euler(...)

-- создаёт кватернион на основе вектора, содержащего углы Эйлера в порядке XYZ (pitch, yaw, roll)
-- (значения углов строго в градусах)
quat.from_euler(euler: vec3, [опционально] dst: quat) -> quat

Композиция кватернионов - quat.mul(...)

-- Умножает два кватерниона (композиция поворотов)
quat.mul(a: quat, b: quat, [опционально] dst: quat) -> quat

Поворот 3д вектора на кватернион - quat.mul_vec3(...)

-- Поворачивает вектор на заданный кватернион
quat.mul_vec3(a: quat, b: vec3, [опционально] dst: vec3) -> vec3

Сферическая линейная интерполяция - quat.slerp(...)

Интерполяция всегда выполняется по короткому пути, а вращение выполняется с постоянной скоростью.

-- создаёт кватернион как интерполяцию между a и b, 
-- где t - фактор интерполяции
quat.slerp(a: quat, b: quat, t: number, [опционально] dst: quat) -> quat

Перевод в строку - quat.tostring(...)

-- возвращает строку, представляющую содержимое кватерниона
quat.tostring(q: quat) -> string