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
42 lines
919 B
Markdown
42 lines
919 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](get-translation.md) - 获取平移分量
|
|
- [GetScale](get-scale.md) - 获取缩放分量
|
|
- [Decompose](decompose.md) - 分解矩阵 |