45 lines
1.1 KiB
Markdown
45 lines
1.1 KiB
Markdown
|
|
# Quaternion::FromEulerAngles
|
|||
|
|
|
|||
|
|
```cpp
|
|||
|
|
static Quaternion FromEulerAngles(float pitch, float yaw, float roll);
|
|||
|
|
static Quaternion FromEulerAngles(const Vector3& euler);
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
从欧拉角创建四元数。使用 YXZ 顺序(先绕 Y 轴 yaw,再绕 X 轴 pitch,最后绕 Z 轴 roll)。
|
|||
|
|
|
|||
|
|
**参数:**
|
|||
|
|
- `pitch` - 绕 X 轴旋转角度(弧度)
|
|||
|
|
- `yaw` - 绕 Y 轴旋转角度(弧度)
|
|||
|
|
- `roll` - 绕 Z 轴旋转角度(弧度)
|
|||
|
|
- `euler` - 欧拉角向量 (pitch, yaw, roll)
|
|||
|
|
|
|||
|
|
**返回:** 表示该旋转的四元数
|
|||
|
|
|
|||
|
|
**线程安全:** ✅
|
|||
|
|
|
|||
|
|
**复杂度:** O(1)
|
|||
|
|
|
|||
|
|
**示例:**
|
|||
|
|
|
|||
|
|
```cpp
|
|||
|
|
#include <XCEngine/Math/Quaternion.h>
|
|||
|
|
#include <XCEngine/Math/Vector3.h>
|
|||
|
|
#include <XCEngine/Math/Math.h>
|
|||
|
|
|
|||
|
|
using namespace XCEngine::Math;
|
|||
|
|
|
|||
|
|
Quaternion q1 = Quaternion::FromEulerAngles(
|
|||
|
|
Math::Radians(45.0f),
|
|||
|
|
Math::Radians(30.0f),
|
|||
|
|
Math::Radians(60.0f)
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
Quaternion q2 = Quaternion::FromEulerAngles(Vector3(45, 30, 60) * DEG_TO_RAD);
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 相关文档
|
|||
|
|
|
|||
|
|
- [Quaternion](quaternion.md) - 返回类总览
|
|||
|
|
- [FromAxisAngle](from-axis-angle.md) - 从轴角创建
|
|||
|
|
- [ToEulerAngles](to-euler-angles.md) - 转换为欧拉角
|