Двумерная пространственная структура данных, подходящая для флокирования боидов в Java

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

Что бы я ни делал, я буду реализовывать себя с нуля на Java. Таким образом, я узнаю о выбранной мной структуре данных больше, чем если бы я просто вызвал кучу библиотечных функций.

Мне известны R-деревья , k-d деревья и Quadtrees . На мой взгляд, это все возможные варианты. Но у меня нет опыта работы с этими структурами данных, и я не совсем уверен, что лучше всего подходит для моей цели. Мне ничего не нужно в этой шкале - я говорю, может быть, несколько сотен boids, возможно, самое большее тысяча, а не миллион, хотя имейте в виду, что я могу в конечном итоге запустить это на Android телефон в конце концов.

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

Да, я видел этот вопрос . Нет, я не удовлетворен ответом - здесь нет никаких аргументов.

И еще кое-что - как сказано в названии, это строго только для двух измерений.

7
задан Community 23 May 2017 в 11:47
поделиться