*4.2(几何:最大圆距离)最大圆面积是指球面上两个点间的距离。编写一个程序,提示用户以度为单位输入地球上两个点的经纬度,显示其最大圆距离值

  • 题目
    • 题目概述
    • 破题
    • 运行示例
  • 代码

题目

题目概述

*4.2(几何:最大圆距离)最大圆面积是指球面上两个点间的距离。编写一个程序,提示用户以度为单位输入地球上两个点的经纬度,显示其最大圆距离值
假设(x1,y1)和(x2, y2)是两个点的地理经纬度,两个点之间的最大圆距离可以用以下公式表示:d = 半径 * arccos(sin(x1) * sin(x2) + cos(x1) * cos(x2) * cos(y1 - y2))
对上式进行处理:d = R * Math.acos(Math.sin(x1) * Math.sin(x2) + Math.cos(x1) * Math.cos(x2) * Math.cos(y1 - y2))
公式中的经纬度是相对北边、西边,使用负值表示南边和东边
地球的平均半径为6 371.01km
需要使用Math.toRadians方法将度转换为弧度数

破题

获取用户输入后,需要使用Math.toRadians方法将输入的度转换为弧度数
转换后再代入两点之间的最大圆距离公式

运行示例

Enter point 1 (latitude and longitude) in degrees: 39.55 -116.25
Enter point 2 (latitude and longitude) in degrees: 41.5 87.37
The distance between the two points is 10691.79183231593

代码

import java.util.Scanner;public class Test4_2 {public static void main(String[] args) {// 获取输入Scanner input = new Scanner(System.in);System.out.println("Enter point 1 (latitude and longitude) in degrees: ");double x1 = Math.toRadians(input.nextDouble()), y1 = Math.toRadians(input.nextDouble());System.out.println("Enter point 2 (latitude and longitude) in degrees: ");double x2 = Math.toRadians(input.nextDouble()), y2 = Math.toRadians(input.nextDouble());// 地球半径final double R = 6371.01;// 代入公式double d = R * Math.acos(Math.sin(x1) * Math.sin(x2) + Math.cos(x1) * Math.cos(x2) * Math.cos(y1 - y2));// 输出System.out.println("The distance between the two points is " + d + " km");}
}

Java黑皮书课后题第4章:*4.2(几何:最大圆距离)最大圆面积是指球面上两个点间的距离。编写一个程序,提示用户以度为单位输入地球上两个点的经纬度,显示其最大圆距离值相关推荐

  1. Java黑皮书课后题第8章:*8.1(求矩阵中各列数字的和)使用下面的方法头编写一个方法,求矩阵中特定列的所有元素的和。编写一个测试程序,读取3*4矩阵,显示每列元素的和

    *8.1(求矩阵中各列数字的和)使用下面的方法头编写一个方法,求矩阵中特定列的所有元素的和.编写一个测试程序,读取3*4矩阵,显示每列元素的和 题目 题目描述与运行示例 破题 代码 题目 题目描述与运 ...

  2. Java黑皮书课后题第5章:*5.18(使用循环语句打印4个图案)使用嵌套的循环语句,编写4个独立的程序打印下面的图案

    *5.18(使用循环语句打印4个图案)使用嵌套的循环语句,编写4个独立的程序打印下面的图案 题目 题目概述 破题 代码 题目 题目概述 *5.18(使用循环语句打印4个图案)使用嵌套的循环语句,编写4 ...

  3. Java黑皮书课后题第4章:4.19(商业:检测ISBN-10)改写编程练习题3.9,将ISBN号作为一个字符串输入

    4.19(商业:检测ISBN-10)改写编程练习题3.9,将ISBN号作为一个字符串输入 题目 题目概述 编程练习题3.9全面分析博文 3.9代码 破题 代码 题目 题目概述 4.19(商业:检测IS ...

  4. Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类)设计一个名为Person的类及其两个名为Student和Employee的子类

    Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类) 题目 缺陷 UML图 代码 Test02_MyDate.java:用于参考的My ...

  5. Java黑皮书课后题第10章:*10.1(Time类)设计一个名为Time的类。编写一个测试程序,创建两个Time对象(使用new Time()和new Time(555550000))

    Java黑皮书课后题第10章:*10.1设计一个名为Time的类.编写一个测试程序,创建两个Time对象 题目 程序 代码 Test1.java Test1_Time.java 运行结果 UML 题目 ...

  6. Java黑皮书课后题第9章:**9.12(几何:交点)假设两条线段相交。第一条线段的两个端点是(x1, y1)和(x2, y2),第二条线段的两个端点是(x3, y3)和(x4, y4)

    Java黑皮书课后题第9章:**9.12(几何:交点)假设两条线段相交.第一条线段的两个端点是(x1, y1)和(x2, y2),第二条线段的两个端点是(x3, y3)和(x4, y4) 题目 破题 ...

  7. Java黑皮书课后题第9章:*9.10(代数:二次方程式)为二次方程式设计一个名为QuadraticEquation的类

    Java黑皮书课后题第9章:*9.10(代数:二次方程式)为二次方程式设计一个名为QuadraticEquation的类 题目 破题 代码 Test10 Test10_QuadraticEquatio ...

  8. Java黑皮书课后题第1章:1.13(代数:求解2*2线性方程组)编写程序,求解以下方程组并显示x和y的值 3.4x+50.2y=44.5 2.1x+0.55y=5.9

    Java黑皮书课后题第1章:(代数:求解2*2线性方程组) 题目 题目描述 破题 代码块 方法评析 赘述 修改日志 题目 题目描述 求x和y值: 3.4x+50.2y=44.5 2.1x+0.55y= ...

  9. Java黑皮书课后题第1章:*1.11(人口估算)编写一个程序,显示未来5年的每年人口数。假设当前的人口是312 032 486,每年有365天

    Java黑皮书课后题第1章:*1.11(人口估算) 题目 题目描述 破题 代码块 方法评析 为什么print函数内的表达式不能分开 修改日志 题目 题目描述 *1.11(人口估算)编写一个程序,显示未 ...

最新文章

  1. win10+Linux双系统安装及一些配置问题
  2. 建筑师——由来已久的梦想
  3. GitHub上那些值得一试的JAVA开源库--转
  4. os_mem.c(全)
  5. IDEA创建java文件失败,但是new选项中有java class选项,设置中file and Code Templates中有对应模板
  6. OpenShift 4 之Istio-Tutorial (9) 访问限流
  7. vue 循环tabs 标签页 组件_Vue render函数实战--实现tabs选项卡组件
  8. IOS:UI设计之UISegmentedControl相关基础
  9. AWVS docker版部署
  10. 概率图模型: Coursera课程资源分享和简介
  11. OneNote网页版链接用桌面应用打开报错的解决
  12. mac 怎么抓取 iphone 手机 日志
  13. mariadb mysql.h_MariaDB(MySQL)的常用命令1 【检索数据】
  14. 学java对年龄有要求吗_Java学习有年龄限制吗,多大年纪就不能学习?
  15. 移动硬盘装Ubuntu系统小记
  16. Java并发编程之CyclicBarrier和CountDownLatch
  17. mysql 主库innodb从库myisam_MySQL的两种常用数据库存储引擎:MyISAM与InnoDB
  18. 21天,在Github上获取 6300 star
  19. 汽车保养技巧 十大汽车保养技巧
  20. 笔记:二元Probit与Logit模型

热门文章

  1. DFS(入门题,走迷宫)
  2. layui 日期重置_日期时间插件--日期时间组件文档 - layui.laydate
  3. @新金融人,点击翻开未来金融新画卷
  4. 有赞 Flink 实时任务资源优化探索与实践
  5. 《明日方舟》的塔防元素:是鸡肋还是精髓?
  6. linux最简单搭建邮件服务器
  7. Java动态解析域名
  8. ckeidtor编辑器添加图片上传功能
  9. HDU 1043 Eight(八数码)
  10. 另存为常用位置设置 1.0 绿色版