Files
XCEngine/docs/api/math/matrix4/matrix4.md
ssdfasd 63d0271a5b Fix broken links in Math API docs
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
2026-03-26 01:43:14 +08:00

2.6 KiB
Raw Blame History

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;
}

相关文档