add quat Lua library

This commit is contained in:
MihailRis
2024-07-22 19:05:27 +03:00
parent b5e7b63a9d
commit e0cb57a10a
10 changed files with 152 additions and 27 deletions
-13
View File
@@ -4,19 +4,6 @@
Большинство функций имеют несколько вариантов списка агрументов (перегрузок).
## Типы данных
На данной странице будут использоваться условные обозначения типов.
- vector - массив из трех или четырех чисел
- vec3 - массив из трех чисел
- vec4 - массив из четырех чисел
- quat - массив из четырех чисел - кватернион
- matrix - массив из 16 чисел - матрица
> [!WARNING]
>
> Аннотации типов являются частью документации и не указываются при вызове использовании.
## Единичная матрица - *mat4.idt(...)*
```lua
+34
View File
@@ -0,0 +1,34 @@
# Библиотека *quat*
Библиотека для работы с кватернионами.
## Кватернион из матрицы - *mat4.from_quat(...)*
```lua
-- создает кватернион на основе матрицы вращения
quat.from_mat4(m: matrix)
-- записывает кватернион по матрице вращения в dst
quat.from_mat4(m: matrix, dst: quat)
```
## Сферическая линейная интерполяция - *quat.slerp(...)*
Интерполяция всегда выполняется по короткому пути, а вращение выполняется с постоянной скоростью.
```lua
-- создает кватернион как интерполяцию между a и b,
-- где t - фактор интерполяции
quat.slerp(a: quat, b: quat, t: number)
-- записывает кватернион как интерполяцию между a и b в dst,
-- где t - фактор интерполяции
quat.slerp(a: quat, b: quat, t: number, dst: quat)
```
## Перевод в строку - *quat.tostring(...)*
```lua
-- возвращает строку представляющую содержимое кватерниона
quat.tostring(q: quat)
```