Подскажите, как можно сгенерировать карты как в Генерале? (первые три скрина). В примерах карты 50 на 50 для 7 стран. При этом территории одинакового размера.
Мой максимум - это сгенерировать диаграмму Вороного. В примере я сгенерил 50 на 50 поле для 7 стран (скрин 4). При этом разбиение все равно не идеальное, размеры стран слегка отличаются. Ну и выглядит всрато. Границы прямые. И положение стран всегда одинаковое, так как и при рандомном выборе стартовых точек генерации не получится сгенерить территории одинакового размера.
https://ru.wikipedia.org/wiki/%D0%94%D0%B8%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0_%D0%92%D0%BE%D1%80%D0%BE%D0%BD%D0%BE%D0%B3%D0%BE
Мой максимум - это сгенерировать диаграмму Вороного. В примере я сгенерил 50 на 50 поле для 7 стран (скрин 4). При этом разбиение все равно не идеальное, размеры стран слегка отличаются. Ну и выглядит всрато. Границы прямые. И положение стран всегда одинаковое, так как и при рандомном выборе стартовых точек генерации не получится сгенерить территории одинакового размера.
https://ru.wikipedia.org/wiki/%D0%94%D0%B8%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0_%D0%92%D0%BE%D1%80%D0%BE%D0%BD%D0%BE%D0%B3%D0%BE
>>460
да, игра великая, но исходники не выкладывают
да, игра великая, но исходники не выкладывают
30 Кб, 640x480
import numpy as np
import matplotlib.pyplot as plt
from scipy.spatial import Voronoi, voronoi_plot_2d
# Generate random points
points = np.random.rand(10, 2)
# Calculate Voronoi diagram
vor = Voronoi(points)
# Visualize the Voronoi diagram
fig, ax = plt.subplots()
voronoi_plot_2d(vor, ax=ax)
plt.show()
Ну да, у диаграмы Вороного будут всегда прямые границы.
Может, объединять некоторые ячейки?
import matplotlib.pyplot as plt
from scipy.spatial import Voronoi, voronoi_plot_2d
# Generate random points
points = np.random.rand(10, 2)
# Calculate Voronoi diagram
vor = Voronoi(points)
# Visualize the Voronoi diagram
fig, ax = plt.subplots()
voronoi_plot_2d(vor, ax=ax)
plt.show()
Ну да, у диаграмы Вороного будут всегда прямые границы.
Может, объединять некоторые ячейки?
>>480
вот сейчас копаю в этом направлении: генерировать кучу маленьких сегментов диаграммы Вороного и как-то их мерджить, а потом балансировать размеры полученных территорий. ChatGPT полнейший даун в это вопросе, к сожалению.
вот сейчас копаю в этом направлении: генерировать кучу маленьких сегментов диаграммы Вороного и как-то их мерджить, а потом балансировать размеры полученных территорий. ChatGPT полнейший даун в это вопросе, к сожалению.
>>456 (OP)
https://ru.wikipedia.org/wiki/Клеточный_автомат
Предлагаю такой алгоритм.
1. Изначально поле заполнено нулями.
2. Ставим несколько рандомных точек - зёрна стран.
3. Гоняем клеточный автомат по правилу:
4. Когда нулей не осталось, считаем площади.
5. Если площади не равны, гоняем по правилу:
6. Когда площади +/- равны, карта готова.
Какие будут результаты - не знаю, пробуй сам.
https://ru.wikipedia.org/wiki/Клеточный_автомат
Предлагаю такой алгоритм.
1. Изначально поле заполнено нулями.
2. Ставим несколько рандомных точек - зёрна стран.
3. Гоняем клеточный автомат по правилу:
>клетка страны может захватить только нули
4. Когда нулей не осталось, считаем площади.
5. Если площади не равны, гоняем по правилу:
>клетка жирной страны захватывается тощей
6. Когда площади +/- равны, карта готова.
Какие будут результаты - не знаю, пробуй сам.
нашел вот такую штуку, тоже на диаграмме вороного базируется
https://azgaar.github.io/Fantasy-Map-Generator/
https://azgaar.github.io/Fantasy-Map-Generator/
>>525
Так надо код немного пописать, чтобы было не примитивно.
Можно начать с вороного, потом наложить шум сверху, и пройтись клеточным автоматом, чтобы разгладить грани и убрать лишний мусор.
Так надо код немного пописать, чтобы было не примитивно.
Можно начать с вороного, потом наложить шум сверху, и пройтись клеточным автоматом, чтобы разгладить грани и убрать лишний мусор.