D3DXVec2BaryCentric
指定された 2D ベクトルを使用して、重心座標のポイントを返します。
D3DXVECTOR2 *
D3DXVec2BaryCentric(
D3DXVECTOR2 * pOut,
CONST D3DXVECTOR2 * pV1,
CONST D3DXVECTOR2 * pV2,
CONST D3DXVECTOR2 * pV3,
FLOAT f,
FLOAT g
);
パラメータ
- pOut
処理の結果を表わす D3DXVECTOR2 構造体へのポインター - pV1
演算対象の D3DXVECTOR2 構造体へのポインターです。 - pV2
演算対象の D3DXVECTOR2 構造体へのポインターです。 - pV3
演算対象の D3DXVECTOR2 構造体へのポインターです。 - f
加重係数。「解説」を参照してください。 - g
加重係数。「解説」を参照してください。
戻り値
重心座標の D3DXVECTOR2 構造体へのポインターです。
解説
D3DXVec2BaryCentric 関数は、三角形の実際の場所に関係なく、三角形の内部と周囲のポイントを把握するのに役立ちます。この関数では次の式を使用し、結果のポイントを返します。V1 + f(V2-V1) + g(V3-V1)
平面 V1V2V3 に存在する任意のポイントは、重心座標 (f,g) で表現できます。パラメーター f は結果に対する V2 の加重を、パラメーター g は V3 の加重を示します。また、1-f-g は結果に対する V1 の加重を示します。
これらの値には以下の関係があります。
- (f>=0 &, & g>=0 &, & 1-f-g>=0) が満たされる場合、ポイントは三角形 V1V2V3 の内部にあります。
- (f==0 &, & g>=0 &, & 1-f-g>=0) が満たされる場合、ポイントは V1V3 の線上にあります。
- (f>=0 &, & g==0 &, & 1-f-g>=0) が満たされる場合、ポイントは V1V2 の線上にあります。
- (f>=0 &, & g>=0 &, & 1-f-g==0) が満たされる場合、ポイントは V2V3 の線上にあります。
重心座標は、一般的な座標形式です。したがって、重心座標を使用することは座標系を変更することを意味します。デカルト座標で成り立つ事象は、重心座標でも成り立ちます。
この関数の戻り値は pOut パラメーターに返される値と 同じです。このため、D3DXVec2BaryCentric 関数は他の関数のパラメーターとして使用できます。
重心座標は、三角形の頂点に関して、三角形の内側のポイントを定義します。重心座標の詳細については、Mathworld の「Barycentric Coordinates (重心座標)」の説明を参照してください。
要件
ヘッダー: D3dx9math.h 宣言
ライブラリ: D3dx9.lib 内容