我想计算用户输入的点之间的欧式距离,因此您可以在这里看到:
static void Main(string[] args) { int numtest = int.Parse(Console.ReadLine()); int[,] points=new int[10,2]; for (int i = 0; i < numtest; i++) { Console.WriteLine("point " +(i+1).ToString()+" x: "); points[i, 0] = int.Parse(Console.ReadLine()); Console.WriteLine("point " + (i + 1).ToString() + " y: "); points[i, 1] = int.Parse(Console.ReadLine()); } } public float[] calculate(int[,] points) { for (int i = 0; i
C#中有任何功能可以做到这一点吗?
我需要数组中所有点之间的每个距离值
1> SimpleVar..:以下是实现两个给定点之间的距离计算的方法,以帮助您入门:
int x0 = 0; int y0 = 0; int x1 = 100; int y1 = 100; int dX = x1 - x0; int dY = y1 - y0; double distance = Math.Sqrt(dX * dX + dY * dY);
2> tchelidze..:尝试跟随
public void calculate(double[,] points) { var distanceArray = new double[points.Length, points.Length]; for (int i = 0; i < points.Length; i++) for (int j = 0; j < points.Length; j++) distanceArray[i, j] = Distance(points[i, 0], points[i, 1], points[j, 0], points[j, 1]); } public static double Distance(double x1, double y1, double x2, double y2) => Math.Sqrt(((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)));