Вопрос

Существует ли тривиальный или, по крайней мере, умеренно простой способ создания карт территории (напримерРиск)?

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

here.

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

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

Я был бы очень признателен за любой совет.

Это было полезно?

Решение

Лучшая ссылка, которую я когда-либо видел на них, - это Вычислительная геометрия:Алгоритмы и приложения, который охватывает диаграммы Вороного, триангуляции Делоне (аналогичные диаграммам Вороного, и каждая из них может быть преобразована в другую) и другие подобные структуры данных.

Они рассказывают обо всех структурах данных, которые вам нужны, но они не дают вам код, необходимый для его реализации (что может быть хорошим упражнением).С точки зрения кода, поиск по Amazon показывает книгу Вычислительная геометрия на языке Си, который, предположительно, поставляется вместе с кодом (хотя, поскольку вы застряли на C, вы могли бы также получить другой и реализовать его на любом языке, который вы хотите).У меня также нет никакого опыта работы с этой книгой, только с первой.

Извините, что могу порекомендовать только книги!Единственные приличные онлайн-ресурсы, которые я видел на них, - это эти два Википедия Статьи, который на самом деле не сообщает вам деталей реализации. Эта ссылка хотя это может быть полезно.

Другие советы

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

CGAL это библиотека C ++, которая содержит структуры данных и алгоритмы, используемые в вычислительной геометрии.

На самом деле я имею дело именно с подобными материалами для видеоигр моей компании.Самая полезная информация, которую я нашел, находится по этим двум ссылкам:

Пол Буркстраница в UWA с его статьей 1989 года о Делоне и рядом ссылок на реализацию.

A отличное объяснение псевдокода и визуальный о том, как делал Делоне в codeGuru.com.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top