C#两点的距閣度量是最拉本的度量关系,也是其他度量关系的基础,交现“点人面”最近欧式距离的计算。输入一个点和一个多边形(一组点坐标),计算点与多边形的拐点的所有距离,并将最短距离输出。(数组与循环)~
时间: 2023-12-06 13:44:08 浏览: 29
下面是用 C# 实现的代码:
```csharp
using System;
namespace PointToPolygonDistance
{
class Program
{
static void Main(string[] args)
{
// 输入点和多边形
Console.WriteLine("请输入点的坐标(例如:1,2):");
string[] pointStr = Console.ReadLine().Split(',');
double pointX = double.Parse(pointStr[0]);
double pointY = double.Parse(pointStr[1]);
Console.WriteLine("请输入多边形的顶点坐标(例如:1,2;3,4;5,6):");
string[] vertexStr = Console.ReadLine().Split(';');
int vertexCount = vertexStr.Length;
double[] vertexX = new double[vertexCount];
double[] vertexY = new double[vertexCount];
for (int i = 0; i < vertexCount; i++)
{
string[] coordStr = vertexStr[i].Split(',');
vertexX[i] = double.Parse(coordStr[0]);
vertexY[i] = double.Parse(coordStr[1]);
}
// 计算距离
double minDistance = double.MaxValue;
for (int i = 0; i < vertexCount; i++)
{
double distance = Distance(vertexX[i], vertexY[i], pointX, pointY);
if (distance < minDistance)
{
minDistance = distance;
}
}
// 输出结果
Console.WriteLine("点到多边形的最短距离为:" + minDistance);
}
// 计算两点之间的距离
static double Distance(double x1, double y1, double x2, double y2)
{
double dx = x1 - x2;
double dy = y1 - y2;
return Math.Sqrt(dx * dx + dy * dy);
}
}
}
```
程序首先要求用户输入点和多边形的坐标,然后循环计算点到多边形中每个顶点的距离,取最小值作为最短距离,最后输出结果。