《游戏人工智能编程》读书笔记 —— 向量的归一和点乘


1)向量的归一与点乘。


点乘在实际运算中,计算公式是 :u 点乘 v = u.x * v.x + u.y * v.y


点乘在几何上有对应的公式: u 点乘 v = u的模 * v的模 * uv夹角的cos值


它的几何意义是:u的长度与v在u上的投影长度的乘积,它是一个标量,而且可正可负。


如果将向量归一化,那么长度被重新计算了,变化1,但方向仍是有效的。


归一化之后,配合点乘可以得到两个效果:


<1> 得到一条线在另一条线上的投影值。


当一个向量b与另一个向量a的夹角在(0, PI/2)&(3*PI/2, 2*PI)

之间,它在a方向上的投影向量c就是c = ( b . a1 ) * a1,其中a1是a的单位向量;它在a

相反方向的投影向量c'是c'= ( b'. a1 ) * a1,其中向量b'是b的同模相反向量。




<2> cos夹角 = (u 点乘 v) / u的模 * v的模 = (u 点乘 v) / 1 = u 点乘 v = u.x * v.x + u.y * v.y



2)利用点乘,判断物体是否在角色的前面。


如果对象在智能体朝向平面的前面,则智能体方向矢量和从智能体到对象的矢量的点乘为正 ; 如果对象在智能体朝向平面的后面,则点乘为负。



3)利用点乘的原理,可知与向量垂直的向量。


任给一个非零向量(x,y),则它相对坐标轴逆时针转90度的正交向量为(-y,x),顺时针转90度的正交向量为(y,-x)。


比如向量(2,3)r逆时针旋转90度的正交向量是(-3,2),顺时针旋转90度的正交向量是(3,-2)。




原文地址:https://www.cnblogs.com/cly84920/p/4426493.html