【问题标题】:Find if points are within a circle with given center and radius查找点是否在具有给定中心和半径的圆内
【发布时间】:2010-12-10 07:06:00
【问题描述】:

我们有一个点 (x,y) 和一组其他点 (xi,yi)。我们如何确定 (xi,yi) 中的哪一个在以 (x,y) 为中心、半径为 r 的圆内(给定数字)?

【问题讨论】:

  • psasik:可能是因为它不是编程问题。

标签: geometry


【解决方案1】:

我在 plsql 过程中也有同样的问题要解决。上面的解决方案是完全正确的,我也这样做了。但它极大地损害了我的 plsql 程序的性能。我没有使用那个圆形计算,而是使用了一个正方形。因为它可以在不做这样的计算和在sql语句本身的情况下完成。查询性能提升 10 倍以上

【讨论】:

    【解决方案2】:

    如果 (xi - x)^2 + (yi - y)^2 小于 d^2,它在里面。如果它等于 d^2,它就在圆上。如果大于 d^2,则在外面。

    【讨论】:

      【解决方案3】:
      (xi-x)**2 + (yi-y)**2 < r**2
      

      【讨论】:

      • 如果您希望在圆内也包括点,请使用
      【解决方案4】:

      如果 sqrt((xi-x)^2 + (yi-y)^2)

      【讨论】:

      • 你可以优化这个。省略 SQRT 以获得更好的性能。 (xi-x)^2 + (yi-y)^2
      【解决方案5】:

      简单的方法。

      计算点到圆心的距离。如果小于 radius ,那么它在圆内。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-12-15
        • 2018-09-08
        • 1970-01-01
        • 2014-02-28
        • 2014-01-12
        • 1970-01-01
        • 2014-05-12
        相关资源
        最近更新 更多