You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript如何判断两个相同半径的圆形是否重叠相交

等半径两圆重叠判断方案

核心判断逻辑

两个半径相同的圆形是否重叠,仅需判断两个圆心之间的距离是否小于等于2倍的单圆半径即可:

  • 若圆心距离 ≤ 2*半径:两圆重叠(包含相切、完全重合的边界情况),返回true
  • 若圆心距离 > 2半径:两圆不重叠,返回false
    为了避免开平方运算带来的不必要性能损耗,可直接比较距离的平方和(2r)的平方,判断结果完全一致

Javascript实现代码

// 入参circle1、circle2需包含属性:圆心x坐标、圆心y坐标、半径r
// 已适配你场景中两圆半径永远相等的前提
function checkSameRadiusCirclesOverlap(circle1, circle2) {
  // 计算x轴、y轴的坐标差
  const dx = circle1.x - circle2.x;
  const dy = circle1.y - circle2.y;
  // 计算圆心距离平方
  const distanceSquare = dx * dx + dy * dy;
  // 计算2倍半径的平方
  const doubleRadius = 2 * circle1.r;
  const doubleRadiusSquare = doubleRadius * doubleRadius;
  // 如果不需要包含相切的边界情况,把<=改成<即可
  return distanceSquare <= doubleRadiusSquare;
}

调用示例

const circleA = { x: 0, y: 0, r: 5 };
const circleB = { x: 8, y: 0, r: 5 };
console.log(checkSameRadiusCirclesOverlap(circleA, circleB)); // 输出true,圆心距离8 < 10,重叠

内容的提问来源于stack exchange,提问作者Steve G.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 12:30:05