FineKernelToolKit
3.1.0
|
幾何平面を管理するクラス [詳解]
公開メンバ関数 | |
fk_Plane () | |
コンストラクタ [詳解] | |
fk_Plane (fk_Plane^ P) | |
コピーコンストラクタ [詳解] | |
~fk_Plane () | |
デストラクタ [詳解] | |
!fk_Plane () | |
ファイナライザ [詳解] | |
String^ | ToString () override |
文字列出力メソッド [詳解] | |
bool | SetPosNormal (fk_Vector^ pos, fk_Vector^ norm) |
平面設定メソッド1 [詳解] | |
bool | Set3Pos (fk_Vector^ pos1, fk_Vector^ pos2, fk_Vector^ pos3) |
平面設定メソッド2 [詳解] | |
bool | SetPosUVVec (fk_Vector^ pos, fk_Vector^ U, fk_Vector^ V) |
平面設定メソッド3 [詳解] | |
double | GetDist (fk_Vector^ pos) |
任意点距離参照メソッド [詳解] | |
fk_Vector^ | GetPos (double u, double v) |
u,v パラメータによる平面上点参照メソッド [詳解] | |
bool | IsParallel (fk_Vector^ V) |
ベクトル平行判定メソッド [詳解] | |
bool | IsParallel (fk_Plane^ P) |
bool | IsVertical (fk_Vector^ V) |
ベクトル垂直判定メソッド [詳解] | |
bool | IsVertical (fk_Plane^ P) |
bool | CalcCrossPos (fk_Vector^ A, fk_Vector^ B, fk_Vector^ pos) |
交点位置ベクトル参照メソッド [詳解] | |
bool | CalcCrossLineParam (fk_Vector^ A, fk_Vector^ B, double% t) |
交点直線パラメータ参照メソッド [詳解] | |
bool | CalcCrossPlaneParam (fk_Vector^ A, fk_Vector^ B, double% u, double% v) |
交点平面パラメータ参照メソッド [詳解] | |
bool | CalcCrossAll (fk_Vector^ A, fk_Vector^ B, fk_Vector^ pos, double% t, double% u, double% v) |
交点情報参照メソッド [詳解] | |
プロパティ | |
fk_Vector^ | BasePos [get] |
基点ベクトルプロパティ [詳解] | |
fk_Vector^ | UVec [get] |
Uベクトルプロパティ [詳解] | |
fk_Vector^ | VVec [get] |
Vベクトルプロパティ [詳解] | |
fk_Vector^ | Normal [get] |
法線ベクトルプロパティ [詳解] | |
double | Dist [get] |
原点距離参照メソッド [詳解] | |
幾何平面を管理するクラス
このクラスは、空間中の平面に関する幾何的な算出を行う機能を提供します。 このクラスは fk_Polygon のような形状を生成するためのものではなく、 純粋に幾何計算を行うためのものです。具体的には、以下のような処理が可能です。
fk_Plane において、平面 P の表現は平面上の点 と、 平面上の平行でない2つの単位ベクトル
によって、
という式でなされます。 は実数パラメータです。 各メソッドの解説では、
を「基点ベクトル」、
を「Uベクトル」「Vベクトル」とします。
FK_CLI::fk_Plane::fk_Plane | ( | ) |
コンストラクタ
FK_CLI::fk_Plane::fk_Plane | ( | fk_Plane^ | P | ) |
コピーコンストラクタ
FK_CLI::fk_Plane::~fk_Plane | ( | ) |
デストラクタ
FK_CLI::fk_Plane::!fk_Plane | ( | ) |
ファイナライザ
|
override |
文字列出力メソッド
現在の平面情報を文字列として出力します。
平面設定メソッド1
平面上の1点と、平面の法線ベクトルを指定することにより、平面を設定します。 基点ベクトルは pos となり、UベクトルとVベクトルは自動的に算出されます。 法線ベクトルとして零ベクトルが入力された場合はエラーとなります。
[in] | pos | 基点ベクトル |
[in] | norm | 法線ベクトル |
平面設定メソッド2
平面上の3点を指定することにより、平面を設定します。 基点ベクトルは pos1 となり、 Uベクトルは (pos2 - pos1)、 Vベクトルは (pos3 - pos1) をそれぞれ正規化したものとなります。 3点が同一直線上にある場合はエラーとなります。
[in] | pos1 | 基点ベクトル |
[in] | pos2 | 平面上の点の位置ベクトル |
[in] | pos3 | 平面上の点の位置ベクトル |
平面設定メソッド3
平面上の1点と、平面の法線ベクトルに垂直な平行でない 2つのベクトルを指定することにより、平面を設定します。 引数の U, V がそれぞれ Uベクトル、Vベクトルとして設定されます。 U, V が平行であるか、少なくとも一方が零ベクトルであった場合エラーとなります。
[in] | pos | 基点ベクトル |
[in] | U | Uベクトル。単位ベクトルである必要はありません。 |
[in] | V | Vベクトル。単位ベクトルである必要はありません。 |
double FK_CLI::fk_Plane::GetDist | ( | fk_Vector^ | pos | ) |
任意点距離参照メソッド
平面と任意の点との距離を取得します。
[in] | pos | 任意の位置ベクトル |
fk_Vector ^ FK_CLI::fk_Plane::GetPos | ( | double | u, |
double | v | ||
) |
u,v パラメータによる平面上点参照メソッド
概要で述べた数式に従って、平面上点の位置ベクトルを算出します。
[in] | u | uパラメータ |
[in] | v | vパラメータ |
bool FK_CLI::fk_Plane::IsParallel | ( | fk_Vector^ | V | ) |
ベクトル平行判定メソッド
任意のベクトルが平行であるかどうかを判定します。 V が零ベクトルであった場合は常に false を返します。
[in] | V | 任意ベクトル |
bool FK_CLI::fk_Plane::IsParallel | ( | fk_Plane^ | P | ) |
別の任意の平面と平行であるかどうかを判定します。
[in] | P | 任意平面 |
bool FK_CLI::fk_Plane::IsVertical | ( | fk_Vector^ | V | ) |
ベクトル垂直判定メソッド
任意のベクトルが垂直であるかどうかを判定します。 V が零ベクトルであった場合は常に false を返します。
[in] | V | 任意ベクトル |
bool FK_CLI::fk_Plane::IsVertical | ( | fk_Plane^ | P | ) |
別の任意の平面と垂直であるかどうかを判定します。
[in] | P | 任意平面 |
交点位置ベクトル参照メソッド
2点A, B を通る直線と平面との交点の位置ベクトルを取得します。 A,Bが同じ位置であった場合は、直線と平面が平行である場合、 エラーとなります。
[in] | A | 直線上の1点 |
[in] | B | 直線上の1点 |
[out] | pos | 交点位置ベクトルが代入されます。 |
交点直線パラメータ参照メソッド
2点A, B を通る直線と平面との交点の、直線上でのパラメータを取得します。 直線式 は、以下のようなものであると想定します。
A,Bが同じ位置であった場合は、直線と平面が平行である場合、 エラーとなります。
[in] | A | 直線上の1点 |
[in] | B | 直線上の1点 |
[out] | t | 交点の直線上でのパラメータが代入されます。 |
交点平面パラメータ参照メソッド
2点A, B を通る直線と平面との交点の、平面上でのパラメータを取得します。 平面の式は概要のものと想定します。 A,Bが同じ位置であった場合は、直線と平面が平行である場合、 エラーとなります。
[in] | A | 直線上の1点 |
[in] | B | 直線上の1点 |
[out] | u | 交点の平面上でのuパラメータが代入されます。 |
[out] | v | 交点の平面上でのvパラメータが代入されます。 |
bool FK_CLI::fk_Plane::CalcCrossAll | ( | fk_Vector^ | A, |
fk_Vector^ | B, | ||
fk_Vector^ | pos, | ||
double% | t, | ||
double% | u, | ||
double% | v | ||
) |
交点情報参照メソッド
2点A, B を通る直線と平面との交点の、直線上でのパラメータを取得します。 直線式 は、以下のようなものであると想定します。
平面の式は概要のものと想定します。 A,Bが同じ位置であった場合は、直線と平面が平行である場合、 エラーとなります。
[in] | A | 直線上の1点 |
[in] | B | 直線上の1点 |
[out] | pos | 交点位置ベクトルが代入されます。 |
[out] | t | 交点の直線上でのパラメータが代入されます。 |
[out] | u | 交点の平面上でのuパラメータが代入されます。 |
[out] | v | 交点の平面上でのvパラメータが代入されます。 |
|
get |
基点ベクトルプロパティ
基点ベクトルを取得します。
|
get |
Uベクトルプロパティ
Uベクトルを取得します。
|
get |
Vベクトルプロパティ
Vベクトルを取得します。
|
get |
法線ベクトルプロパティ
法線ベクトルを取得します。
|
get |
原点距離参照メソッド
平面と原点との距離を取得します。