# Quaternion **命名空间**: `XCEngine::Math` **类型**: `struct` **头文件**: `XCEngine/Math/Quaternion.h` **描述**: 四元数,用于表示三维旋转 ## 概述 Quaternion 提供了一套完整的三维旋转表示和操作方法。四元数可以避免欧拉角的万向节锁问题,并提供平滑的旋转插值(Slerp)。 ## 结构体成员 | 成员 | 类型 | 描述 | 默认值 | |------|------|------|--------| | `x` | `float` | X 分量 | `0.0f` | | `y` | `float` | Y 分量 | `0.0f` | | `z` | `float` | Z 分量 | `0.0f` | | `w` | `float` | W 分量(标量部分) | `1.0f` | ## 公共方法 | 方法 | 描述 | |------|------| | [`Identity`](identity.md) | 返回单位四元数 | | [`FromAxisAngle`](from-axis-angle.md) | 从轴角创建四元数 | | [`FromEulerAngles`](from-euler-angles.md) | 从欧拉角创建四元数 | | [`FromRotationMatrix`](from-rotation-matrix.md) | 从旋转矩阵创建四元数 | | [`Slerp`](slerp.md) | 球面线性插值 | | [`LookRotation`](look-rotation.md) | 创建看向目标的旋转 | | [`ToEulerAngles`](to-euler-angles.md) | 转换为欧拉角 | | [`ToMatrix4x4`](to-matrix4x4.md) | 转换为 4x4 矩阵 | | [`operator*`](operator-mul.md) | 四元数乘法 | | [`Inverse`](inverse.md) | 求四元数逆 | | [`Dot`](dot.md) | 点积 | | [`Magnitude`](magnitude.md) | 求模长 | | [`Normalized`](normalized.md) | 返回归一化四元数 | | [`Normalize`](normalize.md) | 归一化四元数(静态) | ## 使用示例 ```cpp #include #include #include using namespace XCEngine::Math; // 从欧拉角创建 Quaternion q1 = Quaternion::FromEulerAngles(0, Math::Radians(90.0f), 0); // 从轴角创建 Quaternion q2 = Quaternion::FromAxisAngle(Vector3::Up(), Math::Radians(45.0f)); // 组合旋转 Quaternion combined = q1 * q2; // 旋转向量 Vector3 rotated = q2 * Vector3::Forward(); // 球面插值 Quaternion result = Quaternion::Slerp(q1, q2, 0.5f); ``` ## 相关文档 - [Math 模块总览](../math.md) - Math 模块概览 - [Vector3](../vector3/vector3.md) - 三维向量 - [Matrix4](../matrix4/matrix4.md) - 4x4 矩阵