三维向量点乘和十字乘的原理及游戏应用
A代表矢量A代表线段的长度。
//矢量计算公式
A = (x,y,z);
B = (i,j,k);
a B = x * I+y * j+z * k;(数学计算方法)
从图中可以看出,C矢量的计算方法如下:
c = A-B;
同时平方膨胀
|c|^2 = |a|^2+|b|^2-2a b;
c^2 = a^2+b^2-2a b;
通过图中的三角形余弦定理,我们可以得到
c^2 = a^2 + b^2 - 2 |a| |b| cosθ
可以得到上述两个方程的组合
A B = |a| |b| cosθ
θ = arccos(A B/|a| |b|)
应用场景:敌人和玩家可以计算出敌人需要旋转多少度才能面对敌人(缺点:计算出的角度小于180。因为两个向量之间的夹角不会超过180,如果顺时针超过180,则逆时针计算角度)。
A = (x,y)
B = (m,n)
A x B = 2x2 = x *n-y * m的行列式;
A = (a1,a2,a3)
B = (b1,b2,B3);
扩展以获得:
C = AxB = (a2 * b3 - a3 * b2,a1 * b3 - a3 * b1,a 1 * B2-a2 * b 1);
可以看出,两个向量的叉积产生了一个C向量(利用左手定则快速确定C向量的方向)。
几何意义:如下
c的模长= a的模长* b的模长* sinθ;
(这个公式也可以用来计算两个向量的缺点,角度小于等于90度。)
向量叉积可以用右手定则判断方向!
1.解决向量点乘无法计算超过180的问题。
2.获得两个矢量,其中一个矢量在垂直方向上已知。
3.判断两个向量的顺时针和逆时针关系。