导航:首页 > 编程语言 > 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计算两点距离相关的资料

热点内容
少儿计算机编程培训无聊吗 浏览:587
安卓界面更新时点击卡顿如何解决 浏览:771
日本十大漫画app哪个好用 浏览:876
做系统选择哪个文件夹 浏览:283
如何登陆mc服务器 浏览:799
华为无法定位服务器地址 浏览:961
编译原理第三版陈火旺课本图片 浏览:566
cad用什么解压缩软件 浏览:715
编译的函数模版 浏览:359
加密货币利率改变 浏览:226
复杂网络案例python 浏览:296
死命令的意思 浏览:689
哪个app可以听日语电台 浏览:103
谷轮压缩机15hp 浏览:289
python任意整数冒泡降序 浏览:30
医保卡的钱哪个app能看到 浏览:576
主服务器崩溃如何进行域迁移 浏览:317
学安卓用什么语言好 浏览:78
qt命令行 浏览:800
慕课app班级在哪里 浏览:140