110,535
社区成员
发帖
与我相关
我的任务
分享
private float GetDistanceToPoint(Point p)
{
float normalX = p1.Y - p2.Y;
float normalY = p2.X - p1.X;
float normalLength = (float)Math.Sqrt(normalX * normalX + normalY * normalY);
if (normalLength < 0.0001) return Math.Abs(p.X - p1.X) + Math.Abs(p.Y - p1.Y);
normalX /= normalLength;
normalY /= normalLength;
float distance = Math.Abs((p.X * normalX + p.Y * normalY) - (p1.X * normalX + p1.Y * normalY));
return distance;
}