点乘公式推导

来源:互联网 发布:医学软件 编辑:程序博客网 时间:2024/06/10 00:24

一直都没搞清楚dot(a,b) = |a|*|b|*cos<a,b>是怎么推导出来的。很多公式推导都用到它,所以特地查了下,结果在gamedev上找到了答案。

其实很简单,wiki上说点乘的定义式是dot(a,b) = sum(a1*b1,a2*b2,...),简单的二维就是dot(a,b) = a1*b1+a2*b2.

现在由它推导出最上面的公式(乘号省略)

a•b =x1x2 + y1y2
=|a|cosθ1|b|cosθ2 + |a|sinθ1|b|sinθ2
=|a||b|(cosθ1cosθ2 + sinθ1sinθ2)
=|a||b|cos(θ1-θ2)


很简单吧,由于cos是对称的,cos(-θ) = cosθ,所以点乘的结果只与夹角绝对值有关,不存在顺序问题。


    


原创粉丝点击