D3DXVec3BaryCentric 関数
D3DXVec3BaryCentric 関数
指定した 3D ベクトルを使って、重心座標の点を返す。
構文
D3DXVECTOR3 *WINAPI D3DXVec3BaryCentric(
D3DXVECTOR3 *pOut,
CONST D3DXVECTOR3 *pV1,
CONST D3DXVECTOR3 *pV2,
CONST D3DXVECTOR3 *pV3,
FLOAT f,
FLOAT g
);
パラメータ
- pOut
[out, retval] 演算結果である D3DXVECTOR3 構造体へのポインタ。 - pV1
[in] 処理の基になる D3DXVECTOR3 構造体へのポインタ。 - pV2
[in] 処理の基になる D3DXVECTOR3 構造体へのポインタ。 - pV3
[in] 処理の基になる D3DXVECTOR3 構造体へのポインタ。 - f
[in] 加重係数。「注意」を参照すること。 - g
[in] 加重係数。「注意」を参照すること。
戻り値
重心座標の D3DXVECTOR3 構造体へのポインタ。
注意
D3DXVec3BaryCentric 関数は、三角形の実際の位置とは関係なく、三角形の内部や周辺の点を理解する方法を提供する。この関数は、次の式を使って結果である点を返す。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 上にある。
重心座標は一般座標の 1 つの形式である。このコンテキストで、重心座標を使うことは、座標系の変更を表している。直交座標で真のものは、重心座標でも真である。
この関数の戻り値は、pOut パラメータの戻り値と同じである。したがって、D3DXVec3BaryCentric 関数を別の関数の引数として使える。
関数の情報
ヘッダー | d3dx9math.h |
インポート ライブラリ | d3dx9.lib |
最低限のオペレーティング システム | Windows 98 |