Files
XCEngine/docs/api/math/matrix4/matrix4.md
ssdfasd dc850d7739 docs: 重构 API 文档结构并修正源码准确性
- 重组文档目录结构: 每个模块的概述页移动到模块子目录
- 重命名 index.md 为 main.md
- 修正所有模块文档中的错误:
  - math: FromEuler→FromEulerAngles, TransformDirection 包含缩放, Box 是 OBB, Color::ToRGBA 格式
  - containers: 新增 operator==/!= 文档, 补充 std::hash DJB 算法细节
  - core: 修复 types 链接错误
  - debug: LogLevelToString 返回大写, timestamp 是秒, Profiler 空实现标注, Windows API vs ANSI
  - memory: 修复头文件路径, malloc vs operator new, 新增方法文档
  - resources: 修复 Shader/Texture 链接错误
  - threading: TaskSystem::Wait 空实现标注, ReadWriteLock 重入描述, LambdaTask 链接
- 验证: fix_links.py 确认 0 个断裂引用
2026-03-19 00:22:30 +08:00

2.5 KiB
Raw Blame History

Matrix4 / Matrix4x4

4x4 矩阵结构体,用于表示完整的 3D 变换(平移、旋转、缩放)、视图和投影变换。

头文件: #include <XCEngine/Math/Matrix4.h>

命名空间: XCEngine::Math

类型别名

using Matrix4 = Matrix4x4;

存储方式

行优先存储 (row-major)

m[0][0] m[0][1] m[0][2] m[0][3]
m[1][0] m[1][1] m[1][2] m[1][3]
m[2][0] m[2][1] m[2][2] m[2][3]
m[3][0] m[3][1] m[3][2] m[3][3]

静态工厂方法

基础变换

方法 返回值 描述
Identity() Matrix4 单位矩阵
Zero() Matrix4 零矩阵
Translation(v) Matrix4 平移矩阵
Scale(v) Matrix4 缩放矩阵
Rotation(q) Matrix4 旋转矩阵(四元数)
TRS(translation, rotation, scale) Matrix4 完整变换

旋转

方法 返回值 描述
RotationX(radians) Matrix4 X 轴旋转
RotationY(radians) Matrix4 Y 轴旋转
RotationZ(radians) Matrix4 Z 轴旋转

相机变换

方法 返回值 描述
LookAt(eye, target, up) Matrix4 视图矩阵
Perspective(fov, aspect, near, far) Matrix4 透视投影
Orthographic(left, right, bottom, top, near, far) Matrix4 正交投影

实例方法

乘法

方法 返回值 描述
operator*(Matrix4, Matrix4) Matrix4 矩阵乘法
operator*(Matrix4, Vector4) Vector4 矩阵-向量乘法
MultiplyPoint(v) Vector3 点变换(带平移)
MultiplyVector(v) Vector3 方向变换(不带平移)

分解

方法 返回值 描述
Transpose() Matrix4 转置矩阵
Inverse() Matrix4 逆矩阵
Determinant() float 行列式
GetTranslation() Vector3 获取平移分量
GetRotation() Quaternion 获取旋转分量
GetScale() Vector3 获取缩放分量
Decompose(translation, rotation, scale) void 分解所有分量

相关文档