總覽
以下函式會操控四元數。
摘要
函式 | |
---|---|
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, 浮點純量); |
參數
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 鍵 | 目的地四元數。 |
---|---|
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 鍵 | 插入比例。 |
執行兩個四元數之間的球面線性內插。