Я только что представил назначение Java, в котором мне нужно было нарисовать некоторые круги случайно на экране как часть игры. Одна из задач, поставленных перед нами, заключалась в том, чтобы убедиться, что ни один из кругов не перекрывается. Я закончил с странным подходом (потому что я хотел: D), что в основном просто создал шаблон из центра экрана, используя триггер, что было весело. Хотя круги в этом методе никогда не перекрываются, это не идеально... распределение кругов довольно упаковано вокруг середины экрана с очень небольшим пространством, используемым в углах.
Я также создал (комментируемый) подход грубой силы, который просто перезаписал новые координаты, если предлагаемый круг x, y координат пересек уже созданную окружность, которая, теоретически способная зацикливаться до бесконечности, скорее всего, не превысит десяти пересечения.
После обсуждения решений с другом (и после TON поиска в Google) нам действительно очень интересно посмотреть, как это можно было бы сделать без грубой силы. Требования:
- 20 кругов с радиусом десяти единиц для рисования в окне 640x480
- Абсолютно без перекрытия кругов
- в противном случае случайное распределение по экрану
Возможно, используя стандартную библиотеку?