/*回顾一下数学公式:

两点的坐标是(x1, y1)和(x2, y2)

则两点之间的距离公式为 d=√[(x1-x2)²+(y1-y2)²]

注意特例:

当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

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

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;

}

}

Java求两点的中点坐标_计算两点坐标距离与中点坐标相关推荐

  1. 两点间距离公式计算机,已知两点经纬度,用excel计算两点距离的公式?(转

    已知两点经纬度,用excel计算两点距离的公式?(转 (2008-08-03 17:51:26) 标签: 杂谈 用EXCEL进行高斯投影换算 从经纬度BL换算到高斯平面直角坐标XY(高斯投影正算),或 ...

  2. java程序如何获取北京时间_计算当前的北京时间java(currentTimeMillis)

    计算当前的北京时间java(currentTimeMillis) 计算当前的北京时间java(currentTimeMillis) 当前北京时间 编写一个显示当前GMT时间的程序,该时间的格式为小时: ...

  3. 我的世界java版如何看坐标_我的世界中怎么查看坐标,坐标系统详解

    本篇教程将通过图文的形式一步步教你在我的世界中查看理解坐标系统(XYZ). 坐标系统解释 我的世界地图有XYZ3个坐标,通过XYZ来显示你所处地图的区域. 下面是每个坐标的详解: X - 显示你在地图 ...

  4. python提取cad坐标_教你一个实用的CAD坐标提取技巧

    经常用CASS计算土石方的小伙伴,经常会遇到一个很大的拦路虎:拿到一张甲方提供的dwg图纸,要求用CASS进行土石方计算.顿时感觉无从下手了. 遇到这样的问题,我常常会问焦急的小伙伴三个问题: 已知的 ...

  5. 百度坐标转gps坐标_论文推荐 | 明锋:GPS坐标时间序列分析研究

    <测绘学报> 构建与学术的桥梁 拉近与权威的距离 GPS坐标时间序列分析研究 明锋 地理信息工程国家重点实验室, 西安测绘研究所, 陕西 西安 710054 收稿日期:2019-01-02 ...

  6. Java求最小数用哪个函数_在Java中使用小数进行计算的函数

    例如,当您键入22和56时,此代码可以正常工作,它显示正确的结果 import java.util.Scanner; class apples{ public static void main(Str ...

  7. Java求抛物线输入角度速度_模拟一条抛物线如何根据抛出角度,力度在计算物体的飞行轨迹?最好考虑空气的阻力,哪位达人能给一个公式么...

    共回答了17个问题采纳率:82.4% 没定坐标系的话就是默认从原点开始的一条抛物线咯? 设横纵坐标都表示距离 单位m米 其实有点问题 只有力度没有受力时间是不知道抛出的初速度的 这个问题一定要搞清楚啊 ...

  8. java求值不用后缀表达式_数据结构之后缀表达式求值(java实现)

    数据结构之后缀表达式求值(java实现) 前记 ​ 今天在刷leet code的时候刷到了一道题,后缀表达式(逆波兰表达式)求值,我花了一会儿写了一下它的解法.但是今天我不谈什么是后缀表达式,有兴趣的 ...

  9. java 判断两个经纬度差异_计算两个经纬度点的实际距离

    一.概述 因为地球是个球形,所以地球上的两个点,实际上是球面上的两个点,要计算这两个点之间的距离,不能简单的通过直角坐标系来计算. 二.计算方法 1.地球半径取近似值 6378.137km 1 /** ...

最新文章

  1. WindowsPhone 7.8 Tiles 3 : 7.8的Tiles利器mangopollo
  2. js选择日期即时把两个日期相差天数显示出来?
  3. [蓝桥杯][2015年第六届真题]密文搜索(排序+二分)
  4. 上厕所时间超长也能被开除?法院:超出正常生理需求范围!
  5. ipconfig和ping 命令的各种参数
  6. capcreatecapturewindowa 说明_阳江陶瓷坯体增强剂使用说明
  7. 【机器学习】监督学习--(分类)支持向量机SVM①
  8. D3 BarChart
  9. 震后十年,他重走那条生死送货线
  10. 数据结构和算法9——哈希表
  11. Charles抓包工具
  12. VS2015的下载地址和安装教程
  13. libeigen3-dev和eigen有什么区别
  14. 队列与栈的原理及特点
  15. 生信学习——基于R的统计习题(附详细答案解读)
  16. android源码结构分析
  17. csv文件转换为excel文件
  18. 斗地主吗?能学区块链那种! | 原力计划
  19. 理解java代理模式
  20. 企业微信自定义客户画像

热门文章

  1. 方法教程:一分钟把网易云音乐上的MV/mv视频下载到本地电脑
  2. Win10 64位下解决 NVIDIA 显示设置不可用(小白问题)
  3. Xubuntu22.04之连接filco蓝牙键盘
  4. 基于fastadmin的工业园区科技园水电费管理系统
  5. 79元限抢Jeep专柜「冰丝速干裤」!穿上它让你“胯下生风”,比裸奔还爽!
  6. 苏州银行李伟:银行数字化转型中的隐私计算
  7. 2月面经:真可惜...拿了小米的offer,字节却惨挂在三面
  8. 常见的几种html转pdf方法
  9. python_pdf常规使用
  10. iPad 手指触摸与PC鼠标事件