点乘和叉乘
程序员文章站
2022-03-30 08:57:46
...
点乘公式
a*b=|a|*|b|cosθ
a·b>0 方向基本相同,夹角在0°到90°之间
a·b=0 正交,相互垂直
a·b<0 方向基本相反,夹角在90°到180°之间
public Transform target;
public void Update()
{
float forward = Vector3.Dot(target.position-transform.position, transform.right);
Debug.Log(forward);
if (forward>0)
{
Debug.Log("右方");
}
else if (forward == 0)
{
Debug.Log("正前方");
}
else
{
Debug.Log("左方");
}
}
叉乘公式
a*b=-1*a*b
a*b=向量a与向量b形成的平行四边形的面积
public Transform target;
public void Update()
{
float forward = Vector3.Cross(target.position-transform.position, transform.right).y;
Debug.Log(forward);
if (forward>0)
{
Debug.Log("前方");
}
else if (forward == 0)
{
Debug.Log("同一直线上");
}
else
{
Debug.Log("后方");
}
}
static Vector3 Cross(Vector3 lhs, Vector3 rhs);
Ihs是目标点的向量,为目标点的坐标-自身点的坐标,求得目标点的向量。
rhs是自身点的向量,向量是一个方向,该方向为自身的右方。
可以通过判断自身的y值的大小来目标点在物体的前后。
可参考 点乘和叉乘
上一篇: 浅谈cookie && session
下一篇: d1