Я хочу сделать навигацию/A* на QuadTree.
Я уже реализовал QuadTree или, по крайней мере, то, что я считаю QuadTree. Между тем я видел некоторые, где также внутренние узлы содержат элементы. В моем случае внутренние узлы ссылаются только на своих дочерних элементов, а элементы хранятся в коллекциях в листовых узлах. Хотя каждый узел ссылается на своего родителя, (в настоящее время) нет ссылок на соседей, ни на братьев и сестер, ни на узлы других ветвей. Элементы — это регионы, а не только точки.
Я также некоторое время видел A* на сетках и даже демонстрацию на QuadTree, но это было без подробностей.
Наверное, главный вопрос в том, как мне быстро добраться до соседей?
Я не уверен, должен ли я держать листы связанными друг с другом. Но это была бы адская работа, поскольку дерево динамично, поскольку элементы обновляют свое положение. Также потребуется некоторый король динамического сбора для ссылок, поскольку в зависимости от размера узла большой лист может иметь много маленьких листьев в одном направлении (например, на восток). Усилия по обновлению этого кажутся довольно огромными, даже сейчас я не знаю, как бы я это сделал.
Спасибо, с уважением