Гаразд лише для точки на полігоні:
Я думаю, що проблема базується на "фрактальній природі" об'єктів 2d та невпевненому та незбалансованому розподілі просторової інформації. Якщо у вас є звичайна сітка, легко визначити положення або відношення комірки. Але ізолінія моделі рельєфу може мати нескладні деталі збоку і математично складні з іншого боку (морфологічно активні частини, хребти, долини ...).
Індексація намагається обробити дві речі:
Швидкий розпорядок роботи, який дає вам набір відро, в які ви збираєте предмети, які ви можете просторово відганяти (відра!). А BBoxes легко підрахувати та обробити.
Сукупність відносин (перекриття, дотик) для розрізнення або співвідношення просторових речей (об'єктів).
На жаль, BBoxes не дасть вам поняття, скільки точок у кожному BBox, як об'єкти формуються (отвори, опуклі, ...) і як інформація розподіляється локально (90% пунктів у верхньому лівому куті BBox). Таким чином, ви можете знайти членів швидкого функціонування на рівні об'єкта та багато часу втратити у відношенні побудови тесту.
Для використання більш нерегулярного підходу триангуляція IMO у поєднанні з квадратами і стратегіями є стратегіями, де ви можете зблизити ковзання та частину індексу, що будує відношення (bucketing == building building).
Для прикладу тестування "Введення в полігон" можна створити нерегулярний кеш, використовуючи:
- ! обмежена тріангуляція вашої полі покриття, з додатковими окантовками сітки для виявлення зовнішньої частини обкладинки
- введіть це в схему індексації квадратури з не більше N трикутників на коробку (фрактальні відра)
- знайдіть набір трикутників, якому належить точка - лист у квадраті
- знайти трикутник, у якому лежить точка (тестова частина над максимум N трикутниками)
- і запитайте ідентифікатори багатокутника вершин трикутника
- якщо ідентифікатор унікальний, то точка належить багатокутнику, якщо ні - це зовні
Витрати на побудову олова та кватренів дуже високі і важкі для обчислення, і квадрату доводиться врівноважувати великі та малі трикутники (трикутники, які не вміщатимуться у менші ящики з двома деревами).
Деякі інструменти та посилання:
Трикутник - триангуляція багатокутника обмеження
Квадрати - із джерелами прикладу
Сховище Stony Brook - структури даних та дискретна геометрія