FineKernelToolKit  3.1.0
公開メンバ関数 | 静的公開メンバ関数 | プロパティ | 全メンバ一覧
FK_CLI::fk_HVector クラス

4次元ベクトルを管理するクラス [詳解]

公開メンバ関数

 fk_HVector ()
 コンストラクタ1 [詳解]
 
 fk_HVector (fk_Vector^ V)
 コンストラクタ2 [詳解]
 
 fk_HVector (fk_Vector^ V, double w)
 コンストラクタ3 [詳解]
 
 fk_HVector (fk_HVector^ H)
 コンストラクタ4 [詳解]
 
 ~fk_HVector ()
 デストラクタ [詳解]
 
bool Equals (fk_HVector^ H)
 同値比較メソッド1 [詳解]
 
virtual bool Equals (Object^ H) override
 同値比較メソッド2 [詳解]
 
String^ ToString () override
 文字列出力メソッド [詳解]
 
void Set (fk_Vector^ V, double w)
 成分設定メソッド1 [詳解]
 
void Set (double x, double y, double z, double w)
 成分設定メソッド3 [詳解]
 
void Set (double x, double y, double z)
 成分設定メソッド4 [詳解]
 
void Set (double x, double y)
 成分設定メソッド5 [詳解]
 
void Set (fk_Vector^ V)
 成分設定メソッド6 [詳解]
 
fk_VectorGetV (void)
 3次元ベクトル抽出メソッド [詳解]
 
void IsPos (void)
 位置ベクトル設定メソッド [詳解]
 
void IsVec (void)
 方向ベクトル設定メソッド [詳解]
 
void Init (void)
 初期化メソッド [詳解]
 

静的公開メンバ関数

static double operator* (fk_HVector^ , fk_HVector^ )
 内積二項演算子 [詳解]
 
static operator fk_HVector^ (fk_Vector^ V)
 fk_Vector 型からの変換演算子 [詳解]
 
static operator fk_Vector^ (fk_HVector^ H)
 fk_Vector 型への変換演算子 [詳解]
 

プロパティ

double x [get, set]
 x成分プロパティ [詳解]
 
double y [get, set]
 y成分プロパティ [詳解]
 
double z [get, set]
 z成分プロパティ [詳解]
 
double w [get, set]
 ベクトルの同次座標成分 [詳解]
 

詳解

4次元ベクトルを管理するクラス

このクラスは、4次元ベクトルの様々な機能を提供します。 成分は double 型によって格納されています。 fk_HVectorfk_Vector クラスの派生クラスとなっており、 継承した成分である x, y, z については通常の3次元成分と同様です。 4つめの成分である w は、多くの場合は同次座標成分を表し、 4元正方行列との演算のために存在します。

参照
fk_Vector, fk_Matrix, fk_FVector, fk_GenVector

構築子と解体子

FK_CLI::fk_HVector::fk_HVector ( )

コンストラクタ1

(0, 0, 0, 1) となる4次元ベクトルを生成します。

FK_CLI::fk_HVector::fk_HVector ( fk_Vector V)

コンストラクタ2

3次元ベクトルを入力とし、w を 1 とする4次元ベクトルを生成します。

param[in] V 3次元ベクトル

FK_CLI::fk_HVector::fk_HVector ( fk_Vector V,
double  w 
)

コンストラクタ3

3次元ベクトル V と実数 w を入力とし、 $ (V_x, V_y, V_z, w) $ となる4次元ベクトルを生成します。

引数
[in]V3次元ベクトル
[in]w同次座標値
FK_CLI::fk_HVector::fk_HVector ( fk_HVector H)

コンストラクタ4

引数で与えられた4次元ベクトルの値をコピーし、新たにインスタンスを生成します。

引数
[in]H別のインスタンス。
FK_CLI::fk_HVector::~fk_HVector ( )

デストラクタ

関数詳解

static double FK_CLI::fk_HVector::operator* ( fk_HVector ,
fk_HVector  
)
static

内積二項演算子

4次元ベクトル $ \mathbf{P} $$ \mathbf{Q} $ の内積値(スカラー積)は、以下のように定義されます。

\[ \mathbf{P}\cdot\mathbf{Q} = P_xQ_x + P_yQ_y + P_zQ_z + P_wQ_w \]

これを得るには、以下のように記述します。 P, Q はともに fk_HVector 型の変数で、d は double 型の変数です。

d = P * Q;

なお、内積は交換法則が成り立ちます。

static FK_CLI::fk_HVector::operator fk_HVector^ ( fk_Vector V)
static

fk_Vector 型からの変換演算子

以下のようなコードにより、 fk_Vector 型の変数 V は fk_HVector 型の変数 H に自動的に変換されます。

H = V;

この際、同次座標は 1 となります。

引数
[in]V3次元ベクトル
戻り値
4次元ベクトル
static FK_CLI::fk_HVector::operator fk_Vector^ ( fk_HVector H)
static

fk_Vector 型への変換演算子

以下のようなコードにより、 fk_HVector 型の変数 H は fk_Vector 型の変数 V に自動的に変換されます。

V = H;
引数
[in]H4次元ベクトル
戻り値
3次元ベクトル
bool FK_CLI::fk_HVector::Equals ( fk_HVector H)

同値比較メソッド1

2つのベクトルの値が同値かどうかを判定します。 単純に == 演算子を用いた場合はインスタンスが同一であるかどうかの判定となるため、 異なるインスタンスで同値かどうかを判定する場合はこのメソッドを利用して下さい。

引数
[in]H同値かどうかを判定するベクトル
戻り値
同値であれば true を、そうでなければ false を返します。
virtual bool FK_CLI::fk_HVector::Equals ( Object^  H)
overridevirtual

同値比較メソッド2

2つのベクトルの値が同値かどうかを判定します。 単純に == 演算子を用いた場合はインスタンスが同一であるかどうかの判定となるため、 異なるインスタンスで同値かどうかを判定する場合はこのメソッドを利用して下さい。

引数
[in]H同値かどうかを判定するベクトル
戻り値
同値であれば true を、そうでなければ false を返します。
String ^ FK_CLI::fk_HVector::ToString ( )
override

文字列出力メソッド

現在のベクトル成分値を文字列として出力します。

戻り値
成分値の文字列
void FK_CLI::fk_HVector::Set ( fk_Vector V,
double  w 
)

成分設定メソッド1

各成分を設定します。

引数
[in]V(x,y,z)各成分となる3次元ベクトル
[in]w同次座標成分値
void FK_CLI::fk_HVector::Set ( double  x,
double  y,
double  z,
double  w 
)

成分設定メソッド3

各成分を設定します。

引数
[in]xx成分の値
[in]yy成分の値
[in]zz成分の値
[in]w同次座標成分の値
void FK_CLI::fk_HVector::Set ( double  x,
double  y,
double  z 
)

成分設定メソッド4

(x,y,z)各成分を設定します。同次座標は現状を維持します。

引数
[in]xx成分の値
[in]yy成分の値
[in]zz成分の値
void FK_CLI::fk_HVector::Set ( double  x,
double  y 
)

成分設定メソッド5

(x,y)各成分を設定します。z成分と同次座標成分は現状を維持します。

引数
[in]xx成分の値
[in]yy成分の値
void FK_CLI::fk_HVector::Set ( fk_Vector V)

成分設定メソッド6

(x,y,z)各成分を設定します。同次座標は現状を維持します。

引数
[in]V(x,y,z)各成分となる3次元ベクトル
fk_Vector ^ FK_CLI::fk_HVector::GetV ( void  )

3次元ベクトル抽出メソッド

(x,y,z)の成分を持つ3次元ベクトルを取得します。

戻り値
3次元ベクトル
void FK_CLI::fk_HVector::IsPos ( void  )

位置ベクトル設定メソッド

このベクトルを、位置ベクトルとして扱えるようにします。 このメソッドは、同次座標に 1 を設定することと同義です。

void FK_CLI::fk_HVector::IsVec ( void  )

方向ベクトル設定メソッド

このベクトルを、方向ベクトルとして扱えるようにします。 このメソッドは、同次座標に 0 を設定することと同義です。

void FK_CLI::fk_HVector::Init ( void  )

初期化メソッド

4次元ベクトルを (0, 0, 0, 1) に設定します。

プロパティ詳解

double FK_CLI::fk_HVector::x
getset

x成分プロパティ

x成分を表すプロパティです。以下のようなコードで利用できます。

V.x = 0.0;
double FK_CLI::fk_HVector::y
getset

y成分プロパティ

y成分を表すプロパティです。以下のようなコードで利用できます。

V.y = 0.0;
double FK_CLI::fk_HVector::z
getset

z成分プロパティ

z成分を表すプロパティです。以下のようなコードで利用できます。

V.z = 0.0;
double FK_CLI::fk_HVector::w
getset

ベクトルの同次座標成分

同次座標成分を表すプロパティです。以下のようなコードで利用できます。

V.w = 1.0;