Как стать автором
Обновить

Комментарии 8

Вот и до Воронова добрались. Честно я как то не осилил в свое время алгоритм Форчуна и делал как раз через вывертывание триангуляции Долоне или перебором отсортированного массива по X. Так как каждая грань воронова это серединные перпендикуляры, сходящиеся в центре описанной окружности треугольника Долоне. А поскольку необходимость была в обоих, и триангуляции и Воронове, то делал так.

Неплохо было бы сюда же зацепить тему воронова для регулярных сеток, со случайным смещением в узлах. Поскольку алгоритм воронова для нее получается тривиальным, а эффект интересным.

В реализации можно использовать стандартные контейнеры без придумывания структур. Просто список вершин (центры описанной окружности Vector2[], вершины треугольников Vector2[]) и индексы (список центров окружностей вокруг каждой вершины — полигоны Воронова или регионы int[][], список треугольников Долоне или ближайшие точки int[][]). Исходя из того что количество вершин треугольников равно количеству полигонов, при последовательной обработке, они уже будут между собой связанны без лишних ссылок. Это все хорошо представляется по аналогии с мешем. Единственное тут нет расстояния, но для сравнения расстояний можно быстро посчитать через скалярное произведение.
На хабре уже давно есть немало (или всё же мало?) материалов по ДВ. Используйте поиск.
P.S. Имею на руках сборник статей о ДВ на английском и очень хочу его издать на русском, но оценить аудиторию читателей и, что важнее, покупателей, совсем не тривиальная задача. А без этого издательство не возьмётся. Отзовитесь те, для кого эта тема действительно очень интересна (до уровня покупки малотиражной->дорогой книги).
Думаю тут будут более интересны разнообразные примеры применения больше чем сам алгоритм, в связи с его частым упоминанием. Поэтому я обратил внимание на регулярные сетки, их реализаций множество для разных задач, но вот авторов которые написали про это статью меньше. А чаще попадаются те кто реализует воронова и не понимает что это воронов, выдавая за оригинальное решение, несомненно сама реализация отчасти оригинальна как и задача.

Выбирать место наибольшего скопления котиков по наименьшему треугольнику — неправильно. Представьте пустую поляну, где в одном краю 100 котиков на расстоянии, в среднем, 30 см между каждой парой, а в другом — в коробке 20*20 три котенка. Ваша мята достанется котятам.


Разумнее разделить поляну регулярной сеткой, например, гексагональной (тут триангуляция Делоне тоже пригодится), выбрав размер ребра сопоставимым с расстоянием, с которого котик чует мяту. Потом подсчитать количество котиков в каждой ячейке и уже из них выбирать максимум(ы). Это не гарантирует достижения теоретического максимума количества осчастливленных котиков, т.к. начальная точка для сетки выбирается произвольно, но даёт результат, достаточно хороший для большинства практических целей.

Поиск наиболее безопасного пути по ребрам диаграммы Вороного — «обман зрения».

Реально это работает нормально только если расстояние между сторожевыми вышками будет примерно одинаковым.

Контрпример: если по пути прямого следования будет в 10 раз более плотное расположение вышек — Вороной также сегментирует эту площадь и A* проведет нас хоть и на одинаковом расстоянии между соседними вышками, но через наиболее плотное скопление, и в силу их плотности на этом маршруте мы пойдем в 10 раз ближе к вышкам, чем могли бы, пойдя немного в обход по разреженной области.
Так там же потом ребрам веса присваиваются, в зависимости от расстояния от вышек. Это позволяет от бесконечного количества всех путей на плоскости перейти к обходу графа по определенным правилам. Другое дело, что такой путь не будет оптимальным — например, он может нас заставить обходить вышку по острому углу, на расстоянии, намного превышающем опасное.
Вы правы, упустил этот момент

Вижу перевод.
А проще найти ближайшую аптечку нельзя?


В жизни всё веселей:
у разных пушек — разная мощность нанесения урона.
Местность — неоднородная
Мощность меняется с расстоянием до цели.


Тут даже о времени под огнём противника не упомянуто
Вобщем просто навели тень ДВ на плетень игр.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации