Я реализую структуру квадрантов, чтобы упростить коллизионный код. но я не уверен в том, что для этого лучше всего. В настоящее время quadtree создает поддеревья во время настройки до заданной максимальной глубины, затем я вставляю объекты в соответствующее дерево, для использования в генерации пары (фактическая математика). Тем не менее, я слышал о других подходах, которые генерируют только поддеревья, когда хранится определенное количество объектов. Я знаю, что мой метод имеет пространственные накладные расходы, но может быть быстрее вычислить во время циклов обновления. Какой был бы лучший способ справиться с этим?
Один из подходов состоит в том, чтобы хранить k элементов в каждом узле, начиная с одного родительского узла, который охватывает все пространство столкновения. При вставке элемента k + 1 вы разделяете пространство и помещаете новый элемент в правильный квадрант.
Кроме того, вы можете использовать этот подход для статического распределения структуры данных, предполагая, что вы знаете максимальное количество узлов, которые будут использоваться, и что будет максимальная плотность. Для этого требуется фиксированный массив узлов и элементов, предназначенных для жизни приложения, но он позволяет избежать дорогостоящих динамических распределений, что должно быть усилением скорости.