中易网

Java问题 为一个Cricle类添加一个方法,计算一个点(point对象)是否在圆(Cricl

答案:3  悬赏:0  
解决时间 2021-01-13 07:11
  • 提问者网友:容嬷嬷拿针来
  • 2021-01-12 10:36
Java问题 为一个Cricle类添加一个方法,计算一个点(point对象)是否在圆(Cricl
最佳答案
  • 二级知识专家网友:一把行者刀
  • 2021-01-12 11:24
刚刚写的,本机测试通过:

import java.awt.Point;
public class Cricle {
    // 圆点
    private Point cricleCenter = null;
    // 半径
    private double radius = 0;
    
    public Cricle(Point cricleCenter, double radius) {
        this.cricleCenter = cricleCenter;
        this.radius = radius;
    }
    
    
    public boolean isInCricle(Point aPoint) {
        double distance = Point.distance(
        cricleCenter.getX(), cricleCenter.getY(), aPoint.getX(), aPoint.getY());
        return radius >= distance;
    }
    
    public Point getCricleCenter() {
        return cricleCenter;
    }
    public void setCricleCenter(Point cricleCenter) {
        this.cricleCenter = cricleCenter;
    }
    public double getRadius() {
        return radius;
    }
    public void setRadius(double radius) {
        this.radius = radius;
    }
    
    public static void main(String[] args) {
        Cricle cricle = new Cricle(new Point(5, 5), 5);
        Point point1 = new Point(5, 6);
        Point point2 = new Point(5, 12);
        System.out.println("点1是否在圆内:" + cricle.isInCricle(point1));
        System.out.println("点2是否在圆内:" + cricle.isInCricle(point2));
    }
}
全部回答
  • 1楼网友:轮獄道
  • 2021-01-12 13:24
已知圆心坐标cx,cy;半径r;点坐标px,py
点相对圆心坐标p2x = px-cx;p2y = py-cy;
点到圆心距d*d = p2x*p2x+p2y*p2y
d-r<0则在圆内
追问:这就是程序?
追答:嗯,你没学过?
  • 2楼网友:归鹤鸣
  • 2021-01-12 12:56
step1 :创建一个cricle类。创建一个cricle,当然需要两个参数:圆心(point), 半径(R)
step2: 判断一个点,是否在园内,其实就是判断圆心到该点的距离L与半径R的关系。当L>R时,点在圆外;L=R时,点在圆上;L<R时,点在圆内。
具体代码:(手写代码,可能会有些语法错误,需要在编译器上修正下)
class Cricly{
private point center;
private double radius;
public Cricle(point x,double r){
this.center=x;
this.radius = r;
}
public boolean isOutOfCirCle(point p){
//计算两点之间的距离
double distances = Math.sqrt((center.x-p.x)*(center.x-p.x) + (center.y-p.y)*(center.y-p.y))
if (distances > radius){
return true;
}else{
return false;
}
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息