U2L4-3——向量点乘
U2L4-3——向量点乘
向量点乘
向量点乘可以用来判断对象的方位,计算两个向量之间的夹角
点乘计算公式:
向量
向量
向量 · 向量 = 标量
向量点乘的几何意义是:
一个向量到另一个向量的投影的长度
点乘结果 > 0 两个向量夹角为锐角
点乘结果 = 0 两个向量夹角为直角
点乘结果 < 0 两个向量夹角为钝角
我们可以用这个规律判断对方的大致方位
它与向量模长和单位向量知识延伸出:
如果向量和自己的点乘结果为1,则该向量为单位向量:
值得一提的是,两个标准化后的单位向量,点乘以后得到的是这两个单位向量夹角的 值
本章代码关键字
1 | Debug.DrawLine(, , ) //调试的画线段方法 |
调试画线
画线段
前两个参数 分别是 起点 终点
1 | //前两个参数 分别是 起点 终点 |
画射线
前两个参数 分别是 起点 方向
1 | //前两个参数 分别是 起点 方向 |
计算两个向量点乘方法
Vector3 提供了计算点乘的方法 (向量点乘)
1 | //Vector3 提供了计算点乘的方法 |
通过点乘判断对方方位
1 | //得到两个向量的点乘结果 |
通过点乘推导公式算出夹角
重要推论:AB夹角 = Acos(单位向量A · 单位向量B)
步骤
- 用单位向量算出点乘结果
- 用反三角函数得出角度
1 | //步骤 |
得到两个向量之间夹角的方法
Vector3
也提供了 得到两个向量之间夹角的方法(返回的是角度,和Mathf
不同!!!)
1 | print("角度2:" + Vector3.Angle(this.transform.forward, target.position - this.transform.position)); |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 文KRIFE齐的博客!