- components: 修复英文标题为中文,添加缺失组件文档 - 新增 camera-component, light-component, audio-source-component, audio-listener-component 类总览 - 修复 get-position.md 格式 - 更新 components.md 模块总览 - scene: 修复方法文档格式,新增缺失方法 - 修复 find.md, create-game-object.md 英文标题 - 新增 FindByID, SerializeToString, DeserializeFromString 方法文档 - 更新 scene.md 类总览方法列表
2.2 KiB
2.2 KiB
Quaternion
命名空间: XCEngine::Math
类型: struct
头文件: XCEngine/Core/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 |
返回单位四元数 |
FromAxisAngle |
从轴角创建四元数 |
FromEulerAngles |
从欧拉角创建四元数 |
FromRotationMatrix |
从旋转矩阵创建四元数 |
Slerp |
球面线性插值 |
LookRotation |
创建看向目标的旋转 |
ToEulerAngles |
转换为欧拉角 |
ToMatrix4x4 |
转换为 4x4 矩阵 |
operator* |
四元数乘法 |
Inverse |
求四元数逆 |
Dot |
点积 |
Magnitude |
求模长 |
Normalized |
返回归一化四元数 |
Normalize |
归一化四元数(静态) |
使用示例
#include <XCEngine/Core/Math/Quaternion.h>
#include <XCEngine/Core/Math/Vector3.h>
#include <XCEngine/Core/Math/Math.h>
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);