FineKernelToolKit: FK_CLI::fk_HVector クラス

FineKernelToolKit 4.3.0

読み取り中…
検索中…
一致する文字列を見つけられません
公開メンバ関数 | 静的公開メンバ関数 | プロパティ | 全メンバ一覧
FK_CLI::fk_HVector クラス

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_Vector, fk_Matrix, fk_FVector, fk_GenVector

## 構築子と解体子

## ◆ fk_HVector() [1/4]

FK_CLI::fk_HVector::fk_HVector | ( |  | ) |

コンストラクタ1

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

## ◆ fk_HVector() [2/4]

FK_CLI::fk_HVector::fk_HVector | ( | fk_Vector^ | V | ) |

コンストラクタ2

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

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

## ◆ fk_HVector() [3/4]

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_HVector() [4/4]

FK_CLI::fk_HVector::fk_HVector | ( | fk_HVector^ | H | ) |

コンストラクタ4

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

引数

  [in] | H | 別のインスタンス。

## ◆ ~fk_HVector()

FK_CLI::fk_HVector::~fk_HVector | ( |  | ) |

デストラクタ

## 関数詳解

## ◆ operator*()

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;

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

## ◆ operator fk_HVector^()

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

static

fk_Vector 型からの変換演算子

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

    H = V;

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

引数

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

戻り値
  4次元ベクトル

## ◆ operator fk_Vector^()

FK_CLI::fk_HVector::operator fk_Vector^ | ( | fk_HVector^ | H | ) |

static

fk_Vector 型への変換演算子

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

    V = H;

引数

  [in] | H | 4次元ベクトル

戻り値
  3次元ベクトル

## ◆ Equals() [1/2]

bool FK_CLI::fk_HVector::Equals | ( | fk_HVector^ | H | ) |

同値比較メソッド1

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

引数

  [in] | H | 同値かどうかを判定するベクトル

戻り値
  同値であれば true を、そうでなければ false を返します。

## ◆ Equals() [2/2]

virtual bool FK_CLI::fk_HVector::Equals | ( | Object^ | H | ) |

overridevirtual

同値比較メソッド2

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

引数

  [in] | H | 同値かどうかを判定するベクトル

戻り値
  同値であれば true を、そうでなければ false を返します。

## ◆ ToString()

String ^ FK_CLI::fk_HVector::ToString | ( |  | ) |

override

文字列出力メソッド

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

戻り値
  成分値の文字列

## ◆ Set() [1/6]

void FK_CLI::fk_HVector::Set | ( | fk_Vector^ | V,
|  | double | w )

成分設定メソッド1

各成分を設定します。

引数

  [in] | V | (x,y,z)各成分となる3次元ベクトル
  [in] | w | 同次座標成分値

## ◆ Set() [2/6]

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 | 同次座標成分の値

## ◆ Set() [3/6]

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成分の値

## ◆ Set() [4/6]

void FK_CLI::fk_HVector::Set | ( | double | x,
|  | double | y )

成分設定メソッド5

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

引数

  [in] | x | x成分の値
  [in] | y | y成分の値

## ◆ Set() [5/6]

void FK_CLI::fk_HVector::Set | ( | double | x | ) |

成分設定メソッド5

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

引数

  [in] | x | x成分の値

## ◆ Set() [6/6]

void FK_CLI::fk_HVector::Set | ( | fk_Vector^ | V | ) |

成分設定メソッド6

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

引数

  [in] | V | (x,y,z)各成分となる3次元ベクトル

## ◆ GetV()

fk_Vector ^ FK_CLI::fk_HVector::GetV | ( | void |  | ) |

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

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

戻り値
  3次元ベクトル

## ◆ IsPos()

void FK_CLI::fk_HVector::IsPos | ( | void |  | ) |

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

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

## ◆ IsVec()

void FK_CLI::fk_HVector::IsVec | ( | void |  | ) |

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

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

## ◆ Init()

void FK_CLI::fk_HVector::Init | ( | void |  | ) |

初期化メソッド

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

## プロパティ詳解

## ◆ x

double FK_CLI::fk_HVector::x

getset

x成分プロパティ

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

    V.x = 0.0;

## ◆ y

double FK_CLI::fk_HVector::y

getset

y成分プロパティ

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

    V.y = 0.0;

## ◆ z

double FK_CLI::fk_HVector::z

getset

z成分プロパティ

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

    V.z = 0.0;

## ◆ w

double FK_CLI::fk_HVector::w

getset

ベクトルの同次座標成分

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

    V.w = 1.0;