计算这个,我们首先要知道一点向量的基本知识,点乘和叉乘的几何意义。
点乘:求的一个向量到另一个向量的投影,结果是一个数。
叉乘:求垂直于2个向量的向量,结果是一个向量。
已知p1,p2 ,p 求p 到p1 p2上的距离点 px
p1到px的距离为:k = (p - p1)*(p2 - p1).Normalized;
px = p1 + k*(p2 - p1).Normalized;
p到p1p2的距离为p1 - px的模。
/// <summary>
/// 点到直线距离的交点
/// </summary>
/// <returns></returns>
public static Vector3 PointToLineDistancePoint(Vector3 p1, Vector3 p2, Vector3 p)
{
Vector3 n = (p2 - p1).Normalized();
float k = Dot((p - p1), n);
Vector3 px = p1 + k * n;
return px;
}