繁体   English   中英

如何找到圆的重叠

[英]how to find overlapping of circle

嗨,我做了一个应用程序,它有两个球。红色和黄色。 用户必须拖动RED BALL并将其放在YELLOW BALL上。它在 XY 平面中。现在我想计算重叠的精度是多少。 我知道如果目标的 XY 等于 Striker 的 XY 那么它是 100% 但你将如何计算呢? 好像你把红球往右移动,前锋的 X 值变大,百分比不准确?我一直在使用百分比误差公式,但它不准确

   double percentErrorX =(CurrentX-targetX)*100/targetX;
            double percentErrorY = (CurrentY -targetY)*100/targetY;

在此处输入图像描述

我认为最直观的百分比计算形式来自计算每个重叠圆圈的面积百分比。

你使用什么样的粒度? 你的 xy 坐标代表什么,每个圆的中心? 如果 xy 坐标是中心,那么您可以使用距离公式:

d = sqrt[ (x1-x2)^2 + (y1-y2)^2 ]

其中目标的 xy 坐标为 x1, y1,前锋的 xy 坐标为 x2, y2。

使用这个 d,您可以计算一个百分比,如下所示:

Percent = (d / radius)

碰撞的种类很多。 还有一篇关于圆碰撞的好文章: http://compsci.ca/v3/viewtopic.php?t=14897

你需要一些数学来计算确切的结果,但这里有一种吃法,可以给你很好的近似值。 通过 sqrt((x1-x2)^2+(y1-y2)^2) 计算球之间的距离 你的结果大约是 (distance/radius*2)^1.8 试试这样的公式,看看精度是否足够好

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM