由键盘输入一个点的坐标, 要求编程判断这个点是否在单位圆上,点在圆上输出Y, 不在圆上输出N。Java语言
答案:2 悬赏:20 手机版
解决时间 2021-11-20 09:00
- 提问者网友:川水往事
- 2021-11-19 21:50
由键盘输入一个点的坐标, 要求编程判断这个点是否在单位圆上,点在圆上输出Y, 不在圆上输出N。Java语言
最佳答案
- 五星知识达人网友:低血压的长颈鹿
- 2021-11-19 22:51
本题的关键是计算你输入的那个点的坐标与圆心的距离是否小于等于半径就可以了,假设单位圆的圆心是(0,0), 半径是1, 你输入一个坐标为(x, y) 那么计算(x, y)到(0, 0)的距离如果小于等于1就可以了,具体代码如下:
class Circle {
public Point p; // 圆心坐标
public float r; // 半径
public Circle(Point p, float r) {
this.p = p;
this.r = r;
}
}
class Point {
public float x; // x坐标
public float y; // y坐标
public Point(float x, float y) {
this.x = x;
this.y = y;
}
}
public class Main {
public static void main(String[] args) {
// 构造单位圆
Circle circle = new Circle(new Point(0, 0), 1);
// 你输入的点坐标
Point point = new Point(0.5, 0.5);
// 输出结果
System.out.println(isInCircle(circle, point));
}
// 判断某个点是否在圆内火圆的边上面
public static String isInCircle(Circle circle, Point point) {
// 计算该点到圆心的距离
float distance = Math.sqrt( // 开平方
Math.pow(Math.abs(point.x - circle.p.x), 2), // 直角边平方
Math.pow(Math.abs(point.y - circle.p.y), 2), // 直角边平方
);
// 本质上就是计算三角形的斜边长度
return distance <= circle.r ? "Y" : "N";
}
}
class Circle {
public Point p; // 圆心坐标
public float r; // 半径
public Circle(Point p, float r) {
this.p = p;
this.r = r;
}
}
class Point {
public float x; // x坐标
public float y; // y坐标
public Point(float x, float y) {
this.x = x;
this.y = y;
}
}
public class Main {
public static void main(String[] args) {
// 构造单位圆
Circle circle = new Circle(new Point(0, 0), 1);
// 你输入的点坐标
Point point = new Point(0.5, 0.5);
// 输出结果
System.out.println(isInCircle(circle, point));
}
// 判断某个点是否在圆内火圆的边上面
public static String isInCircle(Circle circle, Point point) {
// 计算该点到圆心的距离
float distance = Math.sqrt( // 开平方
Math.pow(Math.abs(point.x - circle.p.x), 2), // 直角边平方
Math.pow(Math.abs(point.y - circle.p.y), 2), // 直角边平方
);
// 本质上就是计算三角形的斜边长度
return distance <= circle.r ? "Y" : "N";
}
}
全部回答
- 1楼网友:胯下狙击手
- 2021-11-19 23:25
package Main;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
double x,y;
Scanner input = new Scanner(System.in);
x = input.nextDouble();
y = input.nextDouble();
if(x*x+ y*y == 1){
System.out.println('Y');
}else{
System.out.println('N');
}
}
}
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
double x,y;
Scanner input = new Scanner(System.in);
x = input.nextDouble();
y = input.nextDouble();
if(x*x+ y*y == 1){
System.out.println('Y');
}else{
System.out.println('N');
}
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯