У меня есть набор треугольников, и я хочу найти ближайший треугольник к произвольной точке пространства.
Подход грубой силы, на мой взгляд, слишком медленный, поэтому я изучаю различные структуры данных, которые могут помочь ускорить поиск.
Моя проблема в том, что структуры, которые я изучал (rtree, kdtree), используют ограничивающие рамки для сужения поиска, но во многих случаях ближайшие ограничивающие рамки не обязательно соответствуют ближайшим треугольникам.
Вот один из таких случаев:
Обратите внимание, что синяя точка находится ближе всего к большому ограничивающему прямоугольнику, но ближе к маленькому зеленому треугольнику. Это заставляет меня чувствовать, что структуры данных, основанные на ограничивающих прямоугольниках, приведут к неверным результатам поиска... если только я не упустил что-то очевидное?
В целом, я ищу легковесное решение на С++ (так что никаких CGAL или других чудовищных пакетов) или просто точку в направлении правильного алгоритма, который мне следует изучить.
Спасибо!