欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > java >内容正文

java

Java黑皮书课后题第3章:**3.22(几何:点是否在圆内)编写程序,提示用户输入一个点(x,y),然后检查这个点是否在以(0,0)为圆心、半径为10的圆内

发布时间:2024/7/23 java 46 豆豆

**3.22(几何:点是否在圆内)编写程序,提示用户输入一个点(x,y),然后检查这个点是否在以(0,0)为圆心、半径为10的圆内

  • 题目
    • 题目概述
    • 课本提示与举例、运行示例
    • 破题
  • 代码
    • 两个浮点数的比较

题目

题目概述

**3.22(几何:点是否在圆内)编写程序,提示用户输入一个点(x,y),然后检查这个点是否在以(0,0)为圆心、半径为10的圆内

课本提示与举例、运行示例

提示:如果一个点到(0,0)的距离小于半径即在圆内,两点之间距离公式(已处理):Math.pow( (Math.pow(x2-x1, 2) + Math.pow(y2-y1, 2)), 0.5)
例如:(4,5)是圆内一点,(9, 9)是圆外一点(圆:(0,0)圆心半径为10)

Enter a point with two coordinates: 4 5
Point (4.0, 5.0) is in the circle

Enter a point with two coordinates: 9 9
Point (9.0, 9.0) is not in the circle

破题

先用上面公式判断是否在圆内
输出点的坐标
难点在输出语句中的如何控制not的输出:打标(boolean标记)(打标已经在之前的博文中用了多次,欢迎关注专栏)
除此之外,两个浮点数之间的比较也颇为有趣,详细在代码下面

代码

import java.util.Scanner;public class Test3_22 {public static void main(String[] args) {// 获取点坐标Scanner input = new Scanner(System.in);System.out.println("Enter a point with two coordinates: ");double x2 = input.nextDouble(), y2 = input.nextDouble();// 判断是否在圆内double x1 = 0.0, y1 = 0.0;double distance = Math.pow( (Math.pow(x2-x1, 2) + Math.pow(y2-y1, 2)), 0.5);double radius = 10.0;final double EPSILON = 0.001;boolean bool = false;if((radius - distance) > EPSILON){// 这里认为点在圆内bool = true;}// 输出结果if(bool){System.out.println("Point (" + x2 + ", " + y2 + ") is in the circle");}else{System.out.println("Point (" + x2 + ", " + y2 + ") is not in the circle");}} }

两个浮点数的比较

参考资料:

https://blog.csdn.net/bupa900318/article/details/80553695

博主没有联系到,没有允许转载部分内容
如果感兴趣可以看一下比较方法
本题中使用了第一个方法:两值相减与某一非常小的浮点数比较大小

总结

以上是生活随笔为你收集整理的Java黑皮书课后题第3章:**3.22(几何:点是否在圆内)编写程序,提示用户输入一个点(x,y),然后检查这个点是否在以(0,0)为圆心、半径为10的圆内的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。