Files
XCEngine/docs/api/math/math-matrix3.md

70 lines
1.5 KiB
Markdown
Raw Normal View History

# Matrix3 / Matrix3x3
3x3 矩阵结构体,用于表示 3D 旋转和缩放变换。
## 头文件
```cpp
#include <XCEngine/Math/Matrix3.h>
```
## 命名空间
`XCEngine::Math`
## 类型别名
```cpp
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)` | 矩阵-向量乘法 |
## 使用示例
```cpp
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);
```