Модуль математики
-
struct Vector3d
3D вектор с дополнительной компонентой w
Используется для однородных координат и 3D преобразований
Public Functions
-
inline Vector3d()
Конструктор по умолчанию (нулевой вектор)
-
inline Vector3d(float x, float y, float z, float w = 1.0f)
Конструктор с параметрами
- Параметры:
x – Координата X
y – Координата Y
z – Координата Z
w – Однородная координата (опционально)
-
void print()
Вывод вектора в консоль
-
Vector3d operator+(Vector3d &other)
Сложение векторов
- Параметры:
other – Второй вектор
- Результат:
Результат сложения
-
Vector3d operator-(Vector3d &other)
Вычитание векторов
- Параметры:
other – Второй вектор
- Результат:
Результат вычитания
-
Vector3d operator*(float k)
Умножение на скаляр
- Параметры:
k – Скаляр
- Результат:
Результат умножения
-
Vector3d operator/(float k)
Деление на скаляр
- Параметры:
k – Скаляр (не должен быть 0)
- Бросает исключение:
std::invalid_argument – Если k = 0
- Результат:
Результат деления
-
float operator[](int index)
Доступ к компонентам по индексу
- Параметры:
index – 0-X, 1-Y, 2-Z, 3-W
- Бросает исключение:
std::out_of_range – При неверном индексе
- Результат:
Значение компоненты
-
bool operator==(Vector3d &other)
Сравнение векторов
- Параметры:
other – Второй вектор
- Результат:
true если векторы равны (w не учитывается)
-
float length()
Вычисление длины вектора
- Результат:
Длина вектора
-
Vector3d normalise()
Нормализация вектора
- Результат:
Нормализованный вектор
Public Members
-
float x
Координата X.
-
float y
Координата Y.
-
float z
Координата Z.
-
float w = 1.0f
Однородная координата (по умолчанию 1.0)
-
inline Vector3d()
-
struct Matrix4X4
4x4 матрица для линейных преобразований
Поддерживает операции поворота, масштабирования, переноса, проекции
Public Functions
-
void print()
Выводит матрицу в консоль
-
float *operator[](int index)
Доступ к строке матрицы по индексу
- Параметры:
index – Индекс строки (0-3)
- Бросает исключение:
std::out_of_range – При неверном индексе
- Результат:
Указатель на строку матрицы
-
bool operator==(Matrix4X4 &other)
Сравнение матриц на равенство
- Параметры:
other – Матрица для сравнения
- Результат:
true если матрицы равны
Public Members
-
float m[4][4] = {0}
Элементы матрицы (строка, столбец)
Public Static Functions
-
static Matrix4X4 makeIdentity()
Создает единичную матрицу
- Результат:
Единичная матрица 4x4
-
static Matrix4X4 makeRotationX(float fAngleRad)
Создает матрицу поворота вокруг оси X.
- Параметры:
fAngleRad – Угол поворота в радианах
- Результат:
Матрица поворота вокруг X
-
static Matrix4X4 makeRotationY(float fAngleRad)
Создает матрицу поворота вокруг оси Y.
- Параметры:
fAngleRad – Угол поворота в радианах
- Результат:
Матрица поворота вокруг Y
-
static Matrix4X4 makeRotationZ(float fAngleRad)
Создает матрицу поворота вокруг оси Z.
- Параметры:
fAngleRad – Угол поворота в радианах
- Результат:
Матрица поворота вокруг Z
-
static Matrix4X4 makeTranslation(float x, float y, float z)
Создает матрицу переноса
- Параметры:
x – Смещение по X
y – Смещение по Y
z – Смещение по Z
- Результат:
Матрица переноса
-
static Matrix4X4 makeScale(float x, float y, float z)
Создает матрицу масштабирования
- Параметры:
x – Масштаб по X
y – Масштаб по Y
z – Масштаб по Z
- Результат:
Матрица масштабирования
-
static Matrix4X4 makeProjection(float fFovDegrees, float fAspectRatio, float fNear, float fFar)
Создает матрицу проекции
- Параметры:
fFovDegrees – Угол обзора в градусах
fAspectRatio – Соотношение сторон
fNear – Ближняя плоскость отсечения
fFar – Дальняя плоскость отсечения
- Результат:
Матрица проекции
-
void print()