D3DXVec3BaryCentric 函数 (D3DX10Math.h)

注意

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

使用指定的 3D 向量返回以 Barycentric 坐标表示的点。

语法

D3DXVECTOR3* D3DXVec3BaryCentric(
  _In_       D3DXVECTOR3 *pOut,
  _In_ const D3DXVECTOR3 *pV1,
  _In_ const D3DXVECTOR3 *pV2,
  _In_ const D3DXVECTOR3 *pV3,
  _In_       FLOAT       f,
  _In_       FLOAT       g
);

parameters

pOut [in]

类型: D3DXVECTOR3*

指向操作结果的 D3DXVECTOR3 的指针。

pV1 [in]

类型: const D3DXVECTOR3*

指向源 D3DXVECTOR3 结构的指针。

pV2 [in]

类型: const D3DXVECTOR3*

指向源 D3DXVECTOR3 结构的指针。

pV3 [in]

类型: const D3DXVECTOR3*

指向源 D3DXVECTOR3 结构的指针。

f [in]

类型: FLOAT

加权系数。 请参阅“备注”。

g [in]

类型: FLOAT

加权系数。 请参阅“备注”。

返回值

类型: D3DXVECTOR3*

指向以中心坐标表示的 D3DXVECTOR3 结构的指针。

备注

D3DXVec3BaryCentric 函数提供了一种了解三角形中和周围点的方法,与三角形的实际位置无关。 此函数使用以下公式返回结果点: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 坐标是一种通用坐标形式。 在此上下文中,使用 Barycentric 坐标表示坐标系的变化。 对于大中心坐标,笛卡尔坐标的值为 true。

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

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

要求

要求
标头
D3DX10Math.h

另请参阅

数学函数