RenderScript 四元数函数

概览

以下函数用于操作四元数。

摘要

函数
rsQuaternionAdd 添加两个四元数
rsQuaternionConjugate 共轭一个四元数
rsQuaternionDot 两个四元数的点积
rsQuaternionGetMatrixUnit 从四元数获取旋转矩阵
rsQuaternionLoadRotate 创建旋转四元数
rsQuaternionLoadRotateUnit 表示围绕任意单位向量旋转的四元数
rsQuaternionMultiply 将四元数乘以标量或另一个四元数
rsQuaternionNormalize 标准化四元数
rsQuaternionSet 创建四元数
rsQuaternionSlerp 两个四元数之间的球面线性插值

函数

rsQuaternionAdd : 添加两个四元数

void rsQuaternionAdd(rs_quaternion* q, const rs_quaternion* rhs);
参数
q要添加到的目标四元数。
rhs要添加的四元数。

添加两个四元数,即 *q += *rhs;

rsQuaternionConjugate : 共轭一个四元数

void rsQuaternionConjugate(rs_quaternion* q);
参数
q要修改的四元数。

共轭四元数。

rsQuaternionDot : 两个四元数的点积

float rsQuaternionDot(const rs_quaternion* q0, const rs_quaternion* q1);
参数
q0第一个四元数。
q1第二个四元数。

返回两个四元数的点积。

rsQuaternionGetMatrixUnit : 从四元数获取旋转矩阵

void rsQuaternionGetMatrixUnit(rs_matrix4x4* m, const rs_quaternion* q);
参数
m结果矩阵。
q标准化四元数。

从标准化四元数计算旋转矩阵。

rsQuaternionLoadRotate : 创建旋转四元数

void rsQuaternionLoadRotate(rs_quaternion* q, float rot, float x, float y, float z);
参数
q目标四元数。
rot旋转角度。
x向量的 X 分量。
y向量的 Y 分量。
z向量的 Z 分量。

加载表示围绕任意向量(不必是单位向量)旋转的四元数

rsQuaternionLoadRotateUnit : 表示围绕任意单位向量旋转的四元数

void rsQuaternionLoadRotateUnit(rs_quaternion* q, float rot, float x, float y, float z);
参数
q目标四元数。
rot旋转角度,以弧度表示。
x向量的 X 分量。
y向量的 Y 分量。
z向量的 Z 分量。

加载表示围绕任意单位向量旋转的四元数。

rsQuaternionMultiply : 将四元数乘以标量或另一个四元数

void rsQuaternionMultiply(rs_quaternion* q, const rs_quaternion* rhs);
void rsQuaternionMultiply(rs_quaternion* q, float scalar);
参数
q目标四元数。
scalar要乘以四元数的标量。
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目标四元数。
wW 分量。
xX 分量。
yY 分量。
zZ 分量。
rhs源四元数。

从其四个分量或另一个四元数创建四元数。

rsQuaternionSlerp : 两个四元数之间的球面线性插值

void rsQuaternionSlerp(rs_quaternion* q, const rs_quaternion* q0, const rs_quaternion* q1, float t);
参数
q插值结果四元数。
q0第一个输入四元数。
q1第二个输入四元数。
t插值量。

对两个四元数执行球面线性插值。