2016-04-15 26 views
0

我正在使用包含700個x和y座標的位置名稱的.DAT文件,我知道如何將x和y分隔開來,因此在每個座標被分開的時刻。所以我的主要觀點是設置爲USAcamp 50 50,我需要找到距離我的代碼中帶有名稱的50,50最遠的距離。什麼是最好的公式來找到這個?我還需要找出每個點與50,50之間有多少英里。最遠和兩點之間的距離(英里)

一切都是分隔的是這樣的:

string usaNames; 
double x; 
double y; 

感謝您的幫助,我可以明確的事情,如果這是太混亂了,我正在學習,所以一切幫助。

回答

1
兩點之間

最短距離爲:

SQRT((X2-X1)^ 2 +(Y2-Y1)^ 2)

因此要這樣做​​計算點的所有集並找到最大的距離。

因爲它涉及到C#,我會圍繞C#的Point類創建一個複合類,併爲該名稱添加該字段,然後執行嵌套的for-loop來查找距離。

double max = -1; 
for(int i = 0; i<arr.length-1;i++){ 
    for(int j = i+1; j<arr.length; j++){ 
     // Calculate the distance and set the max if highest 
    } 
} 

欲瞭解更多信息,看看這個帖子:What is the most efficient way to calculate the maximum distance of two points in a list?