4次元ベクトルを管理するクラス [詳細]
fk_HVectorに対する継承グラフ
fk_HVectorのコラボレーション図Public メソッド | |
| fk_HVector (void) | |
| コンストラクタ1 [詳細] | |
| fk_HVector (const fk_Vector &v, double w=1.0) | |
| コンストラクタ2 [詳細] | |
| virtual | ~fk_HVector () |
| デストラクタ [詳細] | |
| fk_HVector (const fk_HVector &) | |
| コピーコンストラクタ [詳細] | |
比較演算子 | |
| bool | operator== (const fk_HVector &) const |
| 同値比較演算子 [詳細] | |
| bool | operator!= (const fk_HVector &) const |
| 異値比較演算子 [詳細] | |
代入演算子 | |
| fk_HVector & | operator= (const fk_HVector &) |
| 単純代入演算子 [詳細] | |
| fk_HVector & | operator= (const fk_Vector &) |
| 単純代入演算子 [詳細] | |
| fk_HVector & | operator*= (const fk_Matrix &) |
| 行列変換代入演算子1 [詳細] | |
| fk_HVector & | operator*= (const fk_OrthoMatrix &) |
| 行列変換代入演算子2 [詳細] | |
メンバ関数 | |
| void | set (const fk_Vector &v) |
| fk_Vector による設定関数1 [詳細] | |
| void | set (const fk_Vector &v, double w) |
| fk_Vector による設定関数2 [詳細] | |
| void | set (double x, double y, double z=0.0) |
| 数値による設定関数1 [詳細] | |
| void | set (double x, double y, double z, double w) |
| 数値による設定関数2 [詳細] | |
| void | setw (double w) |
| 同次座標設定関数 [詳細] | |
| fk_Vector | getV (void) const |
| 3次元ベクトル取得関数 [詳細] | |
| double | getw (void) const |
| 同次座標値取得関数 [詳細] | |
| void | ispos (void) |
| 位置ベクトル設定関数 [詳細] | |
| void | isvec (void) |
| 方向ベクトル設定関数 [詳細] | |
| void | init (void) |
| 初期化関数 [詳細] | |
Public メソッド inherited from fk_Vector | |
| fk_Vector (double x=0.0, double y=0.0, double z=0.0) | |
| コンストラクタ [詳細] | |
| fk_Vector (const fk_Vector &) | |
| コピーコンストラクタ [詳細] | |
| fk_Vector (const fk_FVector &) | |
| コピーコンストラクタ [詳細] | |
| virtual | ~fk_Vector () |
| デストラクタ [詳細] | |
| fk_Vector & | operator- (void) const |
| 単項マイナス演算子 [詳細] | |
| bool | operator== (const fk_Vector &) const |
| 同値比較演算子 [詳細] | |
| bool | operator!= (const fk_Vector &) const |
| 異値比較演算子 [詳細] | |
| bool | operator> (const fk_Vector &) const |
| 右不等号演算子 [詳細] | |
| bool | operator< (const fk_Vector &) const |
| 左不等号演算子 [詳細] | |
| bool | operator>= (const fk_Vector &) const |
| 等価右不等号演算子 [詳細] | |
| bool | operator<= (const fk_Vector &) const |
| 等価左不等号演算子 [詳細] | |
| fk_Vector & | operator= (const fk_Vector &) |
| 単純代入演算子 [詳細] | |
| fk_Vector & | operator= (const fk_FVector &) |
| fk_FVector 型からの単純代入演算子 [詳細] | |
| fk_Vector & | operator*= (double) |
| 実数積代入演算子 [詳細] | |
| fk_Vector & | operator/= (double) |
| 実数商代入演算子 [詳細] | |
| fk_Vector & | operator+= (const fk_Vector &) |
| 単項和代入演算子 [詳細] | |
| fk_Vector & | operator-= (const fk_Vector &) |
| 単項差代入演算子 [詳細] | |
| fk_Vector & | operator*= (const fk_Matrix &) |
| 行列変換代入演算子1 [詳細] | |
| fk_Vector & | operator*= (const fk_OrthoMatrix &) |
| 行列変換代入演算子2 [詳細] | |
| double | dist (void) const |
| ベクトル長さ算出関数 [詳細] | |
| double | dist2 (void) const |
| ベクトル長さ平方算出関数 [詳細] | |
| bool | normalize (void) |
| 正規化関数 [詳細] | |
| bool | isZero (void) const |
| 零ベクトル判定関数 [詳細] | |
| fk_Vector | proj (const fk_Vector &Q) const |
| 射影ベクトル算出関数 [詳細] | |
| fk_Vector | perp (const fk_Vector &Q) const |
| 射影垂直成分ベクトル算出関数 [詳細] | |
Public 変数 | |
| double | w |
| 同次座標成分 [詳細] | |
Public 変数 inherited from fk_Vector | |
| double | x |
| x成分 [詳細] | |
| double | y |
| y成分 [詳細] | |
| double | z |
| z成分 [詳細] | |
フレンド | |
二項演算子 | |
| double | operator* (const fk_HVector &, const fk_HVector &) |
| 内積二項演算子 [詳細] | |
| fk_HVector | operator* (const fk_Matrix &, const fk_HVector &) |
| ベクトル変換二項演算子 [詳細] | |
| fk_HVector | operator* (const fk_OrthoMatrix &, const fk_HVector &) |
| ベクトル変換二項演算子 [詳細] | |
二項演算子 | |
4次元ベクトルを管理するクラス
このクラスは、4次元ベクトルの様々な機能を提供します。 成分は double 型によって格納されています。 fk_HVector は fk_Vector クラスの派生クラスとなっており、 継承した成分である x, y, z については通常の3次元成分と同様です。 4つめの成分である w は、多くの場合は同次座標成分を表し、 4元正方行列との演算のために存在します。
| fk_HVector::fk_HVector | ( | void | ) |
コンストラクタ1
| fk_HVector::fk_HVector | ( | const fk_Vector & | v, |
| double | w = 1.0 |
||
| ) |
コンストラクタ2
| [in] | v | x,y,z成分の入力となる3次元ベクトル |
| [in] | w | 同次座標値 |
|
inlinevirtual |
デストラクタ
| fk_HVector::fk_HVector | ( | const fk_HVector & | ) |
コピーコンストラクタ
| bool fk_HVector::operator== | ( | const fk_HVector & | ) | const |
同値比較演算子
fk_HVector では、以下のように記述することで、 v1 と v2 が等しいかどうかを判断できます。
if(v1 == v2) {
:
:
}
ここでの比較は、ある程度の計算誤差を許容します。 なお、同次座標成分の比較も含まれます。
| bool fk_HVector::operator!= | ( | const fk_HVector & | ) | const |
異値比較演算子
fk_HVector では、以下のように記述することで、 v1 と v2 が等しくないかどうかを判断できます。
if(v1 != v2) {
:
:
}
ここでの比較は、ある程度の計算誤差を許容します。 なお、同次座標成分の比較も含まれます。
| fk_HVector& fk_HVector::operator= | ( | const fk_HVector & | ) |
単純代入演算子
| fk_HVector& fk_HVector::operator= | ( | const fk_Vector & | ) |
単純代入演算子
この代入演算子において、同次座標成分は 1 に設定されます。
| fk_HVector& fk_HVector::operator*= | ( | const fk_Matrix & | ) |
行列変換代入演算子1
以下のコードは、V を M によって変換した値を代入します。 V は fk_HVector 型の変数、M は fk_Matrix 型の変数です。
V *= M;
上記コードは、以下のコードと同義です。
V = M * V;
| fk_HVector& fk_HVector::operator*= | ( | const fk_OrthoMatrix & | ) |
行列変換代入演算子2
以下のコードは、V を M によって変換した値を代入します。 V は fk_HVector 型の変数、M は fk_OrthoMatrix 型の変数です。
V *= M;
上記コードは、以下のコードと同義です。
V = M * V;
| void fk_HVector::set | ( | const fk_Vector & | v | ) |
| void fk_HVector::set | ( | const fk_Vector & | v, |
| double | w | ||
| ) |
|
virtual |
数値による設定関数1
数値引数によって各成分の値を設定します。 w 成分は 1 に設定します。 既に w 成分に 1 以外の値が入っていた場合でも、1 に設定されます。
| [in] | x | x成分値 |
| [in] | y | y成分値 |
| [in] | z | z成分値 |
fk_Vectorを再定義しています。
| void fk_HVector::set | ( | double | x, |
| double | y, | ||
| double | z, | ||
| double | w | ||
| ) |
数値による設定関数2
数値引数によって各成分の値を設定します。
| [in] | x | x成分値 |
| [in] | y | y成分値 |
| [in] | z | z成分値 |
| [in] | w | 同次座標値 |
| void fk_HVector::setw | ( | double | w | ) |
同次座標設定関数
同次座標成分を設定します。 その他の成分については値を変更しません。
| [in] | w | 同次座標値 |
| fk_Vector fk_HVector::getV | ( | void | ) | const |
3次元ベクトル取得関数
3次元ベクトル部を返します。
| double fk_HVector::getw | ( | void | ) | const |
同次座標値取得関数
同次座標値を取得します。
| void fk_HVector::ispos | ( | void | ) |
位置ベクトル設定関数
このベクトルを、位置ベクトルとして扱えるようにします。 この関数は、同次座標に 1 を設定することと同義です。
| void fk_HVector::isvec | ( | void | ) |
方向ベクトル設定関数
このベクトルを、方向ベクトルとして扱えるようにします。 この関数は、同次座標に 0 を設定することと同義です。
|
virtual |
|
friend |
内積二項演算子
fk_HVector 型のベクトル V1 と V2 について、 それぞれの3次元ベクトル部の内積値(スカラー積)を得るには、以下のように記述します。 V1, V2 はともに fk_HVector 型の変数で、d は double 型の変数です。
d = V1 * V2;
なお、内積は交換法則が成り立ちます。 同次座標成分については、内積値の算出には利用しません。
|
friend |
ベクトル変換二項演算子
4次元ベクトル V1 の、行列 M による変換ベクトル V2 を求めるには、 以下のように記述します。 V1, V2 は共に fk_HVector 型の変数で、M は fk_Matrix 型の変数です。
V2 = M * V1;
FK では行列体系として MV 系を採用しており、 行列のベクトル変換の際には行列が左側、ベクトルが右側である必要があります。
ベクトル変換二項演算子
以下のコードは、fk_HVector 型の変数 V_org を fk_Matrix 型の変数 M によって変換した値を、 fk_HVector 型変数 V_new に代入します。
V_new = M * V_org;
FK では行列体系として MV 系を採用しており、 行列のベクトル変換の際には行列が左側、ベクトルが右側である必要があります。
|
friend |
ベクトル変換二項演算子
4次元ベクトル V1 の、直交行列 M による変換ベクトル V2 を求めるには、 以下のように記述します。 V1, V2 は共に fk_HVector 型の変数で、M は fk_OrthoMatrix 型の変数です。
V2 = M * V1;
FK では行列体系として MV 系を採用しており、 行列のベクトル変換の際には行列が左側、ベクトルが右側である必要があります。
ベクトル変換二項演算子
以下のコードは、fk_HVector 型の変数 V_org を fk_OrthoMatrix 型の変数 M によって変換した値を、 fk_HVector 型変数 V_new に代入します。
V_new = M * V_org;
FK では行列体系として MV 系を採用しており、 行列のベクトル変換の際には行列が左側、ベクトルが右側である必要があります。
| double fk_HVector::w |
同次座標成分
1.8.5