1.5 KiB
1.5 KiB
Matrix3 / Matrix3x3
3x3 矩阵结构体,用于表示 3D 旋转和缩放变换。
头文件
#include <XCEngine/Math/Matrix3.h>
命名空间
XCEngine::Math
类型别名
using Matrix3 = Matrix3x3;
存储方式
行优先存储 (row-major):
m[row][col]
m[0][0] m[0][1] m[0][2]
m[1][0] m[1][1] m[1][2]
m[2][0] m[2][1] m[2][2]
构造函数
- 默认构造函数初始化为零矩阵
静态工厂方法
| 方法 | 返回值 | 描述 |
|---|---|---|
Identity() |
Matrix3 |
单位矩阵 |
Zero() |
Matrix3 |
零矩阵 |
RotationX(float radians) |
Matrix3 |
X 轴旋转矩阵 |
RotationY(float radians) |
Matrix3 |
Y 轴旋转矩阵 |
RotationZ(float radians) |
Matrix3 |
Z 轴旋转矩阵 |
Scale(const Vector3& scale) |
Matrix3 |
缩放矩阵 |
实例方法
| 方法 | 返回值 | 描述 |
|---|---|---|
Transpose() |
Matrix3 |
转置矩阵 |
Inverse() |
Matrix3 |
逆矩阵 |
Determinant() |
float |
行列式 |
运算符
| 运算符 | 描述 |
|---|---|
operator*(Matrix3, Matrix3) |
矩阵乘法 |
operator*(Matrix3, Vector3) |
矩阵-向量乘法 |
使用示例
Matrix3 rotX = Matrix3::RotationX(Math::HALF_PI);
Matrix3 rotY = Matrix3::RotationY(0.0f);
Matrix3 scale = Matrix3::Scale(Vector3(2.0f, 2.0f, 2.0f));
Matrix3 combined = rotX * scale;
Vector3 transformed = combined * Vector3(1.0f, 0.0f, 0.0f);