FineKernelToolKit 4.2.13
|
4次元ベクトルを管理するクラス [詳解]
#include <CLI/FK_CLI/include/Vector_CLI.h>
公開メンバ関数 | |
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 (double x) |
成分設定メソッド5 | |
void | Set (fk_Vector^ V) |
成分設定メソッド6 | |
fk_Vector ^ | GetV (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_HVector は fk_Vector クラスの派生クラスとなっており、 継承した成分である x, y, z については通常の3次元成分と同様です。 4つめの成分である w は、多くの場合は同次座標成分を表し、 4元正方行列との演算のために存在します。
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] | V | 3次元ベクトル |
[in] | w | 同次座標値 |
FK_CLI::fk_HVector::fk_HVector | ( | fk_HVector^ | H | ) |
コンストラクタ4
引数で与えられた4次元ベクトルの値をコピーし、新たにインスタンスを生成します。
[in] | H | 別のインスタンス。 |
FK_CLI::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_Vector 型からの変換演算子
以下のようなコードにより、 fk_Vector 型の変数 V は fk_HVector 型の変数 H に自動的に変換されます。
H = V;
この際、同次座標は 1 となります。
[in] | V | 3次元ベクトル |
|
static |
fk_Vector 型への変換演算子
以下のようなコードにより、 fk_HVector 型の変数 H は fk_Vector 型の変数 V に自動的に変換されます。
V = H;
[in] | H | 4次元ベクトル |
bool FK_CLI::fk_HVector::Equals | ( | fk_HVector^ | H | ) |
同値比較メソッド1
2つのベクトルの値が同値かどうかを判定します。 単純に == 演算子を用いた場合はインスタンスが同一であるかどうかの判定となるため、 異なるインスタンスで同値かどうかを判定する場合はこのメソッドを利用して下さい。
[in] | H | 同値かどうかを判定するベクトル |
|
overridevirtual |
同値比較メソッド2
2つのベクトルの値が同値かどうかを判定します。 単純に == 演算子を用いた場合はインスタンスが同一であるかどうかの判定となるため、 異なるインスタンスで同値かどうかを判定する場合はこのメソッドを利用して下さい。
[in] | H | 同値かどうかを判定するベクトル |
|
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] | x | x成分の値 |
[in] | y | y成分の値 |
[in] | z | z成分の値 |
[in] | w | 同次座標成分の値 |
void FK_CLI::fk_HVector::Set | ( | double | x, |
double | y, | ||
double | z | ||
) |
成分設定メソッド4
(x,y,z)各成分を設定します。同次座標は現状を維持します。
[in] | x | x成分の値 |
[in] | y | y成分の値 |
[in] | z | z成分の値 |
void FK_CLI::fk_HVector::Set | ( | double | x, |
double | y | ||
) |
成分設定メソッド5
(x,y)各成分を設定します。z成分と同次座標成分は現状を維持します。
[in] | x | x成分の値 |
[in] | y | y成分の値 |
void FK_CLI::fk_HVector::Set | ( | double | x | ) |
成分設定メソッド5
x 成分を設定します。y, z成分と同次座標成分は現状を維持します。
[in] | x | x成分の値 |
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次元ベクトルを取得します。
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) に設定します。
|
getset |
x成分プロパティ
x成分を表すプロパティです。以下のようなコードで利用できます。
V.x = 0.0;
|
getset |
y成分プロパティ
y成分を表すプロパティです。以下のようなコードで利用できます。
V.y = 0.0;
|
getset |
z成分プロパティ
z成分を表すプロパティです。以下のようなコードで利用できます。
V.z = 0.0;
|
getset |
ベクトルの同次座標成分
同次座標成分を表すプロパティです。以下のようなコードで利用できます。
V.w = 1.0;