向量的叉乘
2023-12-25 02:54:56
向量的叉乘
向量的叉乘 a ^ b
高中数学中我们可以得到公式 a * b = |a| * |b| * sin<a,b>
可以使用叉乘获取两个向量的左右位置,如下图所示
案例一(案例中将y去掉,相当于俯视坐标系之后x,z):
Vector3 a = new Vector3 (1,0,2);
Vector3 b = new Vector3 (2,0,1);
Vector3 c = new Vector3 (2,0,-1);
Vector3 d = new Vector3 (-2,0,-1);
// Use this for initialization
void Start () {
Debug.LogError(Vector3.Angle(a,b));//36.8699
Debug.LogError(Vector3.Cross(a,b).y);//3
Debug.LogError(Vector3.Cross(b,d).y);//0
Debug.LogError(Vector3.Cross(a,c).y);//5
Debug.LogError(Vector3.Cross(a,d).y);//-3
}
上面的代码中我们可以看出来 ∠aob = 36.8699°
根据点乘公式:向量a * 向量b = |a| * |b| * sin36.8699° = 根5 * 根5 * sin36.8699° = 3;
已知sin曲线,我们可以用叉乘来计算向量的位置。注意如果此时点乘结果为0是代理两个向量相反。
总结,Vector3.Cross(a,b).y > 0 代表b在a的左面,反之则b在a的右面。
文章来源:https://blog.csdn.net/qq_42194657/article/details/135186456
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!