次の方法で共有


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