如何找到圆的重叠。

嗨,我做了一个有两个球的应用程序:红色和黄色。 用户必须将
RED BALL
拖放到
YELLOW BALL
上。它在X-Y平面中。现在我要计算重叠的精度是多少。我知道,如果目标的X-Y等于前锋的X-Y,那它就是100%,但是您将如何计算呢?好像您将红球移动得更远,前锋X的右值变得更大并且百分比将不准确?
   double percentErrorX =(CurrentX-targetX)*100/targetX;
            double percentErrorY = (CurrentY -targetY)*100/targetY;
      
已邀请:
        我认为百分比计算的最直观形式将来自计算重叠的每个圆的面积百分比。 您使用哪种粒度?您的x-y坐标代表什么,每个圆的中心?如果x-y坐标为中心,则可以使用距离公式:
d = sqrt[ (x1-x2)^2 + (y1-y2)^2 ]
目标的x-y坐标为x1,y1,而前锋的x-y坐标为x2,y2。 有了这个d,您可以像这样计算一个百分比:
Percent = (d / radius)
    
        看看Wolfram的精彩网页     
        碰撞的类型很多。以及一篇关于圆碰撞的好文章: http://compsci.ca/v3/viewtopic.php?t=14897     
        您需要一些数学才能计算出准确的结果,但是这是一种吃法,可以很好地近似您。 通过sqrt((x1-x2)^ 2 +(y1-y2)^ 2)计算球之间的距离 您的结果约为(距离/半径* 2)^ 1.8 因此尝试公式,看看精度是否足够好     

要回复问题请先登录注册