向量的点积(标量积、内积)
几何意义:
1.计算两个向量之间的夹角
2.计算一个向量在另一个向量上的投影
代数定义:
几何定义
进而可以进一步判断两个向量是否同一方向或正交(即垂直)等方向关系,具体对应关系为:
a∙b>0→方向基本相同,夹角在0°到90°之间
a∙b=0→ 正交,相互垂直
a∙b<0→ 方向基本相反,夹角在90°到180°之间
几何定义推导代数定义:
代数定义推导几何定义:
计算点直线的垂直距离:
// unity 代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TestPointDistanceLine : MonoBehaviour {
public Transform point;
public Transform lineStart;
public Transform lineEnd;
public Transform perpendicular;
private void Update () {
Vector3 a = point.position - lineStart.position;
Vector3 b = lineEnd.position - lineStart.position;
float distance = Mathf.Abs(Vector3.Dot(a,b.normalized)); //方法一: 求向量 a 在向量 b 上的投影长度
Vector3 projectVector = Vector3.Project(a, b); //方法二: 求向量 a 在向量 b 上的投影向量,然后取向量长度
perpendicular.position = lineStart.position + projectVector;
Debug.Log($"distance:{distance}, projectVector.magnitude:{projectVector.magnitude}");
}
}
主要代码:
float distance = Mathf.Abs(Vector3.Dot(a,b.normalized));
推算过程:
https://www.cnblogs.com/gxcdream/p/7597865.html
https://baike.baidu.com/item/点积
反射向量计算:
https://www.cnblogs.com/graphics/archive/2013/02/21/2920627.html
投影后的向量计算:
https://www.cnblogs.com/graphics/archive/2010/08/03/1791626.html
点到直线与面的距离公式:
https://zhuanlan.zhihu.com/p/63499708