@@ -128,7 +128,7 @@ class District:
|
|||||||
return road
|
return road
|
||||||
return None
|
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}
|
width = {0: self.center_expend.x}
|
||||||
height = {0: self.center_expend.y}
|
height = {0: self.center_expend.y}
|
||||||
self.roads_expend = [Road(self.center_expend, 0, 0)]
|
self.roads_expend = [Road(self.center_expend, 0, 0)]
|
||||||
|
|||||||
@@ -274,12 +274,15 @@ def skeleton_mountain_map(image: str | Image.Image = './world_maker/data/mountai
|
|||||||
return skeleton
|
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 = handle_import_image("./world_maker/data/watermap.png")
|
||||||
watermap = filter_negative(
|
watermap = filter_negative(
|
||||||
filter_remove_details(filter_negative(watermap), 5))
|
filter_remove_details(filter_negative(watermap), 5))
|
||||||
sobel = handle_import_image("./world_maker/data/sobelmap.png")
|
sobel = handle_import_image(image)
|
||||||
sobel = filter_remove_details(filter_smooth_theshold(sobel, 1), 2)
|
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 = group_map(watermap, sobel)
|
||||||
group = filter_negative(group)
|
group = filter_negative(group)
|
||||||
group.save('./world_maker/data/smooth_sobel_watermap.png')
|
group.save('./world_maker/data/smooth_sobel_watermap.png')
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
from world_maker.World import World
|
from world_maker.World import World
|
||||||
from PIL import Image
|
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,
|
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.City import City
|
||||||
from world_maker.Position import Position
|
from world_maker.Position import Position
|
||||||
from random import randint
|
from random import randint
|
||||||
@@ -12,10 +12,14 @@ def world_maker():
|
|||||||
world = World()
|
world = World()
|
||||||
heightmap, watermap, treemap = get_data(world)
|
heightmap, watermap, treemap = get_data(world)
|
||||||
|
|
||||||
|
heightmap_smooth = filter_smooth(heightmap, 4)
|
||||||
|
heightmap_smooth.save('./world_maker/data/heightmap_smooth.png')
|
||||||
|
|
||||||
filter_sobel(
|
filter_sobel(
|
||||||
"./world_maker/data/heightmap.png").save('./world_maker/data/sobelmap.png')
|
"./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())
|
skeleton_highway = skeleton_highway_map(highway_map())
|
||||||
|
|
||||||
city = City()
|
city = City()
|
||||||
@@ -27,6 +31,7 @@ def world_maker():
|
|||||||
image_mountain_map = city.get_district_mountain_map()
|
image_mountain_map = city.get_district_mountain_map()
|
||||||
road = city.draw_roads(4)
|
road = city.draw_roads(4)
|
||||||
road.save('./world_maker/data/roadmap.png')
|
road.save('./world_maker/data/roadmap.png')
|
||||||
|
|
||||||
subtract_map(smooth_sobel_water_map, road).save(
|
subtract_map(smooth_sobel_water_map, road).save(
|
||||||
'./world_maker/data/city_map.png')
|
'./world_maker/data/city_map.png')
|
||||||
subtract_map('./world_maker/data/city_map.png',
|
subtract_map('./world_maker/data/city_map.png',
|
||||||
|
|||||||
Reference in New Issue
Block a user