70 lines
1.5 KiB
Markdown
70 lines
1.5 KiB
Markdown
# 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);
|
||
```
|