CSDN博客

img caimouse
博客专家

D3DXVec2BaryCentric 函数

发表于2004/10/18 13:43:00  1539人阅读

D3DXVec2BaryCentric 函数


找出三个2-D坐标向量的重心。

定义:

D3DXVECTOR2 *WINAPI D3DXVec2BaryCentric(      

    D3DXVECTOR2 *pOut,
    CONST D3DXVECTOR2 *pV1,
    CONST D3DXVECTOR2 *pV2,
    CONST D3DXVECTOR2 *pV3,
    FLOAT f,
    FLOAT g
);

参数:

pOut

[out, retval] 指向 D3DXVECTOR2 结构的操作结果。

pV1

[in] 指向 D3DXVECTOR2 结构源向量。

pV2

[in] 指向 D3DXVECTOR2 结构源向量。

pV3

[in] 指向 D3DXVECTOR2 结构源向量。

f

[in] 权重因数,看说明。

g

[in] 权重因数,看说明。

返回值:

指向 D3DXVECTOR2 结构的重心坐标向量。

 

说明:

D3DXVec2BaryCentric 函数提供一个方法知道三角形的三个点是怎么样分布和它们的相互关系。它是用下面的公式来计算:V1 + f(V2-V1) + g(V3-V1)。

在平面V1V2V3里的任何点都可以用重心坐标 ( f,g)来表示。参数f 是用来表示V2 有多少重量,参数 g 是用来表示V3 有多少重量。最后1- f- g 是用来表示V1 有多少重量。

注意到下面的关系:

·   If (f>=0 && g>=0 && 1-f-g>=0), 重心在 V1V2V3三角形内。

·   If (f==0 && g>=0 && 1-f-g>=0), 重心在直线V1V3上。

·   If (f>=0 && g==0 && 1-f-g>=0), 重心在直线V1V2上。

·   If (f>=0 && g>=0 && 1-f-g==0), 重心在直线 V2V3上。

重心坐标是一般的坐标,在这里是用重心坐标来表示系统坐标的变化。在笛卡尔坐标怎么样表示,重心坐标就是怎么样表示。

函数返回值跟pOut 参数返回值是一样的。这样可以让函数D3DXVec2BaryCentric作为其它函数的参数使用。

函数信息:

Header

d3dx9math.h

Import library

d3dx9.lib

Minimum operating systems

Windows 98



阅读全文
0 0

相关文章推荐

img
取 消
img