FineKernelToolKit
2.8.10
|
構成 | |
class | fk_Quaternion |
四元数(クォータニオン)を管理するクラス [詳細] | |
関数 | |
fk_Quaternion | operator* (const fk_Quaternion &, const fk_Quaternion &) |
四元数積二項演算子 | |
fk_Quaternion | operator+ (const fk_Quaternion &, const fk_Quaternion &) |
四元数和二項演算子 | |
fk_Quaternion | operator- (const fk_Quaternion &, const fk_Quaternion &) |
四元数差二項演算子 | |
fk_Quaternion | operator* (const fk_Quaternion &, double) |
四元数スカラー倍二項演算子1 | |
fk_Quaternion | operator* (double, const fk_Quaternion &) |
四元数スカラー倍二項演算子2 | |
fk_Quaternion | operator/ (const fk_Quaternion &, double) |
四元数スカラー商二項演算子 | |
fk_Vector | operator* (const fk_Quaternion &, const fk_Vector &) |
四元数ベクトル変換二項演算子 | |
double | operator^ (const fk_Quaternion &, const fk_Quaternion &) |
四元数内積二項演算子 | |
fk_Quaternion & | fk_Q_Inter_Linear (const fk_Quaternion &, const fk_Quaternion &, double) |
fk_Quaternion & | fk_Q_Inter_Sphere (const fk_Quaternion &, const fk_Quaternion &, double) |
fk_Quaternion operator* | ( | const fk_Quaternion & | , |
const fk_Quaternion & | |||
) |
四元数積二項演算子
2つの四元数 に対し、 それぞれのスカラー部とベクトル部を以下のように記述するとします。
このとき、四元数の積は以下のように定義されます。
これを得るには、以下のように記述します。 q1, q2, q はいずれも fk_Quaternion 型の変数です。
q = q1 * q2;
四元数の積は、四元数を回転変換として考えたとき、合成変換を生成することを意味します。 なお、四元数の積は交換法則は成り立ちません。
fk_Quaternion operator+ | ( | const fk_Quaternion & | , |
const fk_Quaternion & | |||
) |
四元数和二項演算子
四元数の和は、全ての成分同士を加算することで定義されます。 四元数 q1 と q2 の和を得るには、以下のように記述します。 q1, q2, q はいずれも fk_Quaternion 型の変数です。
q = q1 + q2;
fk_Quaternion operator- | ( | const fk_Quaternion & | , |
const fk_Quaternion & | |||
) |
四元数差二項演算子
四元数の差は、全ての成分同士を減算することで定義されます。 四元数 q1 と q2 の差を得るには、以下のように記述します。 q1, q2, q はいずれも fk_Quaternion 型の変数です。
q = q1 - q2;
fk_Quaternion operator* | ( | const fk_Quaternion & | , |
double | |||
) |
四元数スカラー倍二項演算子1
四元数のスカラー倍は、全ての成分に与えられた実数を掛けることで定義されます。 これを得るには、以下のように記述します。 q1, q2 はいずれも fk_Quaternion 型の変数で、d は double 型の変数です。
q2 = q1 * d;
なお、四元数と実数の順番は逆でも構いません。
fk_Quaternion operator* | ( | double | , |
const fk_Quaternion & | |||
) |
四元数スカラー倍二項演算子2
四元数のスカラー倍は、全ての成分に与えられた実数を掛けることで定義されます。 これを得るには、以下のように記述します。 q1, q2 はいずれも fk_Quaternion 型の変数で、d は double 型の変数です。
q2 = d * q1;
なお、四元数と実数の順番は逆でも構いません。
fk_Quaternion operator/ | ( | const fk_Quaternion & | , |
double | |||
) |
四元数スカラー商二項演算子
四元数のスカラー商は、全ての成分を与えられた実数で割ることで定義されます。 これを得るには、以下のように記述します。 q1, q2 はいずれも fk_Quaternion 型の変数で、d は double 型の変数です。
q2 = q1 / d;
fk_Vector operator* | ( | const fk_Quaternion & | , |
const fk_Vector & | |||
) |
四元数ベクトル変換二項演算子
四元数は、数学的には任意軸回転変換を表現します。 一つの四元数 は3次元ベクトル
に対し、
という演算によって回転変換したベクトル を求めることができます。
上記の変換ベクトルを得るには、以下のように記述します。 v1, v2 はともに fk_Vector 型の変数、q は fk_Quaternion 型の変数です。 v1 が元のベクトル、v2 が変換後のベクトルを意味します。
v2 = q * v1;
double operator^ | ( | const fk_Quaternion & | , |
const fk_Quaternion & | |||
) |
四元数内積二項演算子
2つの四元数 の内積(スカラー積)は、以下のように定義されます。
これを得るには、以下のように記述します。 q1, q2 は fk_Quaternion 型の変数、d は double 型の変数です。
d = q1 ^ q2;
なお、四元数の内積は交換法則が成り立ちます。
fk_Quaternion& fk_Q_Inter_Linear | ( | const fk_Quaternion & | , |
const fk_Quaternion & | , | ||
double | |||
) |
fk_Quaternion& fk_Q_Inter_Sphere | ( | const fk_Quaternion & | , |
const fk_Quaternion & | , | ||
double | |||
) |