gpt4 book ai didi

c# - C#计算两点之间的距离

转载 作者:太空宇宙 更新时间:2023-11-03 22:35:42 26 4
gpt4 key购买 nike

我想用这个公式计算两点之间的距离 https://m.wikihow.com/Find-the-Distance-Between-Two-Points .但是我如何将公式写入其中。如何将 var 更改为 double?因为我无法执行数学运算,因为数组是 var以下是我的示例代码:

using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Console1
{
class Program
{
static void Main(string[] args)
{

DataTable dt1= ConvertToDataTable(@"C:\Users\manchunl\Desktop\Sample1.txt", 10);
DataTable dt2= ConvertToDataTable2(@"C:\Users\manchunl\Desktop\Sample2.txt", 10);

foreach (DataRow row in dt1.AsEnumerable())
{
string.Join(",", row.ItemArray.Select(x => x.ToString()));
}

foreach (DataRow row in dt2.AsEnumerable())
{
string.Join(",", row.ItemArray.Select(x => x.ToString()));
}


foreach (DataRow row1 in dt1.Rows)
{
foreach (DataRow row2 in dt2.Rows)
{
var array1 = row1.ItemArray;
var array2 = row2.ItemArray;

if (array2[4].Equals(array1[4]))
{
var x1 = array1[7];
var y1 = array1[8];
var x2 = array2[7];
var y2 = array2[8];



}
}
}


Console.WriteLine();
Console.WriteLine("Press enter to exit.");
Console.Read();
}


public static DataTable ConvertToDataTable(string filePath, int numberOfColumns)
{


DataTable tbl = new DataTable();

for (int col = 0; col < numberOfColumns; col++)
tbl.Columns.Add(new DataColumn("Column" + (col + 1).ToString()));


string[] lines = System.IO.File.ReadAllLines(filePath);

foreach (string line in lines)
{
var cols = line.Split(null);

DataRow dr = tbl.NewRow();
for (int cIndex = 0; cIndex < numberOfColumns; cIndex++)
{
dr[cIndex] = cols[cIndex];

}

tbl.Rows.Add(dr);

}

return tbl;
}

public static DataTable ConvertToDataTable2(string filePath, int numberOfColumns)
{


DataTable tbl = new DataTable();

for (int col = 0; col < numberOfColumns; col++)
tbl.Columns.Add(new DataColumn("Column" + (col + 1).ToString()));


string[] lines = System.IO.File.ReadAllLines(filePath);

foreach (string line in lines)
{
var cols = line.Split(',');

DataRow dr = tbl.NewRow();
for (int cIndex = 0; cIndex < numberOfColumns; cIndex++)
{
dr[cIndex] = cols[cIndex];

}

tbl.Rows.Add(dr);

}

return tbl;
}

}
}

最佳答案

您可以使用数学功能来计算两点之间的斜率

int distX = int.Parse(x2) - int.Parse(x1);
int distY = int.Parse(y2) - int.Parse(y1);

double result = Math.Sqrt(distX * distX + distY * distY)

Sqrt()Pow() , 都是 Math 类的静态函数。

使用POW函数

double result = Math.Sqrt(Math.Pow(distX, 2) + Math.Pow(distY,2))

关于c# - C#计算两点之间的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55239564/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com