D3D中的向量

来源:互联网 发布:淘宝投诉客服电话 编辑:程序博客网 时间:2024/06/05 01:02
DD33DD中的向量 
D3DXVECTOR3
DD33DDXXVVEECCTTOORR33表示三维向量; 
**向量相等 
1.通过“==”来判断向量是否相等,具体如下: 
D3DXVECTOR3   U(1.0F,0.0F,1.0F); 
D3DXVECTOR3   v(0.0F,1.0F,0.0F); 
If(u==v)returntrue; 
If(u!=v)returnfalse; 
2.判断浮点时应该定义一个“EPSILON”变量,如果两个浮点之间的差距小于 
EPSILON就认为两个浮点数相等,具体如下: 
constfloat  EPSILON =0.001f; 
15
bool  Equals(float  1hs,float rhs) 
Return  fabs(1hs - rhs)<EPSILON; 
}//完全不用在意这些事,因为D3DXVECTOR3的重载运算符已经完成了这些
功能 
*D3D 
**DD33DD向量模的计算 
表示向量长度: 
FLOAT   D3DXVec3Length 
CONSTD3DXVECTOR3  *PV            //需要求模的向量 
例: 
D3DVECTOR3   v(1.0f,2.0f,3.0f); 
Float magnitude = D3DXVec3Length(&v);
**向量规格化 
D3DXVECTOR3 *WINAPI  D3DXVec3Normalize( 
D3DXVECTOR3  *pOut,                  //输出单位向量 
CONSTD3DXVECTOR3  *pV               //输入的向量 
); 
**向量加法 
D3DVECTOR3   U(2.0F,0.0F,1.0F); 
D3DVECTOR3   V(0.0F,-1.0F,5.0F); 
D3DVECTOR3   SUM = U + V; 
**向量减法 
D3DVECTOR3   U(2.0F,0.0F,1.0F); 
D3DVECTOR3   V(0.0F,-1.0F,5.0F); 
D3DVECTOR3   SUM = U - V; 
**数乘 
D3DVECTOR3   U(2.0F,0.0F,1.0F); 
D3DVECTOR3   scaledVec = U *10.0f; 
**点乘 
FLOAT  D3DXVec3Dot( 
CONSTD3DVECTOR3   *PV1; 
CONSTD3DVECTOR3   *PV2; 
) 
例: 
D3DVECTOR3   U(2.0F,0.0F,1.0F); 
D3DVECTOR3   V(0.0F,-1.0F,5.0F); 
                                 
float dot =  D3DXVec3Dot(&u,&v);
原创粉丝点击