按常规的方法通过比较两圆心间的距离和半径和之间的大小判断两圆是否相交,其中设计到幂运算,虽然问题不大但有没有什么高效点的方法,尽量避免太多的幂运算。请各位大虾指导一下!

解决方案 »

  1.   

    相对java而言根本看不到实际能节省的性能.
    理论上,可以判断特殊位置,圆心水平/垂直,那样能直接减喵~``
      

  2.   

    比如,两圆的坐标分别是(x1, y1), (x2, y2),半径分别为r1, r2
    那么判断两圆相交的公式为(x2-x1)*(x2-x1) + (y2-y1)*(y2-y1) < (r1+r2)*(r1+r2)三次乘法而已,运算多吗?
      

  3.   


    分2种情况判断被  一个圆在另一个圆内部时判断的是R-r  不是R+r
      

  4.   

    圆相交的情况介于两圆内切和外切之间,如上再加上
    (r1-r2)*(r1-r2)<(x2-x1)*(x2-x1) + (y2-y1)*(y2-y1)
    两种情况同时满足即可