Fix 30+ broken cross-references in docs/api/math/: - viewport: viewport-getaspectratio/getrect -> getaspectratio/getrect - matrix4: ../color/operator-mul -> operator_mul, operator-index -> operator_index - matrix4/get-*: gettranslation/getscale/getrotation -> get-translation/-scale/-rotation - vector3 operator links: operator_*_assign -> operator-*-assign - vector3 operator links: operator_sub/add -> operator-sub/add - vector3 operator-eq/neq: swap mutual references to use hyphen naming - vector4: ../plane/constructor-default -> constructor_default - Linter fixes: aabb and rectint relative paths corrected
2.6 KiB
2.6 KiB
Matrix4
命名空间: XCEngine::Math
类型: struct
头文件: XCEngine/Math/Matrix4.h
描述: 4x4 矩阵,用于 3D 变换(平移、旋转、缩放)、视图和投影计算
概述
Matrix4 (别名 Matrix4x4) 是 XCEngine 中用于表示 4x4 变换矩阵的结构体。它支持标准的 3D 图形变换操作,包括平移、旋转、缩放,以及视图矩阵和投影矩阵的构建。该结构体采用列主序存储方式,适用于 GPU 渲染和物理计算场景。
结构体成员
| 成员 | 类型 | 描述 |
|---|---|---|
m[4][4] |
float |
矩阵元素数组 |
公共方法
| 方法 | 描述 |
|---|---|
Identity |
返回单位矩阵 |
Zero |
返回零矩阵 |
Translation |
创建平移矩阵 |
Rotation |
从四元数创建旋转矩阵 |
Scale |
创建缩放矩阵 |
TRS |
创建组合变换矩阵 |
LookAt |
创建视图矩阵 |
Perspective |
创建透视投影矩阵 |
Orthographic |
创建正交投影矩阵 |
RotationX |
创建绕 X 轴旋转矩阵 |
RotationY |
创建绕 Y 轴旋转矩阵 |
RotationZ |
创建绕 Z 轴旋转矩阵 |
operator* |
矩阵乘法 |
MultiplyPoint |
变换点(w=1) |
MultiplyVector |
变换向量(w=0) |
Transpose |
转置矩阵 |
Inverse |
求逆矩阵 |
Determinant |
计算行列式 |
GetTranslation |
获取平移分量 |
GetRotation |
获取旋转分量 |
GetScale |
获取缩放分量 |
Decompose |
分解矩阵为变换分量 |
operator[] |
访问矩阵行数据 |
使用示例
#include "XCEngine/Math/Matrix4.h"
#include "XCEngine/Math/Vector3.h"
#include "XCEngine/Math/Quaternion.h"
using namespace XCEngine::Math;
void MatrixExample() {
Matrix4 mat = Matrix4::TRS(
Vector3(1.0f, 2.0f, 3.0f),
Quaternion::FromEulerAngles(0.0f, 90.0f, 0.0f),
Vector3(1.5f, 1.5f, 1.5f)
);
Vector3 point(1.0f, 0.0f, 0.0f);
Vector3 transformed = mat.MultiplyPoint(point);
Matrix4 inv = mat.Inverse();
Matrix4 result = mat * inv;
}
相关文档
- Vector3 - 三维向量
- Quaternion - 四元数
- Matrix3 - 3x3 矩阵