Files
XCEngine/docs/api/math/quaternion/from-euler-angles.md

45 lines
1.1 KiB
Markdown
Raw Normal View History

2026-03-20 02:35:15 +08:00
# 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) - 转换为欧拉角