@作者 : SYFStrive
@博客首页 : HomePage
?:个人社区(欢迎大佬们加入) ?:社区链接?
?:觉得文章不错可以点点关注 ?:专栏连接?
目录
向量长度2D VS 3D点乘叉乘
⭐️ 游戏开发中数学的【向量的点乘】和【向量的叉乘】运算 ⭐️【点乘】静态方法:Vector3.Dot(Va, Vb);返回一个数值。数值等于0 ?向量垂直 ⭐️【叉乘】静态方法:Vector3.Cross(Va, Vb);返回一个新的向量 ? 垂直与Va,Vb ??️点乘案例 ? 飞行模拟器…..。 ??️点乘案例 ? 合金弹头…..。 ?向量的点乘运算与叉乘运算在Unity中的实际用途和静态方法? |
---|
向量长度
如下原点到(12,5)及为所需的距离
计算方法如 ?
两点之间的距离
公式:(勾股定理)? 1212+55 (数值参考图所得)
使用内置变量
magnitude 返回该向量的长度。(只读)
sqrMagnitude 返回该向量的平方长度。(只读)
代码实现如 ?
应用:原点到a对象的位置
public GameObject a; private void Start() { Debug.Log(Vector3.Magnitude(a.transform.position)); }
2D VS 3D
3D比2D多了一个Z轴(深度轴)? 遵循左手定理~~~如 ?
3D空间图示如 ?
计算距离大小类型2D
点乘
? 在Unity3D里面。 两个向量的点乘所得到的是两个向量的余弦值,也就是-1 到1之间,0表示垂直,-1表示相反,1表示相同方向。
应用场景如 ?
如果点乘的结果大于0,是正数 ? (适当给点减速) 如果点乘的结果等于0,等于0 ? (适当给点拉力) 如果点乘的结果小于0,是负数 ?(坠机)计算方法如 ?
点乘数学计算公式
?A点坐标 、B点坐标
?公式:ab=|a||b|cos∠
?判断垂直公式:(Ax * Bx)+(Ay * By)+(Az * Bz)=0 ?(垂直)
Unity提供了一个静态的方法如 ?
向量的点乘 Dot 两个向量的点积。
代码实现如 ?
应用:检测俩个方向向量是否垂直
public GameObject a; public GameObject b; private void Update() { Vector3 dir = (a.transform.position - transform.position).normalized; Vector3 dir1 = (b.transform.position - transform.position).normalized; Debug.Log(Vector3.Dot(dir, dir1)); }}
叉乘
? 两个向量的叉乘又叫向量积、外积、叉积所得到的是两个向量所组成的面的法向量,分两个方向。
例如:向量A ? 向量B 进行叉乘运算 ? 不同于点乘会输出一个值 、而是输入一个垂直于A、B向量的向量(高中证明的法向量)
计算方法如 ?
点乘数学计算公式已知:A点坐标 、B点坐标
数学内部的运算公式如 ?
Unity提供了一个静态的方法如 ? 代码实现如 ?应用:如知道开炮的方向以及我们要向哪边旋转 ? 游戏中我们应该在哪一个轴上施加扭力【Torque】测试如 ?
public GameObject a; public GameObject b; private void Update() { Vector3 dir = (a.transform.position - transform.position).normalized; Vector3 dir1 = (b.transform.position - transform.position).normalized; Debug.Log(Vector3.Cross(dir, dir1)); }}
本文到这里就结束了,大佬们的支持是我持续更新的最大动力,希望这篇文章能帮到大家?
相关专栏连接?
下篇文章再见ヾ( ̄▽ ̄)ByeBye