導航:首頁 > 編程語言 > java計算兩點距離

java計算兩點距離

發布時間:2023-11-05 16:58:53

java如何用經緯度計算兩點水平和垂直距離

/**
*計算地球上任意兩點(經緯度)距離
*
*@paramlong1
*第一點經度
*@paramlat1
*第一點緯度
*@paramlong2
*第二點經度
*@paramlat2
*第二點緯度
*@return返回距離單位:米
*/
publicstaticdoubleDistance(doublelong1,doublelat1,doublelong2,
doublelat2){
doublea,b,R;
R=6378137;//地球半徑
lat1=lat1*Math.PI/180.0;
lat2=lat2*Math.PI/180.0;
a=lat1-lat2;
b=(long1-long2)*Math.PI/180.0;
doubled;
doublesa2,sb2;
sa2=Math.sin(a/2.0);
sb2=Math.sin(b/2.0);
d=2
*R
*Math.asin(Math.sqrt(sa2*sa2+Math.cos(lat1)
*Math.cos(lat2)*sb2*sb2));
returnd;
}

② java兩點間距離公式

哈哈,小伙愁了把,兩點距離這個就要用到數學的直角三角形的一個演算法了,
直角三角形的公式:直角邊A的平方 + 直角邊B的平方 = 斜邊C的平方
可以算出:
10 - 0 = 10 (直角邊A)
a點的x坐標 - b點的x坐標 = a點到b點的橫向直線距離 (直角邊A)

30.5 - 0 = (直角邊B)
a點的y坐標 - b點的y坐標 = a點到b點的豎向直線距離 (直角邊B)

那麼 (10*10 + 30.5*30.5)開平方 就是斜邊距離了
java的API有開平方方法 java.lang.Math.sqrt() 這個就是開平方

編程寫法:
double x1=0, y1=0, x2=10, y2=30.5;
double temp_A, temp_B;
double C; // 用來儲存算出來的斜邊距離
temp_A = x1>x2 ? (x1-x2) : (x2-x1); // 橫向距離 (取正數,因為邊長不能是負數)
temp_B = y1>y2 ? (y1-y2) : (y2-y1); // 豎向距離 (取正數,因為邊長不能是負數)
C=java.lang.Math.sqrt(temp_A*temp_A + temp_B*temp_B); // 計算

最後算出來的C的值 就是斜邊距離

③ JAVA直角坐標系中,兩點的中點及長度距離。

public class Point {

private double x;//橫坐標x
private double y;//縱坐標y

public Point() {//默認構造為(0,0)
this(0.0D, 0.0D);
}

public Point(double xCoordinate, double yCoordinate){//帶參數構造
this.x = xCoordinate;
this.y = yCoordinate;
}

public static void main(String[] args) {

Point p1 = new Point(1, 1);//點1
Point p2 = new Point(2, 3);//點2

System.out.println("Point 1 is: " + p1.toString());//輸出點1坐標
System.out.println("Point 2 is: " + p2.toString());//輸出點2坐標

System.out.println("Midpoint of point 1 and point 2 is: " + p1.getMidpoint(p2).toString());//中點坐標
System.out.println("Distance between point 1 and point 2 is: " + p1.getDistance(p2));//2點之間距離

}

// x = (x1 + x2)/ 2 , y = (y1 +y2)/2
public Point getMidpoint(Point p1){
Point midPoint = new Point();
midPoint.x = (this.getX() + p1.getX()) / 2;
midPoint.y = (this.getY() + p1.getY()) /2;

return midPoint;
}

//∣AB∣=√[(X1- X2)^2+(Y1- Y2)^2]= √(1+k2) ∣X1 -X2∣
public double getDistance(Point p1){
double xSqure = Math.pow(this.x - p1.getX(), 2);
double ySqure = Math.pow(this.y - p1.getY(), 2);

return Math.sqrt(xSqure + ySqure);
}

public double getX() {
return x;
}

public void setX(double x) {
this.x = x;
}

public double getY() {
return y;
}

public void setY(double y) {
this.y = y;
}

public String toString(){//string輸出
return "(x, y): (" + this.x + ", " + this.y + ")";
}
}

-----------程序運行結果
Point 1 is: (x, y): (1.0, 1.0)
Point 2 is: (x, y): (2.0, 3.0)
Midpoint of point 1 and point 2 is: (x, y): (1.5, 2.0)
Distance between point 1 and point 2 is: 2.23606797749979

④ java求坐標系中任意兩點的距離取出最短距離

Point p1 = new Point(x1,y1);
Point p2 = new Point(x2,y2);
double gap = Math.sqrt(Math.pow(p1.y-p2.y,2) + Math.pow(p1.x-p2.x,2));

閱讀全文

與java計算兩點距離相關的資料

熱點內容
臨汾單片機步進電機驅動電路 瀏覽:76
全新勝達天窗能編程嗎 瀏覽:320
ug常用命令 瀏覽:349
為什麼碳數增加密度減小 瀏覽:420
少兒計算機編程培訓無聊嗎 瀏覽:589
安卓界面更新時點擊卡頓如何解決 瀏覽:773
日本十大漫畫app哪個好用 瀏覽:878
做系統選擇哪個文件夾 瀏覽:285
如何登陸mc伺服器 瀏覽:801
華為無法定位伺服器地址 瀏覽:963
編譯原理第三版陳火旺課本圖片 瀏覽:566
cad用什麼解壓縮軟體 瀏覽:717
編譯的函數模版 瀏覽:361
加密貨幣利率改變 瀏覽:228
復雜網路案例python 瀏覽:298
死命令的意思 瀏覽:691
哪個app可以聽日語電台 瀏覽:105
谷輪壓縮機15hp 瀏覽:291
python任意整數冒泡降序 瀏覽:32
醫保卡的錢哪個app能看到 瀏覽:578