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 坐标说明。
要求
要求 | 值 |
---|---|
标头 |
|
另请参阅