構成 | |
class | fk_Vector |
3次元ベクトルを管理するクラス [詳細] | |
class | fk_HVector |
4次元ベクトルを管理するクラス [詳細] | |
class | fk_FVector |
単精度浮動小数点型3次元ベクトルを管理するクラス [詳細] | |
列挙型 | |
enum | fk_Axis { fk_X, fk_Y, fk_Z } |
座標軸を表す列挙型 [詳細] | |
関数 | |
double | operator* (const fk_Vector &, const fk_Vector &) |
内積二項演算子 [詳細] | |
fk_Vector | operator+ (const fk_Vector &, const fk_Vector &) |
ベクトル和二項演算子 [詳細] | |
fk_Vector | operator- (const fk_Vector &, const fk_Vector &) |
ベクトル差二項演算子 [詳細] | |
fk_Vector | operator* (const fk_Vector &, double) |
実数倍二項演算子1 [詳細] | |
fk_Vector | operator* (double, const fk_Vector &) |
実数倍二項演算子2 [詳細] | |
fk_Vector | operator/ (const fk_Vector &, double) |
実数商二項演算子 [詳細] | |
fk_Vector | operator^ (const fk_Vector &, const fk_Vector &) |
外積二項演算子 [詳細] | |
double | operator* (const fk_HVector &, const fk_HVector &) |
内積二項演算子 [詳細] | |
fk_HVector | operator* (const fk_Matrix &, const fk_HVector &) |
行列変換二項演算子1 [詳細] | |
fk_HVector | operator* (const fk_OrthoMatrix &, const fk_HVector &) |
行列変換二項演算子2 [詳細] | |
変数 | |
const double | FK_VECTOREPS = 1.0e-12 |
ベクトル演算誤差基準値 [詳細] | |
enum fk_Axis |
内積二項演算子
3次元ベクトル と
の内積値(スカラー積)は、以下のように定義されます。
これを得るには、以下のように記述します。 P, Q はともに fk_Vector 型の変数で、d は double 型の変数です。
d = P * Q;
なお、内積は交換法則が成り立ちます。
ベクトル和二項演算子
ベクトル V1 と V2 の和を得るには、以下のように記述します。 V1, V2, V3 はいずれも fk_Vector 型の変数です。
V3 = V1 + V2;
なお、和演算は交換法則が成り立ちます。
ベクトル差二項演算子
ベクトル V1 と V2 の差を得るには、以下のように記述します。 V1, V2, V3 はいずれも fk_Vector 型の変数です。
V3 = V1 - V2;
なお、差演算は交換法則が成り立ちません。
実数倍二項演算子1
ベクトル V1 のスカラー倍ベクトルを得るには、以下のように記述します。 V1, V2 は共に fk_Vector 型の変数で、d は double 型の変数です。
V2 = V1 * d;
なお、ベクトルと実数の順番は逆でも構いません。
実数倍二項演算子2
ベクトル V1 のスカラー倍ベクトルを得るには、以下のように記述します。 V1, V2 は共に fk_Vector 型の変数で、d は double 型の変数です。
V2 = d * V1;
なお、ベクトルと実数の順番は逆でも構いません。
実数商二項演算子
ベクトル V1 のスカラー商ベクトルを得るには、以下のように記述します。 V1, V2 は共に fk_Vector 型の変数で、d は double 型の変数です。
V2 = V1/d;
外積二項演算子
3次元ベクトル と
の外積ベクトル(ベクトル積)は、以下のように定義されます。
これを得るには、以下のように記述します。 P,Q,R はいずれも fk_Vector 型の変数です。
R = P ^ Q;
なお、外積は以下のような法則があります。
double operator* | ( | const fk_HVector & | , |
const fk_HVector & | |||
) |
内積二項演算子
fk_HVector 型のベクトル V1 と V2 について、 それぞれの3次元ベクトル部の内積値(スカラー積)を得るには、以下のように記述します。 V1, V2 はともに fk_HVector 型の変数で、d は double 型の変数です。
d = V1 * V2;
なお、内積は交換法則が成り立ちます。 同次座標成分については、内積値の算出には利用しません。
fk_HVector operator* | ( | const fk_Matrix & | , |
const fk_HVector & | |||
) |
行列変換二項演算子1
ベクトル変換二項演算子
以下のコードは、fk_HVector 型の変数 V_org を fk_Matrix 型の変数 M によって変換した値を、 fk_HVector 型変数 V_new に代入します。
V_new = M * V_org;
FK では行列体系として MV 系を採用しており、 行列のベクトル変換の際には行列が左側、ベクトルが右側である必要があります。
fk_HVector operator* | ( | const fk_OrthoMatrix & | , |
const fk_HVector & | |||
) |
行列変換二項演算子2
ベクトル変換二項演算子
以下のコードは、fk_HVector 型の変数 V_org を fk_OrthoMatrix 型の変数 M によって変換した値を、 fk_HVector 型変数 V_new に代入します。
V_new = M * V_org;
FK では行列体系として MV 系を採用しており、 行列のベクトル変換の際には行列が左側、ベクトルが右側である必要があります。
const double FK_VECTOREPS = 1.0e-12 |
ベクトル演算誤差基準値