输入一个圆心、半径组成一个圆,输出圆的面积和周长,再任意输一个坐标点,判断这个点是否在圆的范围内。

在平面坐标系上,输入一个圆心、半径组成一个圆,输出圆的面积和周长,再任意输一个坐标点,判断这个点是否在圆的范围内。任务要求建立两个类:平面坐标系上二维的点的位置Point... 在平面坐标系上,输入一个圆心、半径组成一个圆,输出圆的面积和周长,再任意输一个坐标点,判断这个点是否在圆的范围内。
任务要求
建立两个类:
平面坐标系上二维的点的位置Point类和圆Circle类
展开
 我来答
278370809
2009-02-04 · TA获得超过154个赞
知道答主
回答量:193
采纳率:0%
帮助的人:111万
展开全部
class Point { //点类
private double x; //私有变量 双精度型 的 x
private double y; //私有变量 双精度型 的 y
Point(double x1, double y1) { //点类的带两个参数的构造方法,
x = x1; //把参数x1的值赋给x
y = y1; //把常识y1的值赋给y
}
public double getX() { return x; }
public double getY() { return y; }
public void setX(double i) { x = i; }
public void setY(double i) { y = i; }
}

class Circle { //圆类
private Point o;
private double radius;
Circle(Point p, double r) {
o = p;
radius = r;
}
Circle(double r) {
o = new Point(0.0, 0.0);
radius = r;
}

boolean contains(Point p) {
double x = p.getX() - o.getX();
double y = p.getY() - o.getY();
if(x*x + y*y > radius * radius) return false;
else return true;
}

public void setO(double x, double y) {
o.setX(x);
o.setY(y);
}
public Point getO() { return o; }
public double getRadius() { return radius;}
public void setRadius(double r) { radius = r;}
public double area() {
return 3.14 * radius * radius;
}
}

public class TestCircle { //主类
public static void main(String args[]) {
Circle c1 = new Circle(new Point(1.0,2.0), 2.0);
Circle c2 = new Circle(5.0);
System.out.println("c1:("+c1.getO().getX()+"," +c1.getO().getY()+"),"+c1.getRadius());
System.out.println("c2:("+c2.getO().getX()+","+c2.getO().getY()+"),"+c2.getRadius());
System.out.println("c1 area = "+c1.area());
System.out.println("c1 area = "+c2.area());
c1.setO(5,6);
c2.setRadius(9.0);
System.out.println("c1:("+c1.getO().getX()+","+c1.getO().getY()+"),"+c1.getRadius());
System.out.println("c2:("+c2.getO().getX()+","+c2.getO().getY()+"),"+c2.getRadius());
System.out.println("c1 area = "+c1.area());
System.out.println("c1 area = "+c2.area());

Point p1 = new Point(5.2, 6.3);
System.out.println(c1.contains(p1));
System.out.println(c1.contains(new Point(10.0,9.0)));

}
}

自己再改改
匿名用户
推荐于2017-09-12
展开全部
public class Test {
public static void main(String[] args){
Point center = new Point(100,100);
int radius = 100;
Circle cir = new Circle(center,radius);

Point x = new Point(1,100);
boolean incir = cir.contains(x);
System.out.println(incir);

x=new Point(1,1);
incir=cir.contains(x);
System.out.println(incir);
}
}

class Point{
private int x,y;
public Point(int cx,int cy){
x=cx;
y=cy;
}
/**计算该点到指定点 p 的距离*/
public double getDistance(Point p){
int sx = x-p.x;
int sy = y-p.y;
// System.out.println("sx:"+sx+" sy:"+sy+" dist:"+Math.sqrt(sx*sx+sy*sy));
return Math.sqrt(sx*sx+sy*sy);
}
}
class Circle{
private Point center;//圆心
private int radius;//半径
/**指定圆心和半径构造圆*/
public Circle(Point p,int r){
center=p;
radius=r;
}
/**计算面积*/
public double getArea(){return Math.PI*radius*radius;}
/**计算周长*/
public double getPrimeter(){return 2*Math.PI*radius;}
/**判断给定点是否在该圆内(指定点到圆心的距离是否小于半径)*/
public boolean contains(Point p){
return center.getDistance(p)<radius;
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
疲累劈雷DS88c
2009-02-04 · TA获得超过1185个赞
知道答主
回答量:97
采纳率:0%
帮助的人:0
展开全部
ggggggggggggggggggggggggggggggg
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式