您的位置:首页 > 其它

【超级大转载】常用的D3D变换相关函数

2011-03-22 13:17 441 查看
D3DXVec3Length 函数

--------------------------------------------------------------------------------

返回 3-D向量长度。

定义:

FLOAT D3DXVec3Length(

CONST D3DXVECTOR3 *pV);参数:

pV

[in] 指向 D3DXVECTOR3 结构的源向量。

返回值:

向量的长度。

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/23/148285.aspx

--------------------------------------------------------------------------------

D3DXVec3LengthSq 函数

--------------------------------------------------------------------------------

返回 3-D向量的长度的平方。

定义:

FLOAT D3DXVec3LengthSq(

CONST D3DXVECTOR3 *pV);参数:

pV

[in] 指向 D3DXVECTOR3 结构的源向量。

返回值:

向量的长度平方。

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

--------------------------------------------------------------------------------

D3DXVec3Lerp 函数

--------------------------------------------------------------------------------

操作两个 3-D 向量的线性内插值。

定义:

D3DXVECTOR3 *D3DXVec3Lerp(

D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV1, CONST D3DXVECTOR3 *pV2, FLOAT s);参数:

pOut

[in, out] 指向 D3DXVECTOR3 结构的操作结果。

pV1

[in] 指向 D3DXVECTOR3 结构的源向量。

pV2

[in] 指向 D3DXVECTOR3 结构的源向量。

s

[in] 两个向量插值参数。

返回值:

指向 D3DXVECTOR3 结构的线性插值结果。

说明:

这个函数用下面的公式进行线性插值: V1 s(V2-V1).

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

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/23/148287.aspx

--------------------------------------------------------------------------------

D3DXVec3Maximize 函数

--------------------------------------------------------------------------------

返回一个 3-D 向量,它是由两个向量中最大分量组成。

定义:

D3DXVECTOR3 *D3DXVec3Maximize(

D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV1, CONST D3DXVECTOR3 *pV2);参数:

pOut

[in, out] 指向D3DXVECTOR3 结构的操作结果。

pV1

[in] 指向 D3DXVECTOR3 结构的源向量。

pV2

[in] 指向 D3DXVECTOR3 结构的源向量。

返回值:

指向 D3DXVECTOR3 结构的两向量中最大分量组成的向量。

说明:

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

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/23/148291.aspx

--------------------------------------------------------------------------------

D3DXVec3Minimize 函数

--------------------------------------------------------------------------------

返回一个 3-D 向量,它是由两个向量中最小分量组成。

定义:

D3DXVECTOR3 *D3DXVec3Minimize(

D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV1, CONST D3DXVECTOR3 *pV2);参数:

pOut

[in, out] 指向 D3DXVECTOR3 结构的操作结果。

pV1

[in] 指向 D3DXVECTOR3 结构的源向量。

pV2

[in] 指向D3DXVECTOR3 结构的源向量。

返回值:

指向D3DXVECTOR3 结构的向量,它是由两个向量中最小分量组成。

说明:

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

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

--------------------------------------------------------------------------------

D3DXVec3Normalize 函数

--------------------------------------------------------------------------------

返回3D向量的规格化向量。

定义:

D3DXVECTOR3 *WINAPI D3DXVec3Normalize(

D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV);参数:

pOut

[in, out] 指向 D3DXVECTOR3 结构的操作结果。

pV

[in] 指向D3DXVECTOR3 结构的源向量。

返回值:

指向D3DXVECTOR3 结构的规格化后的向量。

说明:

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

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

--------------------------------------------------------------------------------

D3DXVec3Project 函数

--------------------------------------------------------------------------------

把对象的向量从对象空间投影到屏幕空间。

定义:

D3DXVECTOR3 *WINAPI D3DXVec3Project(

D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV, CONST D3DVIEWPORT9 *pViewport, CONST D3DXMATRIX *pProjection, CONST D3DXMATRIX *pView, CONST D3DXMATRIX *pWorld);参数:

pOut

[in, out] 指向 D3DXVECTOR3 结构的操作结果。

pV

[in] 指向D3DXVECTOR3 结构的源向量。

pViewport

[in] 指向 D3DVIEWPORT9 结构,它是表示视口。

pProjection

[in] 指向 D3DXMATRIX 结构,它是投影矩阵。

pView

[in] 指向 D3DXMATRIX 结构,它是视变换矩阵。

pWorld

[in] 指向 D3DXMATRIX 结构,它是世界变换矩阵。

返回值:

指向 D3DXVECTOR3 结构的向量,它是把对象的向量从对象空间投影到屏幕空间的结果。

说明:

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

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/23/148294.aspx

--------------------------------------------------------------------------------

D3DXVec3Add 函数

--------------------------------------------------------------------------------

两个3-D向量相加。

定义:

D3DXVECTOR3 *D3DXVec3Add(

D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV1, CONST D3DXVECTOR3 *pV2);参数:

pOut

[in, out] 指向D3DXVECTOR3 结构的操作结果。

pV1

[in] 指向 D3DXVECTOR3 结构的源向量。

pV2

[in] 指向 D3DXVECTOR3 结构的源向量。

返回值:

指向D3DXVECTOR3 结构的两个3D向量的和。

说明:

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

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/22/147043.aspx

--------------------------------------------------------------------------------

D3DXVec3Subtract 函数

--------------------------------------------------------------------------------

两个3-D向量相减。

定义:

D3DXVECTOR3 *D3DXVec3Subtract(

D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV1, CONST D3DXVECTOR3 *pV2);参数:

pOut

[in, out] 指向 D3DXVECTOR3 结构的操作结果。

pV1

[in] 指向 D3DXVECTOR3 结构的源向量。

pV2

[in] 指向 D3DXVECTOR3 结构的源向量。

返回值:

指向 D3DXVECTOR3 结构的两个向量相减后的差向量。

说明:

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

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/24/149679.aspx

--------------------------------------------------------------------------------

D3DXVec3Dot 函数

--------------------------------------------------------------------------------

计算两个3-D向量的点乘。

定义:

FLOAT D3DXVec3Dot(

CONST D3DXVECTOR3 *pV1, CONST D3DXVECTOR3 *pV2);参数:

pV1

[in] 指向 D3DXVECTOR3 结构的源向量。

pV2

[in] 指向 D3DXVECTOR3 结构的源向量。

返回值:

两个3D向量的点乘。

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/22/147066.aspx

--------------------------------------------------------------------------------

D3DXVec3Cross 函数

--------------------------------------------------------------------------------

计算两个3-D向量叉乘。

Syntax

D3DXVECTOR3 *D3DXVec3Cross(

D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV1, CONST D3DXVECTOR3 *pV2);参数:

pOut

[in, out] 指向 D3DXVECTOR3 结构的操作结果。

pV1

[in] 指向 D3DXVECTOR3 结构的源向量。

pV2

[in] 指向 D3DXVECTOR3 结构的源向量。

返回值:

指向D3DXVECTOR3 结构的两个向量叉乘结果。

说明:

这个函数返回两个向量叉乘结果。

例子说明如下:

D3DXVECTOR3 v;

v.x = pV1->y * pV2->z - pV1->z * pV2->y;

v.y = pV1->z * pV2->x - pV1->x * pV2->z;

v.z = pV1->x * pV2->y - pV1->y * pV2->x;

*pOut = v;

函数返回值跟pOut 参数返回值是一样的。这样可以让函数D3DXVec3Cross作为其它函数的参数使用。 D3DXVECTOR3 v; v.x = pV1->y * pV2->z - pV1->z * pV2->y; v.y = pV1->z * pV2->x - pV1->x * pV2->z; v.z = pV1->x * pV2->y - pV1->y * pV2->x; *pOut = v;

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/22/147064.aspx

D3DXVec3Hermite 函数

--------------------------------------------------------------------------------

进行Hermite样条插值,这里是3D向量插值。

定义:

D3DXVECTOR3 *WINAPI D3DXVec3Hermite(

D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV1, CONST D3DXVECTOR3 *pT1, CONST D3DXVECTOR3 *pV2, CONST D3DXVECTOR3 *pT2, FLOAT s);Parameters

pOut

[in, out] 指向 D3DXVECTOR3 结构的操作结果。

pV1

[in] 指向 D3DXVECTOR3 结构的位置向量。

pT1

[in] 指向 D3DXVECTOR3 结构的切向量。

pV2

[in] 指向 D3DXVECTOR3 结构的位置向量。

pT2

[in] 指向 D3DXVECTOR3 结构的切向量。

s

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

返回值:

指向 D3DXVECTOR3结构的Hermite样条插值。

说明:

D3DXVec3Hermite函数用Hermite 进行从(positionA, tangentA) 到 (positionB, tangentB) 插值,Hermite插值是导数值个数相等的情况下的插值多项式及插值余项。

因为样条很方面平滑地连接进去,又平滑地连接出来。坡度主要是由Q(s)属性来决定:

Q(s) = As3 Bs2 Cs D (并且 Q'(s) = 3As2 2Bs C) a) Q(0) = v1, so Q'(0) = t1b) Q(1) = v2, so Q'(1) = t2

v1就是 pV1,v2就是pV2, t1是pT1, t2是pT2。

这些参数是用解出 A, B, C, D。

D = v1 (from a)

C = t1 (from a)

3A 2B = t2 - t-1 (substituting for C)

A B = v2 - v1 - t1 (substituting for C and D)

从上面算出A,B,C,D就可以写出Q(s)来。

A = 2v1 - 2v2 t2 t1 B = 3v2 - 3v1 - 2t1 - t2C = t1 D = v1

然后就是:

Q(s) = (2v1 - 2v2 t2 t1)s3 (3v2 - 3v1 - 2t1 - t2)s2 t1s v1.

//重新整理后:

Q(s) = (2s3 - 3s2 1)v1 (-2s3 3s2)v2 (s3 - 2s2 s)t1 (s3 - s2)t2.

Hermite插值在控制动画方面非常有用,因为它通过每个控制点,因为那些点就相当于每个关键帧,并且它是位置及切线已明确,所以你可以很方便匹配每段曲线的起点与终点创建C2连续的曲线。

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

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/22/147087.aspx

--------------------------------------------------------------------------------

D3DXVec3Scale 函数

--------------------------------------------------------------------------------

缩放3-D向量。

定义:

D3DXVECTOR3 *D3DXVec3Scale(

D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV, FLOAT s);参数:

pOut

[in, out] 指向 D3DXVECTOR3 结构的操作结果。

pV

[in] 指向 D3DXVECTOR3 结构的向量。

s

[in] 缩放系数。

返回值:

指向D3DXVECTOR3 结构的缩放后的向量。

说明:

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

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/24/149674.aspx

--------------------------------------------------------------------------------

D3DXVec3BaryCentric 函数

--------------------------------------------------------------------------------

返回三个3-D坐标向量组成的三角形的重心坐标点。

定义:

D3DXVECTOR3 *WINAPI D3DXVec3BaryCentric(

D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV1, CONST D3DXVECTOR3 *pV2, CONST D3DXVECTOR3 *pV3, FLOAT f, FLOAT g);参数:

pOut

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

pV1

[in] 指向 D3DXVECTOR3 结构的源向量。

pV2

[in] 指向 D3DXVECTOR3 结构的源向量。

pV3

[in] 指向 D3DXVECTOR3 结构的源向量。

f

[in] 重量系数,看说明。

g

[in] 重量系数,看说明。

返回值:

指向 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上。

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

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/22/147054.aspx

--------------------------------------------------------------------------------

D3DXVec3CatmullRom 函数

--------------------------------------------------------------------------------

在3-D向量之间进行Catmull-Rom插值。

定义:

D3DXVECTOR3 *WINAPI D3DXVec3CatmullRom(

D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV0, CONST D3DXVECTOR3 *pV1, CONST D3DXVECTOR3 *pV2, CONST D3DXVECTOR3 *pV3, FLOAT s);参数:

pOut

[in, out] 指向 D3DXVECTOR3 结构的操作结果。

pV0

[in] 指向 D3DXVECTOR3 结构的位置向量。

pV1

[in] 指向 D3DXVECTOR3 结构的位置向量。

pV2

[in] 指向 D3DXVECTOR3 结构的位置向量。

pV3

[in] 指向 D3DXVECTOR3 结构的位置向量。

s

[in] 权重系数。看说明。

返回值:

指向 D3DXVECTOR3 结构的Catmull-Rom插值结果。

说明:

比如给四点 (p1, p2, p3, p4),要找一个函数Q(s)满足下面的条件:

Q(s) 是一个三次函数。

Q(s) 是当s范围从0到1时在p2 和p3 之间插值。

Q(s) 是当s为0时,它平行于p1 到 p3的连接线。

Q(s) 是当s为1时,它平行p2 到 p4的连线。

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/22/147055.aspx

--------------------------------------------------------------------------------

D3DXVec3Transform 函数

--------------------------------------------------------------------------------

用矩阵把向量(x, y, z, 1)进行变换。

定义:

D3DXVECTOR4 *WINAPI D3DXVec3Transform(

D3DXVECTOR4 *pOut, CONST D3DXVECTOR3 *pV, CONST D3DXMATRIX *pM);Parameters

pOut

[in, out] 指向 D3DXVECTOR4 结构的操作结果。

pV

[in] 指向 D3DXVECTOR3 结构的源向量。

pM

[in] 指向 D3DXMATRIX 结构的变换矩阵。

返回值:

指向D3DXVECTOR4 结构的变换后的向量。

说明:

这个函数用矩阵pM来变换向量pV (x, y, z, 1)。

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

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/24/149683.aspx

--------------------------------------------------------------------------------

D3DXVec3TransformCoord 函数

--------------------------------------------------------------------------------

用矩阵变换3-D向量,并且用w = 1投影结果。

定义:

D3DXVECTOR3 *WINAPI D3DXVec3TransformCoord(

D3DXVECTOR3 *pOut,

CONST D3DXVECTOR3 *pV,

CONST D3DXMATRIX *pM

);

Parameters

pOut

[in, out] 指向 D3DXVECTOR3 结构的操作结果。

pV

[in] 指向 D3DXVECTOR3 结构的向量。

pM

[in] 指向 D3DXMATRIX 结构的变换矩阵。

Return Value

指向 D3DXVECTOR3 结构的变换后的向量。

说明:

这个函数用矩阵pM变换3-D向量pV (x, y, z, 1),并且用w = 1投影结果。

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

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/25/150516.aspx

--------------------------------------------------------------------------------

D3DXVec3TransformNormal 函数

--------------------------------------------------------------------------------

用矩阵变换3-D向量标准形式。

定义:

D3DXVECTOR3 *WINAPI D3DXVec3TransformNormal(

D3DXVECTOR3 *pOut,

CONST D3DXVECTOR3 *pV,

CONST D3DXMATRIX *pM

);

Parameters

pOut

[in, out] 指向 D3DXVECTOR3 结果的操作结果。

pV

[in] 指向 D3DXVECTOR3 结构的向量。

pM

[in] 指向 D3DXMATRIX 结构的矩阵。

返回值:

指向 D3DXVECTOR3 结构的变换后的向量。

说明:

这个函数用矩阵pM变换向量pV标准形式 (x, y, z, 0),不是齐次坐标形式。

如果一个非仿射矩阵变换,那么这个矩阵要作逆运算后再转置才传给本函数。

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

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/25/150523.aspx

--------------------------------------------------------------------------------

D3DXVec3Unproject 函数

--------------------------------------------------------------------------------

把向量从屏幕空间投影到对象空间。

定义:

D3DXVECTOR3 *WINAPI D3DXVec3Unproject(

D3DXVECTOR3 *pOut,

CONST D3DXVECTOR3 *pV,

CONST D3DVIEWPORT9 *pViewport,

CONST D3DXMATRIX *pProjection,

CONST D3DXMATRIX *pView,

CONST D3DXMATRIX *pWorld

);

Parameters

pOut

[in, out] 指向 D3DXVECTOR3 结构的操作结果。

pV

[in] 指向 D3DXVECTOR3 的向量。

pViewport

[in] 指向 D3DVIEWPORT9 结构的视口。

pProjection

[in] 指向 D3DXMATRIX 结构的投影矩阵。

pView

[in] 指向 D3DXMATRIX 结构的视变换矩阵。

pWorld

[in] 指向 D3DXMATRIX 结构的世界变换矩阵。

返回值:

指向 D3DXVECTOR3 结构的向量,它是把向量从屏幕空间投影到对象空间的结果。

说明:

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

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/25/150535.aspx

D3DXMatrixMultiply 函数

--------------------------------------------------------------------------------

两个矩阵相乘。

定义:

D3DXMATRIX *WINAPI D3DXMatrixMultiply(

D3DXMATRIX *pOut, CONST D3DXMATRIX *pM1, CONST D3DXMATRIX *pM2);参数:

pOut

[in, out] 指向D3DXMATRIX 结构的矩阵乘积。

pM1

[in] 指向D3DXMATRIX 结构的源矩阵。

pM2

[in] 指向D3DXMATRIX 结构的源矩阵。

返回值:

指向 D3DXMATRIX 结构的两个矩阵相乘的积矩阵。

说明:

本函数主要让两个矩阵相乘,表达的意思就是矩阵1变换后,接着就是矩阵2变换。如公式(Out = M1 * M2),其实在C++里,完全可以像公式那里操作,不用这个函数。

返回值是跟参数pOut 值是一样的。通过这种方法可以让D3DXMatrixMultiply 作为其它函数的参数。

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/09/129135.aspx

--------------------------------------------------------------------------------

D3DXMatrixIdentity 函数

--------------------------------------------------------------------------------

创建一个单位矩阵。

定义:

D3DXMATRIX *D3DXMatrixIdentity(

D3DXMATRIX *pOut);参数:

pOut

[in, out] 指向D3DXMATRIX结构的返回单位矩阵。

返回值:

指向D3DXMATRIX 结构的单位矩阵。

说明:

单位矩阵就是除了[1,1][2,2][3,3][4,4]对角线系数为1外,其它系数全部为0。当用单位矩阵去乘以任何其它顶点向量时,都不会改变,但可方便地修改单位矩阵为旋转,平移和缩放矩阵。

返回值是跟pOut 参数返回值是一样的,这样可以让本函数成为其它函数的参数。

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/09/129019.aspx

--------------------------------------------------------------------------------

D3DXMatrixTranspose 函数

--------------------------------------------------------------------------------

把一个矩阵转置并返回这个矩阵。

定义:

D3DXMATRIX *WINAPI D3DXMatrixTranspose(

D3DXMATRIX *pOut, CONST D3DXMATRIX *pM);参数:

pOut

[in, out] 指向D3DXMATRIX 结构的操作结果矩阵。

pM

[in] 指向D3DXMATRIX 结构的源矩阵。

返回值:

指向D3DXMATRIX 结构的转置矩阵。

说明:

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

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/11/132060.aspx

--------------------------------------------------------------------------------

D3DXMatrixInverse 函数

--------------------------------------------------------------------------------

计算矩阵的逆矩阵。

定义:

D3DXMATRIX *WINAPI D3DXMatrixInverse(

D3DXMATRIX *pOut, FLOAT *pDeterminant, CONST D3DXMATRIX *pM);参数:

pOut

[in, out] 指向D3DXMATRIX结构的逆矩阵。

pDeterminant

[in, out] 指向FLOAT 类型的对角线[1,1][2,2][3,3][4,4]积,如果不需要,可以设置为 NULL。

pM

[in] 指向 D3DXMATRIX 结构源矩阵。

返回值:

指向D3DXMATRIX 结构的逆矩阵。如果没有逆矩阵,就返回NULL值。

返回值是跟pOut 参数的返回值是一样的,这样可以让本函数成为其它函数的参数。

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/09/129062.aspx

--------------------------------------------------------------------------------

D3DXMatrixScaling 函数

--------------------------------------------------------------------------------

创建一个沿着X,Y和Z轴方向缩放矩阵。

定义:

D3DXMATRIX *WINAPI D3DXMatrixScaling(

D3DXMATRIX *pOut, FLOAT sx, FLOAT sy, FLOAT sz);参数:

pOut

[in, out] 指向D3DXMATRIX 结构的操作结果矩阵。

sx

[in] 沿着X轴的缩放系数。

sy

[in] 沿着Y轴的缩放系数。

sz

[in] 沿着Z轴的缩放系数。

返回值:

指向D3DXMATRIX 的缩放矩阵。

说明:

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

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/11/132022.aspx

--------------------------------------------------------------------------------

D3DXMatrixRotationX 函数

--------------------------------------------------------------------------------

创建绕着X轴旋转矩阵。

定义:

D3DXMATRIX *WINAPI D3DXMatrixRotationX(

D3DXMATRIX *pOut, FLOAT Angle);参数:

pOut

[in, out] 指向D3DXMATRIX 结构的操作结果矩阵。

Angle

[in] 绕着X轴旋转的角度(单位是弧度)。角度计算方法是当朝着旋转轴的原点看去时,顺时针方向为正值。

返回值:

指向D3DXMATRIX 结构的绕着X轴旋转矩阵。

说明:

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

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/11/131998.aspx

--------------------------------------------------------------------------------

D3DXMatrixRotationY 函数

--------------------------------------------------------------------------------

创建绕着Y轴旋转矩阵。

定义:

D3DXMATRIX *WINAPI D3DXMatrixRotationY(

D3DXMATRIX *pOut, FLOAT Angle);参数:

pOut

[in, out] 指向D3DXMATRIX 结构的操作结果矩阵。

Angle

[in] 绕着Y轴旋转的角度(单位是弧度)。角度计算方法是当朝着旋转轴的原点看去时,顺时针方向为正值。

返回值:

指向D3DXMATRIX 结构的绕着Y轴旋转矩阵。

说明:

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

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/11/132005.aspx

--------------------------------------------------------------------------------

D3DXMatrixRotationZ 函数

--------------------------------------------------------------------------------

创建绕着Z轴旋转矩阵。

定义:

D3DXMATRIX *WINAPI D3DXMatrixRotationZ(

D3DXMATRIX *pOut, FLOAT Angle);Parameters

pOut

[in, out] 指向D3DXMATRIX 结构的操作结果矩阵。

Angle

[in] 绕着Z轴旋转的角度(单位是弧度)。角度计算方法是当从Z正轴朝着Z轴的原点看去时,顺时针方向为正值。

返回值:

指向D3DXMATRIX 结构的绕着Z轴旋转矩阵。

说明:

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

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/11/132016.aspx

--------------------------------------------------------------------------------

D3DXMatrixRotationAxis 函数

--------------------------------------------------------------------------------

创建一个可以绕着任意轴旋转的旋转矩阵。

定义:

D3DXMATRIX *WINAPI D3DXMatrixRotationAxis(

D3DXMATRIX *pOut, CONST D3DXVECTOR3 *pV, FLOAT Angle);参数:

pOut

[in, out] 指向D3DXMATRIX 结构的操作结果矩阵。

pV

[in] 指向任意轴向量。请参考 D3DXVECTOR3。

Angle

[in] 绕着任意轴旋转的角度(单位是弧度)。角度计算方法是当朝着旋转轴的原点看去时,顺时针方向为正值。

返回值:

指向绕着任意轴旋转的旋转矩阵。

说明:

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

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/11/131978.aspx

--------------------------------------------------------------------------------

D3DXMatrixRotationYawPitchRoll 函数

--------------------------------------------------------------------------------

用指定的绕Y轴角度,绕X轴角度和Z轴角度创建旋转矩阵。

定义:

D3DXMATRIX *WINAPI D3DXMatrixRotationYawPitchRoll(

D3DXMATRIX *pOut, FLOAT Yaw, FLOAT Pitch, FLOAT Roll);参数:

pOut

[in, out] 指向D3DXMATRIX 结构的操作结果矩阵。

Yaw

[in] 绕着Y轴旋转角度(单位弧度)。

Pitch

[in] 绕着X轴旋转角度(单位弧度)。

Roll

[in] 绕着Z轴旋转角度(单位弧度)。

返回值:

指向D3DXMATRIX 结构的绕着Y,X和Z轴旋转的旋转矩阵。

说明:

这样可以让函数D3DXMatrixRotationYawPitchRoll作为其它函数的参数使用。

这个矩阵的变换顺序是先绕着Z轴旋转,接着是绕着X轴旋转,最后是绕着Y轴旋转。这些都是相对于物体的本地坐标系来说的。

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/11/132008.aspx

D3DXMatrixRotationQuaternion 函数

--------------------------------------------------------------------------------

从一个四元组创建一个旋转矩阵。

定义:

D3DXMATRIX *WINAPI D3DXMatrixRotationQuaternion(

D3DXMATRIX *pOut, CONST D3DXQUATERNION *pQ);参数:

pOut

[in, out] 指向D3DXMATRIX 结构的操作结果矩阵。

pQ

[in] 指向 D3DXQUATERNION 结构的四元组。

返回值:

指向从四元组创建的D3DXMATRIX的旋转矩阵。

说明:

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

要想知道由向量( x, y, z )和角度怎么样计算四元组,可以看结构D3DXQUATERNION相关内容。

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/11/131990.aspx

--------------------------------------------------------------------------------

D3DXQuaternionIdentity 函数

--------------------------------------------------------------------------------

返回单位四元数。

定义:

D3DXQUATERNION *D3DXQuaternionIdentity(

D3DXQUATERNION *pOut);参数:

pOut

[in, out] 指向 D3DXQUATERNION 结构的操作结果。

返回值:

指向D3DXQUATERNION 结构的单位四元数。

说明:

如果四元数是 (x, y, z, w),那么D3DXQuaternionIdentity 函数返回的四元数是 (0, 0, 0, 1)。

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

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/14/136152.aspx

--------------------------------------------------------------------------------

D3DXQuaternionIsIdentity 函数

--------------------------------------------------------------------------------

检查一个四元数是否是单位四元数。

定义:

BOOL D3DXQuaternionIsIdentity(

CONST D3DXQUATERNION *pQ);参数:

pQ

[in] 指向D3DXQUATERNION 结构的要测试四元数。

返回值:

如果四元数是单位四元数,就返回TRUE,否则返回FALSE。

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/14/136155.aspx

--------------------------------------------------------------------------------

D3DXQuaternionLength 函数

--------------------------------------------------------------------------------

返回四元数的长度。

定义:

FLOAT D3DXQuaternionLength(

CONST D3DXQUATERNION *pQ);参数:

pQ

[in] 指向 D3DXQUATERNION 结构的源四元数。

返回值:

四元数的长度。

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/14/136160.aspx

--------------------------------------------------------------------------------

D3DXQuaternionLengthSq 函数

--------------------------------------------------------------------------------

返回四元数的长度的平方。

定义:

FLOAT D3DXQuaternionLengthSq(

CONST D3DXQUATERNION *pQ);参数:

pQ

[in] 指向 D3DXQUATERNION 结构的源四元数。

返回值:

四元数的长度的平方。

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/14/136172.aspx

--------------------------------------------------------------------------------

D3DXQuaternionNormalize 函数

--------------------------------------------------------------------------------

计算一个单位长度的四元数。

定义:

D3DXQUATERNION *WINAPI D3DXQuaternionNormalize(

D3DXQUATERNION *pOut, CONST D3DXQUATERNION *pQ);参数:

pOut

[in, out] 指向 D3DXQUATERNION 结构的操作结果。

pQ

[in] 指向 D3DXQUATERNION 结构的源四元数。

返回值:

指向 D3DXQUATERNION 结构的单位长度的四元数。

说明:

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

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/15/137681.aspx

--------------------------------------------------------------------------------

D3DXQuaternionConjugate 函数

--------------------------------------------------------------------------------

返回共轭的四元数。

定义:

D3DXQUATERNION *D3DXQuaternionConjugate(

D3DXQUATERNION *pOut, CONST D3DXQUATERNION *pQ);参数:

pOut

[in, out] 指向 D3DXQUATERNION 结构的操作结果。

pQ

[in] 指向 D3DXQUATERNION 结构的输入四元数。

返回值:

指向D3DXQUATERNION 结构的共轭的四元数。

说明:

如果四元数为 (x, y, z, w),那么经函数 D3DXQuaternionConjugate 处理后,就会返回四元数(-x, -y, -z, w)。

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

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/13/134825.aspx

--------------------------------------------------------------------------------

D3DXQuaternionMultiply 函数

--------------------------------------------------------------------------------

两个四元数相乘。

定义:

D3DXQUATERNION *WINAPI D3DXQuaternionMultiply(

D3DXQUATERNION *pOut, CONST D3DXQUATERNION *pQ1, CONST D3DXQUATERNION *pQ2);参数:

pOut

[in, out] 指向 D3DXQUATERNION 结构的操作结果。

pQ1

[in] 指向 D3DXQUATERNION 结构的源四元数。

pQ2

[in] 指向 D3DXQUATERNION 结构的源四元数。

返回值:

指向 D3DXQUATERNION 结构的两个四元数的积。

说明:

结果表达的意思就是Q1旋转后接着就是Q2旋转 (Out = Q1 * Q2)。D3DXQuaternionMultiply 函数旋转操作与D3DXMatrixMultiply 有相同意思。

D3DXQuaternionMultiply 函数连接四元数变换顺序跟D3DXMatrixMultiply 函数是一样。比如:mX 和 mY 表示跟qX 和 qY同样的旋转矩阵, 那么这样操作结构跟四元数操作结果是一致的。

D3DXMatrixMultiply(&m, &mX, &mY);D3DXQuaternionMultiply(&q, &qX, &qY);四元数的乘法操作是不可适合交换

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

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/15/137680.aspx

--------------------------------------------------------------------------------

D3DXQuaternionDot 函数

--------------------------------------------------------------------------------

返回两个四元数点乘结果。

定义:

FLOAT D3DXQuaternionDot(

CONST D3DXQUATERNION *pQ1, CONST D3DXQUATERNION *pQ2);参数:

pQ1

[in] 指向 D3DXQUATERNION 结构的四元数。

pQ2

[in] 指向D3DXQUATERNION 结构的四元数。

返回值:

两个四元数的点积。

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/13/134856.aspx

--------------------------------------------------------------------------------

D3DXQuaternionExp 函数

--------------------------------------------------------------------------------

计算四元数的指数。

定义:

D3DXQUATERNION *WINAPI D3DXQuaternionExp(

D3DXQUATERNION *pOut, CONST D3DXQUATERNION *pQ);参数:

pOut

[in, out] 指向 D3DXQUATERNION 结构的操作结果。

pQ

[in] 指向D3DXQUATERNION 结构的四元数。

返回值:

指向 D3DXQUATERNION 结构的四元数的指数。

说明:

这个函数是把一个纯四元数转换成一个单位的四元数。D3DXQuaternionExp 在计算纯四元数时会忽略w分量(w == 0)。

如果四元数如下:q = (0, theta * v); 这个函数计算指数结果为:exp(Q) = (cos(theta), sin(theta) * v)其中v 是四元数的向量。

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

D3DXQuaternionSquadSetup 函数也能设置四元数的控制点。

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/13/134858.aspx

--------------------------------------------------------------------------------

D3DXQuaternionLn 函数

--------------------------------------------------------------------------------

计算自然对数。

定义:

D3DXQUATERNION *WINAPI D3DXQuaternionLn(

D3DXQUATERNION *pOut, CONST D3DXQUATERNION *pQ);参数:

pOut

[in, out] 指向 D3DXQUATERNION 结构的操作结果。

pQ

[in]指向 D3DXQUATERNION 结构的源四元数。

返回值:

指向 D3DXQUATERNION 结构的四元数自然对数。

说明:

函数 D3DXQuaternionLn 仅能计算单位四元数的自然对数:

如果单位四元数是:Q == (cos(theta), sin(theta) * v) 其中 |v| = 1那么Q的自然对数就是 ln(Q) = (0, theta * v)函数返回值跟pOut 参数返回值是一样的。这样可以让函数D3DXQuaternionLn作为其它函数的参数使用。

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/14/136179.aspx

--------------------------------------------------------------------------------

D3DXQuaternionInverse 函数

--------------------------------------------------------------------------------

共轭变换并规格化四元数。

定义:

D3DXQUATERNION *WINAPI D3DXQuaternionInverse(

D3DXQUATERNION *pOut, CONST D3DXQUATERNION *pQ);参数:

pOut

[in, out] 指向 D3DXQUATERNION 结构的操作结果。

pQ

[in] 指向D3DXQUATERNION 的源四元数。

返回值:

指向 D3DXQUATERNION 结构的逆四元数。

说明:

一个单位四元数定义如下:Q == (cos(theta), sin(theta) * v) 其中 |v| = 1Q 的自然对数是 ln(Q) = (0, theta * v)函数返回值跟pOut 参数返回值是一样的。这样可以让函数D3DXQuaternionInverse作为其它函数的参数使用。

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/14/136154.aspx

--------------------------------------------------------------------------------

D3DXQuaternionRotationMatrix 函数

--------------------------------------------------------------------------------

从一个旋转矩阵创建一个四元数。

定义:

D3DXQUATERNION *WINAPI D3DXQuaternionRotationMatrix(

D3DXQUATERNION *pOut, CONST D3DXMATRIX *pM);参数:

pOut

[in, out] 指向 D3DXQUATERNION 结构的操作结果。

pM

[in] 指向 D3DXMATRIX 结构的旋转矩阵。

返回值:

指向 D3DXQUATERNION 结构的旋转四元数。

说明:

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

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/15/137706.aspx

--------------------------------------------------------------------------------

D3DXQuaternionRotationAxis 函数

--------------------------------------------------------------------------------

创建一个绕着任意轴旋转的四元数。

定义:

D3DXQUATERNION *WINAPI D3DXQuaternionRotationAxis(

D3DXQUATERNION *pOut, CONST D3DXVECTOR3 *pV, FLOAT Angle);参数:

pOut

[in, out] 指向 D3DXQUATERNION 结构的操作结果。

pV

[in] 指向 D3DXVECTOR3 结构的四元数旋转轴向量。

Angle

[in] 旋转角度(单位弧度)。当从旋转轴正方看原时的顺时针方向为正方向角度。

返回值:

指向 D3DXQUATERNION structure rotated around the specified axis.

说明

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

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/15/137688.aspx

--------------------------------------------------------------------------------

D3DXQuaternionRotationYawPitchRoll 函数

--------------------------------------------------------------------------------

用绕Y轴角度,绕X轴角度和Z轴角度创建旋转的四元数。

定义:

D3DXQUATERNION *WINAPI D3DXQuaternionRotationYawPitchRoll(

D3DXQUATERNION *pOut, FLOAT Yaw, FLOAT Pitch, FLOAT Roll);Parameters

pOut

[in, out] 指向 D3DXQUATERNION 结构的操作结果。

Yaw

[in] 绕着Y轴旋转角度(单位弧度)。

Pitch

[in] 绕着X轴旋转角度(单位弧度)。

Roll

[in] 绕着Z轴旋转角度(单位弧度)。

返回值:

指向 D3DXQUATERNION 结构的旋转的四元数。

说明:

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

函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caimouse/archive/2004/10/15/137708.aspx

你可以通过这个链接引用该篇文章:http://dracly.bokee.com/viewdiary.41921073.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: