平面中求一个点到一条直线的最短距离c#代码
时间: 2023-11-20 16:30:09 浏览: 121
以下是一个求解点到直线最短距离的C#代码示例:
```csharp
public static double PointToLineDistance(PointF point, PointF lineStart, PointF lineEnd)
{
double a = lineEnd.Y - lineStart.Y;
double b = lineStart.X - lineEnd.X;
double c = lineEnd.X * lineStart.Y - lineStart.X * lineEnd.Y;
double distance = Math.Abs(a * point.X + b * point.Y + c) / Math.Sqrt(Math.Pow(a, 2) + Math.Pow(b, 2));
return distance;
}
```
其中,`point`代表待求点,`lineStart`和`lineEnd`代表直线的两个端点,返回值为点到直线的最短距离。该代码使用了点到直线的公式,即 $d = \frac{\vert Ax + By + C \vert}{\sqrt{A^2 + B^2}}$,其中 $A = y_2 - y_1, B = x_1 - x_2, C = x_2y_1 - x_1y_2$。
阅读全文