если сетка выполнена полностью из квадов, где каждая вершина имеет валентность n (с n >= 3) и не лежит в одной плоскости, мне нужно найти расстояние каждой вершины в сетке от замкнутого множества семенных вершин. То есть, учитывая одну или несколько вершин сетки (набор семян), мне нужно построить карту расстояния, которая хранит расстояние каждой вершины сетки от семенного набора (которое будет иметь расстояние 0 от себя).
потратив некоторое время на поиск возможных решений, я получил следующее изображение:
1), это не тривиально, и в течение последних 20 лет были разработаны разные подходы.
2) каждый алгоритм, учитывающий 3d-область, ограничивается треугольной областью
сказал, что это картина, которую я получил:
Алгоритм Дейкстры может быть использован как способ найти кратчайший путь между двумя вершинами, следуя краям сетки, но он очень неточный и приведет к ошибочной геодезической. Лантье (LA) предложил улучшение, но ошибка все еще довольно высока.
Киммел и Сетиан (KS) предложили метод быстрого марширования -FMM- для решения уравнения Эйконаля, рассматривая вопрос, вычисляющий распространение волны, начинающейся с начальных точек, и запись времени, когда волна пересекает каждую вершину. К сожалению, этот алгоритм, хотя и достаточно простой для реализации, по-прежнему приносит довольно неточный результат, и нужно проявлять осторожность, чтобы избежать тупых треугольников или относиться к ним совершенно особым образом. Novotni (NV) рассмотрел проблему точности (KS) в одном сценарии семян, но мне непонятно, если:
a) он все еще страдает от проблемы тупого угла
b) при использовании в сценарии с несколькими начальными точками для каждого отдельного семени необходимо реализовать один FMM, чтобы найти минимальное расстояние для каждой вершины сетки из каждого семени (то есть в сценарии с 10 семенными точками, FMM нужно будет запускать 10 раз на каждую вершину сетки)
С другой стороны, точный алгоритм -MMP-, который приводит к ошибке 0, был представлен Митчеллом и др. (MI) в 87, и AFAIK никогда не был действительно имплантирован (вероятно, из-за требуемой вычислительной мощности). Точно так же, Суражский и др. (SU) предоставил альтернативный точный алгоритм, основанный на MMP, который должен превосходить последний по скорости, все еще приводя к правильному результату. К сожалению, вычислительная мощность, необходимая для расчета, даже если она намного меньше, чем исходная MMP, по-прежнему достаточно высока, так что интерактивная реализация в реальном времени в настоящее время невозможна. (SU) также предложили приближение их точного алгоритма, то, что они называли плоским точным. Это должно занимать одно и то же время вычисления FMM, принося только 1/5 из ошибки, но:
c) мне непонятно, можно ли его использовать в сценарии с несколькими семенами.
Другие точные алгоритмы кратчайшего пути были предложены Чэнь и Хан (CH) и Капуром (KP), но в то время как первый абсолютно медленный, второй слишком сложный, чтобы его можно было реализовать на практике.
поэтому.. нижняя строка: мне нужно расстояние от набора, а не кратчайший путь между двумя точками.
если я правильно понял,
либо я использую FMM, чтобы получить расстояние каждой вершины от множества за один проход,
-или -
используйте другой алгоритм для калибровки геодезической из каждой вершины сетки в каждую начальную точку и найдите самую короткую (и если бы я понял, что это будет означать вызов этого алгоритма для каждой начальной точки для каждой вершины сетки, то есть на 10 000 вершинной сетки и набор семян по 50 баллов, мне нужно было бы вычислить 500 000 геодезических, чтобы получить 10 000 кратчайших)
Я что-то упустил? FMM - единственный способ справиться с несколькими интервалами семян за один проход? Кто-то знает, может ли плоский точный алгоритм использоваться в сценарии с несколькими исходными точками?
Thnx
Примечания:
(LA): Lanthier и al. "Аппроксимация взвешенных кратчайших путей на многогранных поверхностях"
(KS): Киммел, Сетиан "Вычисление геодезических путей на многообразиях"
(NV): Новотни "Вычисление геодезических расстояний на треугольных сетках"
(MI): Митчелл и др. "Дискретная геодезическая задача"
(SU): Суражский, Кирсанов и др. "Быстрая точная и приближенная геодезическая на сетках"
(CH): Чен, Хан, "Кратчайшие пути на многограннике"
(KP): Капур "Эффективное вычисление кратчайших путей геодезических"