计算两点坐标距离与中点坐标

/*回顾一下数学公式:

两点的坐标是(x1, y1)和(x2, y2)
则两点之间的距离公式为 d=√[(x1-x2)2+(y1-y2)2]

注意特例:
当x1=x2时
两点间距离为|y1-y2|
当y1=y2时
两点间距离为|x1-x2|

中点坐标:midpoint(X,Y)

X=(X1+X2)/2

Y=(Y1+Y2)/2

*/

//自定义坐标类

public class Pointer {
private double x;
private double y;
public Pointer(double x,double y){//构造方法初始化
this.setX(x);
this.setY(y);
}
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 static double distance(Pointer a,Pointer b){//静态方法,通过类名.方法名调用
double result= (Math.pow(a.getX()-b.getX(),2)+Math.pow(a.getY()-b.getY(),2));
return Math.sqrt(result);

}
public void display(){
System.out.println("("+this.getX()+","+this.getY()+")");
}
public String toString(){
return "("+x+","+y+")";

}
public boolean equals(Pointer obj){
if(this.getX()==obj.getX()&&this.getY()==obj.getY()){
return true;
}
return false;
}
//两点坐标的中点
public static String minpoint(Pointer a,Pointer b){
double x=(a.getX()+b.getX())/2;
double y=(a.getY()+b.getY())/2;
return "("+x+","+y+")";

}

}

//测试类

public class Demotest {

public static void main(String[] args) {

Pointer [] test=new Pointer [2];//对象数组
test[0]=new Pointer(2, 2);
test[1]=new Pointer(3,3);
test[0].display();
test[1].display();
System.out.println("**********************开始**********************");
System.out.println(test[0].toString()+test[1].toString()+"两点之间的距离:"+Pointer.distance(test[0], test[1]));
System.out.println(test[0].toString()+test[1].toString()+"两点的中点坐标是:"+Pointer.minpoint(test[0], test[1]));
System.out.println(test[0].equals(test[1]));
}

}

/*******************当然也可选择JDK里面的Pointer类****************/

import java.awt.Point;
import java.util.Scanner;

public class Test {
public static void main(String[] args){
System.out.println("请输入有几组:");
Scanner scanner = new Scanner(System.in);
int groupCount = scanner.nextInt();

double results[] = new double[groupCount];
for (int i=0;i<groupCount;i++) {
System.out.println("请输入第"+(i+1) + "组2点的坐标(以,分隔):");
String line = scanner.next();
String[] values = line.split(",");
if (values.length != 4) {
System.out.println("输入的数据格式不对!");
i = i--;
}
else {
double p1 = Double.valueOf(values[0]);//返回保持用参数字符串 s 表示的 double 值的 Double 对象
double p2 = Double.valueOf(values[1]);
double p3 = Double.valueOf(values[2]);
double p4 = Double.valueOf(values[3]);
results[i] = getDistance(p1, p2, p3, p4);
}
}

for (int i=0;i<results.length;i++)
System.out.println(results[i]);
}

public static double getDistance(double p1,double p2,double p3,double p4) {
double d = 0.0;
d = Point.distance(p1, p2, p3, p4);
return d;
}
}

时间: 2024-12-28 14:41:45

计算两点坐标距离与中点坐标的相关文章

C#面向对象思想计算两点之间距离

题目为计算两点之间距离. 面向过程的思维方式,两点的横坐标之差,纵坐标之差,平方求和,再开跟,得到两点之间距离. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Classes_2_point_distance { class Program { static void Main(string[

C# 通过GPS坐标,计算两点之间距离

之前在网上有很多这种计算的,但是代码都不怎么全.经过多方打听查询.找到完整代码.现将代码共享给大家. 有需要者觉得有用者欢迎使用.觉得用或简单的高手,请绕. public static double GetDistance(double lat1, double lng1, double lat2, double lng2) { double radLat1 = rad(lat1); double radLat2 = rad(lat2); double a = radLat1 - radLat2

java使用构造函数实现计算两点的距离

特别要注意参数的传递.使用以及相应参数的调用 原文地址:https://www.cnblogs.com/chenxue-wscls/p/11610010.html

Android studio 百度地图开发(6)Marker绑定事件、计算两点距离

email:[email protected] 开发环境:win7 64位,Android Studio,请注意是Android Studio,使用的导航SDK版本:3.1.0. 百度地图应用(1):Android studio 百度地图开发(1)配置工程.显示地图 百度地图应用(2):Android studio 百度地图开发(2)地图定位 百度地图应用(3):Android studio 百度地图开发(3)地图导航 百度地图应用(4):Android studio 百度地图开发(4)触摸选点

JAVA实现求一点到另两点连线的距离,计算两点之间的距离

直接上代码 /** *计算两点之间距离 */ public static double getDistance(Point start,Point end){ double lat1=start.getX().doubleValue(); double lat2=end.getX().doubleValue(); double lon1=start.getY().doubleValue(); double lon2=end.getY().doubleValue(); return Math.sq

ios根据gps坐标来计算两点间的距离

//ios根据gps坐标来计算两点间的距离 //x1,y1 点1的坐标 x2,y2点2的坐标 -(double) gps2m:(double)x1 _y1:(double)y1 _x2:(double)x2 _y2:(double)y2{ double radLat1 = (x1 * 3.1416 / 180.0); double radLat2 = (x2 * 3.1416 / 180.0); double a = radLat1 - radLat2; double b = (y1 - y2)

sql 坐标距离排序计算距离(转)

如果两个坐标的列是(x1,y1).(x2,y2),那么他们之间的距离:SQRT((X1-X2)*(X1-X2)+(Y1-Y2)*(Y1-Y2)) sql排序 SELECT * FROM m_store ORDER BY SQRT((121.517759-`longitude`)*(121.517759-`longitude`)+(31.178469-`latitude`)*(31.178469-`latitude`)) PHP计算距离 /***求两个已知经纬度之间的距离,单位为米*@param

从百度地图API中抠出来的一个js方法,计算百度地图坐标距离

从百度地图api(http://developer.baidu.com/map/jsdemo.htm#a6_1)中抠出来的一个js方法,计算百度地图坐标距离 可读行还没还原,能用就行~ function fD(a, b, c) { for (; a > c;) a -= c - b; for (; a < b;) a += c - b; return a; }; function jD(a, b, c) { b != null && (a = Math.max(a, b));

计算两点间的距离

计算两点间的距离 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 208295    Accepted Submission(s): 72641 Problem Description 输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离. Input 输入数据有多组,每组占一行,由4个实数组成,分别表示x1,y1,x2,y