D3DXVec3BaryCentric 函数 (D3dx9math.h)
注意
D3DX 实用工具库已弃用。 建议改用 DirectXMath 。
使用指定的 3D 向量以大中心坐标返回一个点。
语法
D3DXVECTOR3* D3DXVec3BaryCentric(
_Out_ D3DXVECTOR3 *pOut,
_In_ const D3DXVECTOR3 *pV1,
_In_ const D3DXVECTOR3 *pV2,
_In_ const D3DXVECTOR3 *pV3,
_In_ FLOAT f,
_In_ FLOAT g
);
参数
-
pOut [out]
-
类型: 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 中的任何点都可以由大中心坐标 (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。
此函数的返回值与 pOut 参数中返回的值相同。 这样, D3DXVec3BaryCentric 函数就可用作另一个函数的参数。
大中心坐标根据三角形的顶点定义三角形内的点。 有关 Barycentric 坐标的更深入说明,请参阅 Mathworld 的 Bary 心坐标说明。
要求
要求 | 值 |
---|---|
标头 |
|
库 |
|
另请参阅