大家都知道 二个向量 a和b 二者相乘是 |a|x|b|x cosθ 。叉乘是 |a| x |b| x sinθ。但为什么结果是这样的呢?简单贴一下推导过程,方便查阅。
基础sin cos 值转换:
sin(-a)=-sin(a)
cos(-a)=cos(a)
sin(2π-a)=cos(a)
cos(2π-a)=sin(a)
sin(2π+a)=cos(a)
cos(2π+a)=-sin(a)
sin(π-a)=sin(a)
cos(π-a)=-cos(a)
sin(π+a)=-sin(a)
cos(π+a)=-cos(a)
三角函数基础 加减公式:
sin(a+b)=sin(a)cos(b)+cos(a)sin(b);
cos(a+b)=cos(a)cos(b)-sin(a)sin(b);
sin(a-b)=sin(a)cos(b)-cos(a)sin(b);
cos(a-b)=cos(a)cos(b)+sin(a)sin(b);
tan(a+b)=tan(a)+tan(b)-tan(a)tan(b);
tan(a-b)=tan(a)-tan(b)+tan(a)tan(b)。
根据cos(a-b)=cos(a)cos(b)+sin(a)sin(b); 很容易推出点乘结果,具体如下:
注意一点是 cos(-a)=cos(a)。所以点乘的前后顺序不影响cos值。但实际游戏使用其判断夹角时要注意,只能0-180度。181-360 判断不出来,得配合叉乘算二个向量的顺逆时针方向
再算叉乘:(图不画了用上面的图)