Fix : Building map

This commit is contained in:
NichiHachi
2024-06-24 05:10:45 +02:00
parent 936afb1af4
commit 3f0eba7d24
3 changed files with 14 additions and 6 deletions

View File

@@ -128,7 +128,7 @@ class District:
return road
return None
def generate_roads(self, map_data, random_range=(20, 40)):
def generate_roads(self, map_data, random_range=(40, 50)):
width = {0: self.center_expend.x}
height = {0: self.center_expend.y}
self.roads_expend = [Road(self.center_expend, 0, 0)]

View File

@@ -274,12 +274,15 @@ def skeleton_mountain_map(image: str | Image.Image = './world_maker/data/mountai
return skeleton
def smooth_sobel_water() -> Image.Image:
def smooth_sobel_water(image: str | Image.Image = "./world_maker/data/sobelmap.png") -> Image.Image:
watermap = handle_import_image("./world_maker/data/watermap.png")
watermap = filter_negative(
filter_remove_details(filter_negative(watermap), 5))
sobel = handle_import_image("./world_maker/data/sobelmap.png")
sobel = filter_remove_details(filter_smooth_theshold(sobel, 1), 2)
sobel = handle_import_image(image)
sobel = filter_remove_details(filter_smooth_theshold(sobel, 1), 5)
sobel_array = np.array(filter_negative(sobel))
sobel_array = ndimage.binary_dilation(sobel_array, iterations=3)
sobel = filter_negative(Image.fromarray(sobel_array))
group = group_map(watermap, sobel)
group = filter_negative(group)
group.save('./world_maker/data/smooth_sobel_watermap.png')

View File

@@ -1,7 +1,7 @@
from world_maker.World import World
from PIL import Image
from world_maker.data_analysis import (get_data, filter_negative, rectangle_2D_to_3D, skeleton_mountain_map, highway_map, filter_sobel, skeleton_highway_map,
smooth_sobel_water, subtract_map, detect_mountain, filter_smooth, overide_map)
smooth_sobel_water, subtract_map, detect_mountain, filter_smooth, overide_map, filter_remove_details)
from world_maker.City import City
from world_maker.Position import Position
from random import randint
@@ -12,10 +12,14 @@ def world_maker():
world = World()
heightmap, watermap, treemap = get_data(world)
heightmap_smooth = filter_smooth(heightmap, 4)
heightmap_smooth.save('./world_maker/data/heightmap_smooth.png')
filter_sobel(
"./world_maker/data/heightmap.png").save('./world_maker/data/sobelmap.png')
filter_sobel(heightmap_smooth).save('./world_maker/data/sobelmap_from_smooth.png')
smooth_sobel_water_map = smooth_sobel_water()
smooth_sobel_water_map = smooth_sobel_water('./world_maker/data/sobelmap_from_smooth.png')
skeleton_highway = skeleton_highway_map(highway_map())
city = City()
@@ -27,6 +31,7 @@ def world_maker():
image_mountain_map = city.get_district_mountain_map()
road = city.draw_roads(4)
road.save('./world_maker/data/roadmap.png')
subtract_map(smooth_sobel_water_map, road).save(
'./world_maker/data/city_map.png')
subtract_map('./world_maker/data/city_map.png',