Files
XCEngine/docs/api/math/matrix4/matrix4.md
ssdfasd f5a34f8adc docs: 重构 API 文档 - components 和 scene 模块
- components: 修复英文标题为中文,添加缺失组件文档
  - 新增 camera-component, light-component, audio-source-component, audio-listener-component 类总览
  - 修复 get-position.md 格式
  - 更新 components.md 模块总览
- scene: 修复方法文档格式,新增缺失方法
  - 修复 find.md, create-game-object.md 英文标题
  - 新增 FindByID, SerializeToString, DeserializeFromString 方法文档
  - 更新 scene.md 类总览方法列表
2026-03-26 01:50:27 +08:00

2.6 KiB
Raw Blame History

Matrix4

命名空间: XCEngine::Math

类型: struct

头文件: XCEngine/Core/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/Core/Math/Matrix4.h"
#include "XCEngine/Core/Math/Vector3.h"
#include "XCEngine/Core/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;
}

相关文档