向量的定义:
是指空间里的一段有向线段.
向量相等的条件:
如果长度相等和方向相同, 就可判定向量相等.
向量的表示:
一般情况下,向量由空间中的2点表示. 但是我们在处理和表达的简单, 我们采用一点表示. 下面列出为什么我们能用一点表示向量的原因. 根据向量相等的原理, 就可以把任何向量通过移动, 将向量的起点设置到坐标原点. 因此可以用一点去表示向量.
向量的规范化或者规一化:
是指调整向量的模(向量的长度)为1. 向量的模等于(x^2 + y^2 + z^2)再开2次根号.
向量的计算:
1. 相加: 结果是两向量组成的平行四边形的对角线(穿过两向量的相交点).
2. 相减: 结果是两向量组成的平行四边形的对角线(不穿过两向量的相交点).
3. 数乘: ku = k*x + k*y +k*z;( 这里k是数值, u是向量)
4. 点乘: u.v = |u||v|cos(a);( u,v是向量, a为两向量的夹角).
5. 叉乘: 得到另外一个向量, 方向和所要相乘的两向量组成的平面垂直.
其实, 点乘和叉乘directx9提供了对应的函数, 如叉乘:D3DXVec3Cross, 点乘D3DXVec3Dot. 前面的几种运算可以直接用D3DXVector3运算, 因为它重载了这些操作符.
几点应用:
1. 可以通过点积的值来计算2个向量之间的夹角.
因为u.v = |u||v|cos(a);( u,v是向量, a为两向量的夹角).
通过acosf这个函数得夹角值.
2. 向量乘以常数, 可以用来计算摄像机先前或者向后顺着某一方向移动一段距离, 这里得某一方向一般是指摄像机得look方向.
例如: vecCameraPos += vecLook * fStep;
这里fStep是一常数, 如果大于0,意义就是摄像机沿着看的方向向前移动,如果是小于0,意义就是向后移动.
版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.