当前位置: 首页 > 知识库问答 >
问题:

Javascript:找出两个圆圈是否重叠

尉迟正奇
2023-03-14

对于不懂几何或公式的人来说,这是一个非常简单的问题。我需要知道两个圆是否相交。就这样。

我有两个圆圈:圆圈1和圆圈2。这两个圆的大小相同,半径相同。他们永远不会有所不同。我需要一个公式来显示这些圆圈是否重叠。我不在乎在哪里。我不在乎多少。我不在乎任何细节,而是真假。圆圈是否重叠?我只需要一些我可以在Javascript中得到的东西。

这里的公式对我不起作用。如何检测一个圆和同一平面上的任何其他圆的交点?谷歌上也没有。

我已经绞尽脑汁和谷歌搜索了三个小时,我发现没有一个公式有效。

有人能帮忙吗??

共有2个答案

靳茂
2023-03-14

使用内置Math.hypot函数计算两个圆心之间的距离。如果这小于或等于半径之和,则圆重叠。

js prettyprint-override">function circleIntersect(x0, y0, r0, x1, y1, r1) {
    return Math.hypot(x0 - x1, y0 - y1) <= r0 + r1;
}

console.log(intersect(0, 0, 2, 3, 0, 2));

console.log(intersect(0, 0, 2, 5, 0, 2));
左丘子平
2023-03-14

这是一个函数,如果它们重叠将返回

function overLapping(CircleOneX,CircleOneY,CircleOneRadius,CircleTwoX,CircleTwoY,CircleTwoRadius){
 return Math.sqrt(Math.abs(CircleOneX-CircleTwoX)+ Math.abs(CircleOneY-CircleTwoY))<(CircleOneRadius+CircleTwoRadius)
}
 类似资料:
  • 问题内容: 我正在JPanel中绘制两个形状(圆形),我需要用一条 线将它们连接起来。我这样做是通过简单地获得圆的中点并 相互连接来实现的。 问题在于,现在我需要制作单向线,该单向线 的末尾带有“箭头”,以指出线的前进方向。所以现在我不能 使用圆的中点,因为我需要从 边界到边界相互连接,因此“箭头”可以正确显示。 在我上一次尝试的结果是,没有任何好处: PS:在屏幕截图中,我并不是为了看到 直线的

  • 我试图找出两个矩形是否相互重叠。我将下面的矩形表示为< code>[x1,x2] x [y1,y2] 我只需要一个伪代码,我可以实现它来查找矩形是否彼此重叠。

  • 问题内容: 我有点麻烦。我有一项作业,要求我找出第二个圆圈是否重叠,内部是否重叠或两者都不存在。但是,我在检查重叠以及第二个圆是否在第一个圆内时遇到了麻烦。 (使用的变量为x1,x2,y1,y2,r1,r2,距离) 这是我所拥有的: 我担心问题在于重叠和内部检查,但是我无法弄清楚如何正确设置它,因此我可以可靠地检查第二个圆是否在第一个圆的内部。 当我尝试了多种方法时,任何帮助或建议都将不胜感激,但

  • 问题内容: 我正在尝试编写一种方法,该方法将计算两个数字是否是赋值的相对质数。我主要是在寻找从哪里开始的答案。我知道有一种方法可以为我做很多事情,但是赋值几乎使我无需使用gcd或数组就可以做到。 我有点开始了,因为我知道我将不得不在for循环中使用运算符。 显然,此方法仅将返回,或者因为该函数仅将根据这两个数字是否相对质数来打印特定行。 我想我可能不得不写两个循环,无论是和,可能还有一些类型的语句

  • 本文向大家介绍用css画出一个圆圈,里面有个对号相关面试题,主要包含被问及用css画出一个圆圈,里面有个对号时的应答技巧和注意事项,需要的朋友参考一下

  • 我有一个SVG计时器。有一个路径显示当前状态。但是路径重叠得很厉害,你可以在我附上的截图中看到: 这个屏幕截图的检查器的代码是: SVG的生成方式如下: 编辑:这是来自CCPROG的建议之后的计时器: