Реализация пространственных индексов в Haskell?
Есть ли какие-либо хорошие реализации пространственных индексов в Haskell, такие как R-tree, kd-tree и т.д.
Ответы
Ответ 1
Единственными реализациями, о которых я знаю, являются пакет spacepart
, который кажется неполным и оставленным, и пакет KdTree
, который, как вы могли догадаться, не имеет амбиций за пределами предоставления типа kd-дерева.
Это то, что было в моем списке TODO некоторое время, так как было несколько случаев, когда я хотел создать структуру данных пространственного индекса, но не хотел, чтобы один был достаточно плохим, чтобы остановить все и написать достойную реализацию на месте.
Ответ 2
The Glome Raytracer использует иерархию ограничивающих интервалов.
Он также хорошо модулируется, поэтому вы, вероятно, захотите начать с GlomeTrace и GlomeVec.
Я тестирую столкновение с помощью точечных/объемных запросов и пересечений лучей. Кажется, он работает очень хорошо.
Ответ 3
есть пакет RTree в Hackage. Он протестирован, но не настолько сложный, как пакет контейнеров.