java - 从点对象获取值,该点对象用作Java中圆对象的中心

原文 标签 java

我在安静的地方四处张望,几乎有很多类似的东西,但是他们总是使用变量X1,X2和Y1 Y2,而且我不允许这样做。
对于一项作业,我有2个班级,让我们分别叫A和B

    Class A
    //Punt (x,y)
    Punt mp1 = new Punt(1.0, 2.0)
    Punt mp2 = new Punt(3.0, 4.0)

    //Circle(center, radius)
    Circle c1 = new Circle(mp1, 1.0)
    Circle c2 = new Circle(mp1, 1.0)


现在在B类中,我需要查看圆是否重叠,因此我想查看到中心点之间的距离
    Class B
    private Punt center
    private double radius
    public Circle(Punt mp, double ra)
        center = mp
        radius = ra

    public boolean overlap(Circle that)
        //here I would need to find the distance between the distance of the centers with Pythagorean theorem
        double sumRadius = this.radius + that.radius  //this one works
    if (distCenter <= sumRadius )
        return true
   else
        return false;


我已经尝试了超出我想象的方法,但是没有任何效果,有任何提示吗?

我不允许只制作X1和X2并在类A中创建getx1()等。

最佳答案

您的Circle类肯定具有getRadius()和getCenter()方法,对吗?得到中心值并计算出欧几里得距离,然后与半径之和进行比较。实际上,您甚至不需要getCenter方法,因为您可以直接访问两个圆的中心点,Punt字段,this圆和that圆。请注意,欧几里得距离是您发现的公式-

Math.sqrt(deltaX * deltaX + deltaY * deltaY)


其中deltaX是两个Circle中心点X值的差,并且对于deltaY同样。

您需要向我们展示您的Punt对象。我必须假设您可以从它们中获取x和y值,这就是解决问题的方法。即center.getX()center.getY()

关于java - 从点对象获取值,该点对象用作Java中圆对象的中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25960009/

相关文章:

java - 有没有办法可以检查数组中的特定点是否具有特定字符?

java - boolean 逻辑是否应该尽早完成?

java - SQOOP SQLSERVER 无法加载驱动程序 "appropriate connection manager is not being set"

java - Java多线程访问一个字符串

java - Hibernate-从Hibernate setter(POJO)类中删除where条件字段

java - 阅读Firebase DB后如何在RecycleView中更改itemView?

java - 无法在自定义 Spring Boot 启动器中使用 WebSecurityConfigurerAdapter

java - 无法在Fedora 14上安装JDK 1.7

java - 如何将“this”传递给 Action 监听器

Java文件上传速度非常慢