gpt4 book ai didi

java - 如何确定 2 个圆圈是否重叠

转载 作者:行者123 更新时间:2023-11-29 07:33:03 24 4
gpt4 key购买 nike

所以我正在创建一个类,并且必须根据两个圆的距离来确定它们是否重叠。这就是我所拥有的:

    Circle a = other;
Circle b = other;

double xDist = a.getX() - a.getX();
double yDist = b.getY() - b.getY();

double radi = a.getRadius() + b.getRadius();

double distance = Math.sqrt((xDist*xDist) + (yDist*yDist));

if((distance < radi * radi)) {
return true;
} else {
return false;
}

我的过程是,如果圆心的距离小于它们的半径之和,那么圆就会重叠。

最佳答案

您的错误是您试图将距离与半径总和的平方 进行比较。您想将距离与半径之和进行比较。

或者,您可以将距离的平方与半径总和的平方进行比较,这样就无需使用 Math.sqrt

还请注意,当您已经有了 thisother< 时,再使用变量 ab 是没有意义的 来引用两张光盘。事实上,您错误地使 ab 都引用了 other。您可以按如下方式解决此问题。

public boolean overlaps(Disk other) {
double xDistance = getX() - other.getX();
double yDistance = getY() - other.getY();

double sumOfRadii = getRadius() + other.getRadius();
double distanceSquared = xDistance * xDistance + yDistance * yDistance;

boolean isOverlapping = distanceSquared < sumOfRadii * sumOfRadii;
return isOverlapping;
}

关于java - 如何确定 2 个圆圈是否重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39501841/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com