一直都没搞清楚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θ,所以点乘的结果只与夹角绝对值有关,不存在顺序问题。

相关文章:

  • 2021-11-18
  • 2021-05-14
  • 2021-08-03
  • 2021-04-18
  • 2021-05-29
  • 2022-01-12
  • 2022-12-23
猜你喜欢
  • 2021-12-21
  • 2021-12-02
  • 2022-02-01
  • 2021-08-05
  • 2021-07-26
  • 2021-08-20
  • 2022-02-07
相关资源
相似解决方案