# Matrix4x4::Decompose ```cpp void Decompose(Vector3& translation, Quaternion& rotation, Vector3& scale) const ``` 将变换矩阵分解为平移、旋转和缩放三个独立分量。 **参数:** - `translation` - 输出参数,接收平移向量 - `rotation` - 输出参数,接收旋转四元数 - `scale` - 输出参数,接收缩放向量 **返回:** (无) **线程安全:** ✅ **复杂度:** O(1) **示例:** ```cpp #include "XCEngine/Math/Matrix4.h" #include "XCEngine/Math/Vector3.h" #include "XCEngine/Math/Quaternion.h" using namespace XCEngine::Math; Matrix4 transform = Matrix4::TRS( Vector3(1.0f, 2.0f, 3.0f), Quaternion::FromEuler(45.0f, 0.0f, 0.0f), Vector3(2.0f, 2.0f, 2.0f) ); Vector3 translation; Quaternion rotation; Vector3 scale; transform.Decompose(translation, rotation, scale); // translation = (1.0f, 2.0f, 3.0f) // rotation 表示 45 度 X 轴旋转 // scale = (2.0f, 2.0f, 2.0f) ``` ## 相关文档 - [Matrix4](matrix4.md) - 返回类总览 - [TRS](trs.md) - 组合变换矩阵 - [GetTranslation](get-translation.md) - 获取平移分量 - [GetRotation](get-rotation.md) - 获取旋转分量 - [GetScale](get-scale.md) - 获取缩放分量