Unity Vector3.Dot(点积)和Vector3.Cross(叉积)应用

有什么用

计算点积判断当前物体是否朝向目标物体

点积和叉积

点积

点积的计算方式: a·b=|a|·|b|cos<a,b>

|a|和|b|表示向量的模,<a,b>表示两个向量的夹角(所以也可用于计算两个向量的夹角)

判断当前物体是否朝向目标物体target

当前物体的方向(transform.position - target.position)与目标方向target.forward的点积 dot>0 则面对,dot<0 则为背对(精度不高,会有误差)

叉积

定义: c =a x b (a,b,c均为向量)两个向量的叉积得到的还是向量
性质1: c⊥a,c⊥b,即向量c垂直与向量a,b所在的平面 。
性质2: 模长|c|=|a||b|sin<a,b>
性质3: 满足右手法则 。从这点我们有axb ≠ bxa,而axb = – bxa。所以我们可以使用叉积的正负值来判断向量a,b的相对位置,即向量b是处于向量a的顺时针方向还是逆时针方向。

posted @ 2019-04-26 22:18  KelvinVS  阅读(2144)  评论(0)    收藏  举报