首页 > 编程知识 正文

向量的点乘运算,向量的点乘坐标表示

时间:2023-05-04 04:57:13 阅读:275129 作者:1455

向量的点乘 a * b

高中数学中我们可以得到公式 a * b = |a| * |b| * cos<a,b>

可以使用点乘获取两个向量的前后位置,如下图所示


案例一(案例中将y去掉,相当于俯视坐标系之后x,z): Vector3 a = new Vector3 (1,0,2); Vector3 b = new Vector3 (2,0,1);// Use this for initializationvoid Start () { Debug.LogError(Vector3.Angle(a,b));//36.8699 Debug.LogError(Vector3.Dot(b,a));//4 Debug.LogError(Vector3.Dot(b,d));//-5 Debug.LogError(Vector3.Dot(a,d));//-4 Debug.LogError(Vector3.Dot(b,c));//3}

上面的代码中我们可以看出来 ∠aob = 36.8699°
根据点乘公式:向量a * 向量b = |a| * |b| * cos36.8699° = 根5 * 根5 * cos36.8699° = 4;

此时判定这里a是在b的前面的位置,为什么这么说是因为cos曲线告诉我们在夹角小于90°时 cos<a,b>大于0,反之小于0,所以我们可以用点乘来计算向量的位置。注意如果此时点乘结果为0是代理两个向量垂直。 总结,Vector3.Dot(x,y) > 0 代表y在x的前面,反之则y在x的后面,判断左右时找一个与之垂直的即可得到左右,方法同理。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。