簡體   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