【问题标题】:Finding the distance between two circles求两个圆之间的距离
【发布时间】:2011-04-01 04:25:43
【问题描述】:

我试图弄清楚如何获得两个圆圈相对于它们的方形容器盒的角的距离。我在这里需要一些数学方面的帮助。

如何计算标有问号的线的像素数?

一如既往地感谢您的帮助。

【问题讨论】:

  • 这与编程有什么关系?应该移到math.stackexchange.com
  • 顺便说一句,这都是我正在开发的 Flash 应用程序。
  • 我仍然看不到编程方面的相关性。但是,如果您要求编程算法,那么它适合这里。
  • 这是实施指南。这不是关于数学的辩论,而是我遇到的一个编程问题。
  • 我们在编程中使用数学,如果他期待数学家而不是程序员的答案。那么是的,他/她可能选择了错误的地方。但是在编程论坛上询问编程数学并没有错。如果不是,那么我建议你告诉那些谈论 base 2 数学运算的顽皮的人,因为它显然与编程无关。

标签: math distance geometry


【解决方案1】:

tldr:计算每个圆中心点之间的距离,然后从中减去每个圆的半径。

出于演示的目的,我们将假设以下内容:

  • 200px 直径 (r1 = 100) 圆位于(0, 0) 的 (x, y) 坐标处,并且
  • 直径为 100 像素 (r2 = 50) 的圆位于 (150, -150) 的 (x, y) 坐标处。

鉴于他们的中心之间的距离是:

为了找到它们边界之间的距离,我们从它们的中心之间的距离中减去每个圆的半径

这给我们留下了等式:

sqrt((x2 − x1)^2 + (y2 − y1)^2) − (r2 + r1)

将您的值插入到上面给出:

sqrt((150 − 0)^2 + (-150 − 0)^2) − (100 + 50) = 62.132034356px

【讨论】:

    【解决方案2】:

    你有每个圆圈的中点吗?如果你这样做,首先计算到圆心的距离。

    距离² = center1² + center2²

    然后,您需要减去两个圆的半径。在你的情况下,它将是 150 (100 + 50)

    【讨论】:

      【解决方案3】:

      让我们看看...每个半径是每个边长的一半,从中心之间的距离中减去半径的总和就是剩下的量。

      希望有帮助吗?

      【讨论】:

      • 这确实有帮助,很多......那么很简单。 :)
      【解决方案4】:

      丹尼尔答案的代数简化版是

        (r1 + r2) * (sqrt(2) - 1) 
      = (s1 + s2) * (sqrt(2) - 1)/2
      

      其中 r1,r2 是两个半径,s1,s2 是两个正方形边。这很容易通过单独查看每个正方形并注意到从圆/正方​​形中心到正方形角的距离 d1 是 sqrt(2) * r,并且该正方形内所需的距离是 d1 - 圆半径 r。 /p>

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-06-26
        • 1970-01-01
        • 2012-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-07
        • 1970-01-01
        相关资源
        最近更新 更多