2011-06-14 40 views
2

嗨,我做了一個應用程序,它有兩個balls.red和yellow。 用戶必須拖動RED BALL並將其放在YELLOW BALL上。它位於X-Y平面中。現在我想計算重疊的精度是多少。我知道,如果目標的X-Y等於前鋒的X-Y,那麼它是100%,但你將如何計算它?因爲如果你移動紅球射手的X變大和?我一直在使用誤差百分比公式%將是不準確的,但它是不準確的進一步正確的價值如何找到圈的重疊

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

enter image description here

回答

4

我想最直觀的百分比計算形式將來自計算重疊的每個圓的面積百分比。

你使用什麼樣的粒度?你的x-y座標代表什麼,每個圓的中心?如果X-Y座標的中心,那麼你可以使用距離公式:

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

在靶的X-Y COORDS爲x1,y1和前鋒的X-Y COORDS是X2,Y2。

有了這個d,你可以像電腦這樣的百分比:

Percent = (d/radius) 
+0

我收到XY從'MouseMove'事件 – 2011-06-14 21:03:59

+0

@Lagrangian鼠標指針座標你不是應該用圓圈的中心呢?人們可以將邊緣保持在邊緣並將其完全拖過其他圓圈,但是您的X-Y會將其檢測爲不太完美的重疊。 – YetAnotherUser 2011-06-14 21:05:48

+0

@Lagrangian我同意YetAnotherUser。如果你知道每個圓的中心,這個問題就會變得相對簡單。 – uscere90 2011-06-14 21:09:44

0

你需要一些數學來計算確切的結果,但這裏是一種吃法,會給你很好的近似。 ((x1-x2)^ 2 +(y1-y2)^ 2) 您的結果大致是(距離/半徑* 2)^ 1.8 請嘗試以下公式並查看精度是否足夠

+0

爲什麼功率爲1.8? – 2011-06-14 21:12:02

+0

因爲它必須小於2且大於1.5。我不想計算確切的公式,所以1.8似乎是一個很好的經驗法則。嘗試一下。您可以隨時將其更改爲1.9,1.7 e.t – DanielHsH 2011-06-14 21:37:34