Есть много кругов?Лучшее, на мой взгляд, это устанавливать круги в массивах.Поэтому у вас будет массив кругов, который не только облегчит их инициализацию, но и все в одном месте.
Следующая часть - взять круг и дать ему функцию для проверки столкновения.например,
void isCol (Массив [круги], текущие векторы, в которых находится этот круг и т. д.);
Если много кругов
цикл for, который проходит через массив, проверяя все значения X, Y и радиуса и проверяет, находятся ли они в определенной пустоте круга.Однако вы всегда должны проверять, является ли круг, на который вы смотрите, именно вами, если это так, то пропустите этот круг.если они находятся в каком-либо регионе, то рассчитайте, сталкиваются ли они с вами или нет, и (укажите здесь, если столкновение имеет последствия).
Если есть только несколько кругов, пропустите право на проверку на столкновение.
Я думаю, что вы после того, как проверяете, находятся ли все круги в диапазоне и имеют дело только с теми, которые находятся.
Надеюсь, это поможет.