概览
以下函数用于操控四元数。
总结
函数 | |
---|---|
rsQuaternionAdd | 将两个四元数相加 |
rsQuaternionConjugate | 共合四元数 |
rsQuaternionDot | 两个四元数的点积 |
rsQuaternionGetMatrixUnit | 从四元数获取旋转矩阵 |
rsQuaternionLoadRotate | 创建旋转四元数 |
rsQuaternionLoadRotateUnit | 表示围绕任意单位向量旋转的四元数 |
rsQuaternionMultiply | 将四元数与标量或其他四元数相乘 |
rsQuaternionNormalize | 将四元数归一化 |
rsQuaternionSet | 创建四元数 |
rsQuaternionSlerp | 两个四元数之间的球面线性插值 |
函数
rsQuaternionAdd :添加两个四元数
void rsQuaternionAdd(rs_quaternion* q, const rs_quaternion* rhs); |
参数
q | 要添加到的目标四元数。 |
---|---|
RHS | 要添加的四元数。 |
将两个四元数相加,即 *q += *rhs;
rsQuaternionDot :两个四元数的点积
float rsQuaternionDot(const rs_quaternion* q0, const rs_quaternion* q1); |
参数
第 0 季度 | 第一个四元数。 |
---|---|
第 1 季度 | 第二个四元数。 |
返回两个四元数的点积。
rsQuaternionGetMatrixUnit :从四元数中获取旋转矩阵
void rsQuaternionGetMatrixUnit(rs_Matrix4x4* m, const rs_quaternion* q); |
参数
分钟 | 生成的矩阵。 |
---|---|
q | 归一化四元数。 |
根据归一化四元数计算旋转矩阵。
rsQuaternionLoadRotate :创建旋转四元数
void rsQuaternionLoadRotate(rs_quaternion* q, float rot, float x, float y, float z); |
参数
q | 目标四元数。 |
---|---|
腐烂 | 要旋转的角度。 |
x | 矢量的 X 分量。 |
y | 矢量的 Y 分量。 |
z | 矢量的 Z 分量。 |
加载一个四元数,表示围绕任意矢量的旋转(不一定是单位)
rsQuaternionLoadRotateUnit :表示围绕任意单位向量旋转的四元数
void rsQuaternionLoadRotateUnit(rs_quaternion* q, float rot, float x, float y, float z); |
参数
q | 目标四元数。 |
---|---|
腐烂 | 要旋转的角度(以弧度为单位)。 |
x | 矢量的 X 分量。 |
y | 矢量的 Y 分量。 |
z | 矢量的 Z 分量。 |
加载一个四元数,表示围绕任意单位向量的旋转。
rsQuaternionMultiply :将一个四元数与一个标量或其他四元数相乘
void rsQuaternionMultiply(rs_quaternion* q, const rs_quaternion* rhs); | |
void rsQuaternionMultiply(rs_quaternion* q, float scalar); |
参数
q | 目标四元数。 |
---|---|
标量 | 要乘以四元数的标量。 |
RHS | 用于乘以目标四元数的四元数。 |
将四元数与标量或其他四元数(例如 *q = *q * scalar;
或 *q = *q * *rhs;
)相乘。
rsQuaternionNormalize :对四元数进行归一化
void rsQuaternionNormalize(rs_quaternion* q); |
参数
q | 要归一化的四元数。 |
---|
对四元数进行归一化。
rsQuaternionSet :创建四元数
void rsQuaternionSet(rs_quaternion* q, const rs_quaternion* rhs); | |
void rsQuaternionSet(rs_quaternion* q, float w, float x, float y, float z); |
参数
q | 目标四元数。 |
---|---|
W | W 分量。 |
x | X 分量。 |
y | Y 分量。 |
z | Z 分量。 |
RHS | 源四元数。 |
根据四元数或另一个四元数创建一个四元数。
rsQuaternionSlerp :两个四元数之间的球面线性插值
void rsQuaternionSlerp(rs_quaternion* q, const rs_quaternion* q0, const rs_quaternion* q1, float t); |
参数
q | 插值得出的四元数。 |
---|---|
第 0 季度 | 第一个输入四元数。 |
第 1 季度 | 第二个输入四元数。 |
t | 插值法的计算依据。 |
在两个四元数之间执行球面线性插值。