42 lines
917 B
Markdown
42 lines
917 B
Markdown
# Matrix4x4::GetRotation
|
|
|
|
```cpp
|
|
Quaternion GetRotation() const
|
|
```
|
|
|
|
从变换矩阵中提取旋转分量。将矩阵转换为对应的四元数表示。
|
|
|
|
**参数:** (无)
|
|
|
|
**返回:** 旋转四元数
|
|
|
|
**线程安全:** ✅
|
|
|
|
**复杂度:** O(1)
|
|
|
|
**示例:**
|
|
|
|
```cpp
|
|
#include "XCEngine/Math/Matrix4.h"
|
|
#include "XCEngine/Math/Quaternion.h"
|
|
|
|
using namespace XCEngine::Math;
|
|
|
|
Quaternion expected = Quaternion::FromEuler(0.0f, 90.0f, 0.0f);
|
|
Matrix4 transform = Matrix4::TRS(
|
|
Vector3(0.0f, 0.0f, 0.0f),
|
|
expected,
|
|
Vector3(1.0f, 1.0f, 1.0f)
|
|
);
|
|
|
|
Quaternion rotation = transform.GetRotation();
|
|
// rotation 表示相同的旋转
|
|
```
|
|
|
|
## 相关文档
|
|
|
|
- [Matrix4](matrix4.md) - 返回类总览
|
|
- [Quaternion](../quaternion/quaternion.md) - 四元数类
|
|
- [GetTranslation](gettranslation.md) - 获取平移分量
|
|
- [GetScale](getscale.md) - 获取缩放分量
|
|
- [Decompose](decompose.md) - 分解矩阵 |