D3DXVec4BaryCentric 函数 (D3dx9math.h)

注意

D3DX 实用工具库已弃用。 建议改用 DirectXMath

使用指定的 4D 向量返回 Barycentric 坐标中的点。

语法

D3DXVECTOR4* D3DXVec4BaryCentric(
  _Out_       D3DXVECTOR4 *pOut,
  _In_  const D3DXVECTOR4 *pV1,
  _In_  const D3DXVECTOR4 *pV2,
  _In_  const D3DXVECTOR4 *pV3,
  _In_        FLOAT       f,
  _In_        FLOAT       g
);

参数

pOut [out]

类型: D3DXVECTOR4*

指向作为操作结果的 D3DXVECTOR4 结构的指针。

pV1 [in]

类型: const D3DXVECTOR4*

指向源 D3DXVECTOR4 结构的指针。

pV2 [in]

类型: const D3DXVECTOR4*

指向源 D3DXVECTOR4 结构的指针。

pV3 [in]

类型: const D3DXVECTOR4*

指向源 D3DXVECTOR4 结构的指针。

f [in]

类型: FLOAT

加权因子。 请参阅“备注”。

g [in]

类型: FLOAT

加权因子。 请参阅“备注”。

返回值

类型: D3DXVECTOR4*

指向 Barycentric 坐标中的 D3DXVECTOR4 结构的指针。

注解

D3DXVec4BaryCentric 函数提供了一种了解三角形中和周围点的方法,与三角形实际所在的位置无关。 此函数使用以下公式返回结果点:V1 + f (V2-V1) + g (V3-V1) 。

平面 V1V2V3 中的任何点都可以由 barycentric 坐标 (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 行上。

条形坐标是一种常规坐标形式。 在此上下文中,使用 Barycentric 坐标表示坐标系的变化。 对于笛卡尔坐标,其值为 true 对于 Barycentric 坐标。

此函数的返回值与 pOut 参数中返回的值相同。 这样, D3DXVec4BaryCentric 函数可用作另一个函数的参数。

条心坐标根据三角形的顶点定义三角形内的点。 有关条心坐标的更深入说明,请参阅 Mathworld 的 Barycentric 坐标说明

要求

要求 Value
标头
D3dx9math.h

D3dx9.lib

另请参阅

数学函数