两点的距离度量是最基本的度量关系,也是其他度量关系的基础,实现“点/面”最近欧式距离的计 算。输入一个点和一个多边形(一组点坐标),计算点与多边形的拐 点的所有距离,并将最短距离输出。(数组与循环)C#
时间: 2023-07-16 08:12:32 浏览: 46
以下是C#实现的代码:
```C#
using System;
namespace DistanceCalculation
{
class Program
{
static void Main(string[] args)
{
// 输入点的坐标
Console.WriteLine("请输入点的横坐标:");
double x = double.Parse(Console.ReadLine());
Console.WriteLine("请输入点的纵坐标:");
double y = double.Parse(Console.ReadLine());
// 输入多边形的顶点坐标
Console.WriteLine("请输入多边形的顶点数:");
int n = int.Parse(Console.ReadLine());
double[,] vertices = new double[n, 2];
for (int i = 0; i < n; i++)
{
Console.WriteLine($"请输入第{i+1}个顶点的横坐标:");
vertices[i, 0] = double.Parse(Console.ReadLine());
Console.WriteLine($"请输入第{i+1}个顶点的纵坐标:");
vertices[i, 1] = double.Parse(Console.ReadLine());
}
// 计算点与多边形的距离
double minDist = double.MaxValue;
for (int i = 0; i < n; i++)
{
double dist = Math.Sqrt(Math.Pow(x - vertices[i, 0], 2) + Math.Pow(y - vertices[i, 1], 2));
if (dist < minDist)
{
minDist = dist;
}
}
// 输出最短距离
Console.WriteLine($"点({x}, {y})与多边形的最短距离为:{minDist}");
}
}
}
```
代码中使用了一个二维数组来存储多边形的顶点坐标,然后使用循环计算点与每个顶点的距离,并将最小距离存储在变量`minDist`中,最后输出最小距离即可。注意,这里使用了`Math.Sqrt`函数来计算平方根,需要在代码开头加上`using System;`以引入该命名空间。