Граница между местностями местности в 3D стратегии игры - PullRequest
3 голосов
/ 12 января 2012

Я хочу создать динамически сгенерированную границу между областями противника на равнинной местности с некоторыми точками («базами») (например, инопланетными и человеческими базами) в трехмерной стратегии. Каждая база имеет свою «страну влияния», поэтому граница должна проходить на соответствующем расстоянии между конфликтующими базами. Если вы играли в Settlers I, II и т. Д., Вам следует понять, что я имею в виду.

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

Пожалуйста, можете ли вы предложить мне какое-либо решение для этого (может быть, некоторые алгоритмы или даже готовые пакеты).

Пример желаемой границы:

enter image description here

Ответы [ 2 ]

5 голосов
/ 12 января 2012

Звучит так, как будто вы хотите Диаграмма Вороного . Ниже приведена 2D-диаграмма, но тот же алгоритм работает и в 3D.

enter image description here

1 голос
/ 12 января 2012

Я думаю, вы, возможно, захотите взглянуть на подходящую взвешенную диаграмму Вороного . В стандартных VD только расстояние до ближайшей контрольной точки имеет значение для определения ячеек, но из вашего примера похоже, что вы хотите, чтобы контрольные точки имели влияние, даже если они не являются ближайшей точкой.

Например, слева от вашей самой высокой синей точки есть область, которая находится в красной области, несмотря на то, что ближайшая контрольная точка синего цвета:

enter image description here

Я предполагаю, что это потому, что самая красная точка северо-западного направления оказывает влияние, как показано стрелкой.

«Обзор», связанный с этой страницы википедии, и результаты поиска изображений Google для взвешенной диаграммы Вороного предполагают, что такого рода влияние, приводящее к границам округления, достижимо, хотя очевидно, что дальнейшие исследования ожидают вы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...