C# 计算点到线段最近距离的方法
以下是一个用 C# 计算一个点到线段最近位置的示例代码:
public static float DistanceToLineSegment(Vector2 point, Vector2 lineStart, Vector2 lineEnd)
{
Vector2 direction = lineEnd - lineStart;
float length = direction.magnitude;
direction.Normalize();
float dotProduct = Vector2.Dot(direction, point - lineStart);
dotProduct = Mathf.Clamp(dotProduct, 0f, length);
Vector2 closestPoint = lineStart + direction * dotProduct;
return Vector2.Distance(point, closestPoint);
}
其中,'point'是要计算距离的点,'lineStart'和'lineEnd'分别是线段的起点和终点。函数返回点到线段的最短距离。
该函数的实现方法为,首先计算出线段的方向向量和长度,然后计算点到线段起点的投影长度,再根据投影长度计算出点到线段的最近位置。最后,返回点到最近位置的距离即可。
原文地址: http://www.cveoy.top/t/topic/odXd 著作权归作者所有。请勿转载和采集!