Определить правильные решения для пересечения трех кругов - PullRequest
1 голос
/ 03 августа 2011

У меня есть три пересекающихся круга с неточными радиусами. Как определить три из шести точек пересечения, которые образуют область пересечения? Сначала я думал о том, чтобы просто получить точки скопления - точки, которые имеют наименьшее расстояние между ними. Но поскольку радиусы не всегда правильны, могут быть случаи, когда точки скопления не являются точками, образующими область пересечения. Есть идеи?

circles

1 Ответ

2 голосов
/ 03 августа 2011

Для каждой пары окружностей найдите два пересечения (если они существуют) на их границе. Затем проверьте, находится ли одна из этих точек внутри третьего круга (расстояние до центра меньше радиуса этого круга).

Это идентифицирует три «угловые» точки области тройного пересечения, по крайней мере, когда такое пересечение существует.

Кстати, пересечение двух окружностей на самом деле является скорее линейной задачей, чем квадратичной, правильно подходящей.

...