Ищем псевдокод для алгоритма Fortune

Я был бы очень признателен, если бы кто-нибудь, кто когда-либо имел дело с алгоритмом Fortune для генерации триангуляции Делоне, представил мне довольно низкоуровневый псевдокод алгоритма! Я читал один в Википедии, но он немного сбивает с толку и выглядит высокоуровневым, и любой фрагмент кода, который я мог найти, имел неудобства оригинальной реализации C.

Я хотел бы реализовать это на С++, но таким образом, чтобы сгенерированный вывод был в форме (моих собственных) классов, которые я собираюсь использовать (вершины, ребра и треугольники как объекты). Поэтому мне нужно все понять и реализовать с нуля.

Я также читал описание алгоритма и знаю, что он делает и как, но пока это для меня абстракция. Тем не менее, я также был бы рад аналогичному описанию, касающемуся деталей (реализации), оно не обязательно должно быть похоже на код!


person Vincent    schedule 19.01.2011    source источник
comment
Есть ли веская причина не использовать CGAL? Триангуляцию Делоне очень сложно сделать правильно: ошибки округления, с которыми вы неизбежно столкнетесь, разрушат любую реализацию, которая не использует арифметику с адаптивной точностью.   -  person Alexandre C.    schedule 19.01.2011
comment
Единственная причина в том, что я как-то никогда не слышал об этом раньше :) Это действительно выглядит очень многообещающе, если не считать коммерческой лицензии для коммерческого использования, но я думаю, что это нормально. Я немного поиграю с ним, чтобы увидеть, достаточно ли он соответствует моим потребностям, но если никто не придумает хороший псевдокод, и его действительно сложно реализовать, вы можете повторить это как ответ, который я могу отметить как лучший !   -  person Vincent    schedule 20.01.2011


Ответы (1)


Мне потребовалось около месяца, чтобы полностью понять алгоритм Fortune, я написал об этом свою школьную семинарскую работу. Когда понимаешь, это кажется очень простым :)

Вот мое описание алгоритма Fortune с императивным псевдокодом и подробностями реализации.

person Ivan    schedule 04.09.2011
comment
Большое спасибо, это похоже на то, что я ищу! Я скоро посмотрю повнимательнее, но я верю, что это все, поэтому я отмечу это как ответ :) - person Vincent; 05.09.2011
comment
@Ivan Я знаю, что это крипто-комментирование, но это сводит меня с ума ... Я прочитал оригинальный алгоритм Стивена Форчуна в его статье от 87 года, и это не то, что описано и реализовано. почти везде, включая вашу страницу. В документе Fortune нет линии пляжа, состоящей из парабол, но концептуально рассматривается список дуг гиперболы (хотя нет необходимости хранить его явно). Я подозреваю, что обычное объяснение было найдено кем-то другим позже (например, одним или несколькими из де Берга, Чеонга, ван Кревельда и Овермарса) в качестве эквивалента. Но хотелось бы услышать ваше мнение! - person polettix; 08.10.2019