关于向量积和叉积的解释

老是爱弄混淆,然后今天就整理下发在博客上

设两个向量P(Xp,Yp,Zp)  Q(Xq,Yq,Zq)

 

标量集 ( dot   product)

P*Q = XpXq + YpYq + ZpZq = |P||Q|cos⊙    ⊙为向量的夹角

 

一般来说,标量集是判断两个向量夹角是否为90度以上的一个重要的值。只有当夹角为0到90度和270度到360度的时候才为正值。

 

然后贴出标量集的D3D函数

在MSDN中我查到它的原型如下:

  1. FLOAT D3DXVec3Dot(  
  2.  _In_  const D3DXVECTOR3 *pV1,  
  3.  _In_  const D3DXVECTOR3 *pV2  
  4. );  

 

举一个实例吧:

  1. pMatrix->_42 =-D3DXVec3Dot(&m_vUpVector, &m_vCameraPosition);       // -P*U  


 

 

 

向量集(也叫叉积)(cross product)

 

P X Y = (PyQz - PzQy ,PzQx - PxQz , PxQy - PyQx)

叉积运算的最大特点是运算结果为两个向量相交的向量值,两个向量进行向量积运算可以求得两个向量P,Q所形成的面的法线向量。

 

贴出向量积的D3D函数

在MSDN中我们查到它原型如下:

  1. D3DXVECTOR3* D3DXVec3Cross(  
  2.  _Inout_  D3DXVECTOR3 *pOut,  
  3.  _In_     const D3DXVECTOR3 *pV1,  
  4.  _In_     const D3DXVECTOR3 *pV2  
  5. );  

第一个参数依然是计算的结果。第二和第三两个参数当然就是填参加叉乘运算的两个向量了。

另外需要注意,D3DXVec3Cross函数的返回值和第一个参数pOut 参数是一样的,为指向D3DXVECTOR3 结构的两个向量叉乘结果。

依然是一个实例:

  1. D3DXVec3Cross(&m_vRightVector, &m_vUpVector,&m_vLookVector);    // 右向量与上向量垂直  
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值