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);
参数
第 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目标四元数。
WW 分量。
xX 分量。
yY 分量。
zZ 分量。
RHS源四元数。

根据四元数或另一个四元数创建一个四元数。

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

void rsQuaternionSlerp(rs_quaternion* q, const rs_quaternion* q0, const rs_quaternion* q1, float t);
参数
q插值得出的四元数。
第 0 季度第一个输入四元数。
第 1 季度第二个输入四元数。
t插值法的计算依据。

在两个四元数之间执行球面线性插值。