概要
次の関数は四元数を処理します。
まとめ
関数 | |
---|---|
rsQuaternionAdd | 2 つの四元数を足し算する |
rsQuaternionConjugate | 四元数を共役する |
rsQuaternionDot | 2 つの四元数のドット積 |
rsQuaternionGetMatrixUnit | 四元数から回転行列を取得する |
rsQuaternionLoadRotate | 回転四元数を作成する |
rsQuaternionLoadRotateUnit | 任意の単位ベクトルに関する回転を表す四元数 |
rsQuaternionMultiply | 四元数にスカラーまたは他の四元数を乗算する |
rsQuaternionStandardize | 四元数を正規化する |
rsQuaternionSet | 四元数を作成する |
rsQuaternionSlerp | 2 つの四元数間の球面線形補間 |
関数
rsQuaternionAdd : 2 つの四元数を加算する
void rsQuaternionAdd(rs_quaternion* q, const rs_quaternion* rhs); |
パラメータ
q | 追加先のデスティネーション四元数。 |
---|---|
右側の | 追加する四元数。 |
2 つの四元数を加算します。つまり、*q += *rhs;
rsQuaternionConjugate : 四元数を共役する
void rsQuaternionConjugate(rs_quaternion* q); |
パラメータ
q | 変更する四元数。 |
---|
四元数を共役します。
rsQuaternionDot : 2 つの四元数のドット積
float rsQuaternionDot(const rs_quaternion* q0, const rs_quaternion* q1); |
パラメータ
Q0 | 第 1 四元数。 |
---|---|
q1 | 第 2 四元数。 |
2 つの四元数のドット積を返します。
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 | デスティネーションの四元数。 |
---|---|
スカラー | 四元数を乗算するスカラーです。 |
右側の | 変換先の四元数に乗算する四元数。 |
四元数にスカラーを乗算するか、別の四元数(*q = *q * scalar;
や *q = *q * *rhs;
など)を乗算します。
rsQuaternionCommonize : 四元数を正規化する
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 | 必要があります。 |
x | X コンポーネント。 |
y | Y コンポーネント。 |
z | Z コンポーネント。 |
右側の | ソース四元数。 |
4 つの成分から、または別の四元数から四元数を作成します。
rsQuaternionSlerp : 2 つの四元数間の球面線形補間
void rsQuaternionSlerp(rs_quaternion* q, const rs_quaternion* q0, const rs_quaternion* q1, float t); |
パラメータ
q | 補間から得られた結果の四元数。 |
---|---|
Q0 | 最初の入力四元数。 |
q1 | 2 番目の入力四元数。 |
t | 補間値。 |
2 つの四元数間の球面線形補間を実行します。