как найти перекрытие круга - PullRequest
2 голосов
/ 15 июня 2011

Привет, я сделал приложение, в котором есть два шара. Красный и Желтый. Пользователь должен перетащить RED BALL и перетащить его на YELLOW BALL. Он находится в плоскости X-Y. Теперь я хочу вычислить, какова точность перекрытия. Я знаю, что если X-Y цели равны X-Y Страйкера, то это 100%, но как вы рассчитаете это? как если бы вы переместили красный шар дальше, правильное значение Х ударника становится больше, а процент не будет точным? Я использовал формулу процента ошибок, но она не точна

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

enter image description here

Ответы [ 4 ]

4 голосов
/ 15 июня 2011

Я думаю, что наиболее интуитивно понятная форма расчета процента будет получена из вычисления процента площади каждого круга, который перекрывается.

Какую гранулярность вы используете?И что представляет ваша координата xy, центр каждого круга?Если координата xy является центром, то вы можете использовать формулу расстояния:

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

Где координаты xy цели - x1, y1, а координаты xy ударника - x2, y2.

С помощью этого d вы можете вычислить процент компьютера следующим образом:

Percent = (d / radius)
2 голосов
/ 15 июня 2011
0 голосов
/ 15 июня 2011

Вам нужна математика, чтобы вычислить точный результат, но есть способ, который даст вам хорошее приближение. Вычислить расстояние между шарами по sqrt ((x1-x2) ^ 2 + (y1-y2) ^ 2) Ваш результат примерно (расстояние / радиус * 2) ^ 1.8 попробуйте, таким образом, формулы и посмотрите, достаточно ли точна точность

0 голосов
/ 15 июня 2011

Есть много типов столкновений.и хорошая статья для столкновения круга: http://compsci.ca/v3/viewtopic.php?t=14897

...