Re[9]: Кратчайший путь по поверхности многогранника
От: Аноним  
Дата: 24.05.08 10:04
Оценка:
S>Чтобы лучше понять, что однозначного решения тут нет, возьми куб и две точки в центрах противоположных гранях. Очевидно, что есть целых четыре кратчайших пути, ведущих из одной в другую. Ну и как они получатся в твоем решении?
Мы найдем какое-то из этих одинаковых решений, которое будет верным, что естественно, т.к. действительно, "развернуть" в плоскость можно многими вариантами, но они приведут к одному решению в случае куба и остальных неоднозначных случаях.
А насчет обхода многогранника — не важен порядок обхода треуг-ков. Главное, чтобы покрылись все, нужно следить лишь за тем, чтобы каждый треуг-к был единожды "развернут", что достигается bool флажками.
Re[6]: Кратчайший путь по поверхности многогранника
От: subdmitry Россия  
Дата: 24.05.08 10:41
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Вообще-то это точное решение. Изломы будут. Из-за растояния до точки и из-за опережающих волн. И вообще просто задаём на грани произвольную ломаную и вычисляем потенциал на соседних. Он тоже будет ломаной. И потом делаем ломаную которая является минимумо получившийся и той ломаной которая уже была на гранях если туда уже доходил какой нибуть из фронтов. В результате на гранях у нас всегда достаточно ломаной для описания потенциала на грани.


Прости, не понимаю, что такое потенциал в виде ломаной. Кусочно-линейная функция? Так уже растояние от точки до ближайшего ребра уже не кусочно-линейно.
And if you listen very hard the alg will come to you at last.
Re[10]: Кратчайший путь по поверхности многогранника
От: subdmitry Россия  
Дата: 24.05.08 10:47
Оценка:
Здравствуйте, Аноним, Вы писали:

S>>Чтобы лучше понять, что однозначного решения тут нет, возьми куб и две точки в центрах противоположных гранях. Очевидно, что есть целых четыре кратчайших пути, ведущих из одной в другую. Ну и как они получатся в твоем решении?

А>Мы найдем какое-то из этих одинаковых решений, которое будет верным, что естественно, т.к. действительно, "развернуть" в плоскость можно многими вариантами, но они приведут к одному решению в случае куба и остальных неоднозначных случаях.
Теперь предположим ситуацию, когда точки находятся не точно в центрах граней куба, а неподолеку. Найдет ли твой алгоритм кратчайшее растояние между ними, если он не находит этих четырех путей и не сравнивает растояние по ним?

А>А насчет обхода многогранника — не важен порядок обхода треуг-ков. Главное, чтобы покрылись все, нужно следить лишь за тем, чтобы каждый треуг-к был единожды "развернут", что достигается bool флажками.

Еще вопрос. Возьмем точки на смежных гранях куба, в центрах граней. Что если алгоритм развернет куб так, что эта смежная грань будет не второй, а четвертой?
And if you listen very hard the alg will come to you at last.
Re[11]: Кратчайший путь по поверхности многогранника
От: Аноним  
Дата: 24.05.08 16:08
Оценка:
S>Теперь предположим ситуацию, когда точки находятся не точно в центрах граней куба, а неподолеку. Найдет ли твой алгоритм кратчайшее растояние между ними, если он не находит этих четырех путей и не сравнивает растояние по ним?
...
S>Еще вопрос. Возьмем точки на смежных гранях куба, в центрах граней. Что если алгоритм развернет куб так, что эта смежная грань будет не второй, а четвертой?
Похоже ты прав, будут серьезные косяки с вариантами путей обхода.

Выскажу две связанные процедуры, которые могут пригодится.
---------------------
на шаге 1. граница совпадает с треугольником, в котором лежит точка p1.

на шаге 2. "разворачиваем" смежные по ребрам треугольники к исходному. Граница теперь проходит по ребрам этих смежных треуг-ов.

на шаге n-1. Граница проходит по ребрам смежных треуг-ов к треуг-ам предыдушего шага.

на шаге n. "Разворачивается" последний треугольник
---------------------
Эту границу можно описать графом. Просто строим граф, у которого узлы — граничные треугольники (на их ребрах на некотором шаге k лежит граница — в этом связанность процедур).
Граф будет содержать все возможные пути обхода, т.к. его ребра будут описывать всю цепь связанности треуг-ков.
Теперь нужно определиться с весами ребер графа.
Если правильно определимся, то методом динамического программирования найдем нужный путь .
---------------------