Files
XCEngine/docs/api/math/quaternion/quaternion.md
ssdfasd f5a34f8adc docs: 重构 API 文档 - components 和 scene 模块
- 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 类总览方法列表
2026-03-26 01:50:27 +08:00

2.2 KiB
Raw Blame History

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);

相关文档