From 01059a53bef875d35440ab28ec1220334cd4105b Mon Sep 17 00:00:00 2001 From: Eclairsombre Date: Sat, 15 Jun 2024 15:02:26 +0200 Subject: [PATCH] clean --- House.py | 2 - HouseBackup.py | 335 ---------------------------------------------- TestSkelette.py | 26 ---- grid_skeleton.png | Bin 12944 -> 0 bytes list_block.py | 70 ---------- temp.py | 227 ------------------------------- 6 files changed, 660 deletions(-) delete mode 100644 HouseBackup.py delete mode 100644 TestSkelette.py delete mode 100644 grid_skeleton.png delete mode 100644 list_block.py delete mode 100644 temp.py diff --git a/House.py b/House.py index 7592325..1452168 100644 --- a/House.py +++ b/House.py @@ -1,9 +1,7 @@ from time import sleep from gdpc import Editor, Block, geometry -from list_block import * import numpy as np -from skimage.morphology import skeletonize import math import matplotlib.pyplot as plt diff --git a/HouseBackup.py b/HouseBackup.py deleted file mode 100644 index 9cf94b0..0000000 --- a/HouseBackup.py +++ /dev/null @@ -1,335 +0,0 @@ -from gdpc import Editor, Block, geometry -from list_block import * -import numpy as np -import math - - -class House : - def __init__(self, editor,startX, startY, startZ, endX, endY, endZ,style,houseDirection="north"): - self.editor = editor - self.startX = startX - self.startY = startY - self.startZ = startZ - self.endX = endX - self.endY = endY - self.endZ = endZ - self.houseDirection = houseDirection - self.hasGarder = True - self.gardenSide = "right" - self.hasGarage = True - - self.wall = style['mur'] - self.ground = style['sol'] - self.grass = style['grass'] - self.path = style['chemin'] - self.fence = style['fence'] - self.glass = style['glass'] - self.door = style['door'] - self.roof = style['toit'] - - def placeGround(self,CoStart, CoEnd,block): - for x in range(CoStart[0], CoEnd[0]): - for z in range(CoStart[2], CoEnd[2]): - self.editor.placeBlock((x, CoStart[1], z), Block(block) ) - - def placeRoof(self,CoStart,CoEnd): - for x in range(CoStart[0], CoEnd[0]): - for z in range(CoStart[2], CoEnd[2]): - self.editor.placeBlock((x, CoEnd[1]-1, z), Block(self.roof)) - - - def placeWall(self,CoStart,CoEnd): - if CoStart[0] == CoEnd[0]: - for y in range(CoStart[1]+1, CoEnd[1]-1): - for z in range(CoStart[2], CoEnd[2]): - self.editor.placeBlock((CoStart[0], y, z), Block(self.wall)) - CoStart = (CoStart[0],CoStart[1],CoStart[2]+1) - CoEnd = (CoEnd[0],CoEnd[1],CoEnd[2]-1) - elif CoStart[2] == CoEnd[2]: - for y in range(CoStart[1]+1, CoEnd[1]-1): - for x in range(CoStart[0], CoEnd[0]): - self.editor.placeBlock((x, y, CoStart[2]), Block(self.wall)) - CoStart = (CoStart[0]+1,CoStart[1],CoStart[2]) - CoEnd = (CoEnd[0]-1,CoEnd[1],CoEnd[2]) - - self.placeWindow(CoStart,CoEnd) - - - - - def placeDoor(self, direction="north", x=0, z=0, y=0): - door_directions = { - "south": {"facing": "north", "half": "lower"}, - "north": {"facing": "south", "half": "lower"}, - "east": {"facing": "west", "half": "lower"}, - "west": {"facing": "east", "half": "lower"} - } - - door_properties = door_directions.get(direction) - - if door_properties: - self.editor.placeBlock((x, y + 1, z), Block(self.door, door_properties)) - self.editor.placeBlock((x, y + 2, z), Block(self.door, {"facing": door_properties["facing"], "half": "upper"})) - self.doorDirection = direction - - def placeWindow(self, CoStart, CoEnd): - x = abs(CoEnd[0] - CoStart[0]) - z = abs(CoEnd[2] - CoStart[2]) - type = Block(self.glass) - - def placeBlock(axis, is_x_axis): - print(axis, is_x_axis) - if axis % 2 == 0: - if axis == 4: - if is_x_axis: - self.editor.placeBlock((CoStart[0] + 1, CoStart[1] + 2, CoStart[2]), type) - self.editor.placeBlock((CoStart[0] + 2, CoStart[1] + 2, CoStart[2]), type) - else: - self.editor.placeBlock((CoStart[0], CoStart[1] + 2, CoStart[2] + 1), type) - self.editor.placeBlock((CoStart[0], CoStart[1] + 2, CoStart[2] + 2), type) - else: - for i in range(axis // 2): - if i % 2 == 0: - if is_x_axis: - self.editor.placeBlock((CoStart[0] + i * 2 + 1, CoStart[1] + 2, CoStart[2]), type) - self.editor.placeBlock((CoStart[0] + i * 2 + 2, CoStart[1] + 2, CoStart[2]), type) - else: - self.editor.placeBlock((CoStart[0], CoStart[1] + 2, CoStart[2] + 1 + i * 2), type) - self.editor.placeBlock((CoStart[0], CoStart[1] + 2, CoStart[2] + i * 2 + 2), type) - else: - if axis <= 5: - for i in range(axis): - if is_x_axis: - self.editor.placeBlock((CoStart[0] + i, CoStart[1] + 2, CoStart[2]), type) - else: - self.editor.placeBlock((CoStart[0], CoStart[1] + 2, CoStart[2] + i), type) - else: - for i in range(axis // 3): - if 3 * (i + 1) + i > abs(CoEnd[2] - CoStart[2]): - break - else: - if is_x_axis: - self.editor.placeBlock((CoStart[0], CoStart[1] + 2, CoStart[2] + i * 4), type) - self.editor.placeBlock((CoStart[0], CoStart[1] + 2, CoStart[2] + i * 4 + 1), type) - self.editor.placeBlock((CoStart[0], CoStart[1] + 2, CoStart[2] + i * 4 + 2), type) - else: - self.editor.placeBlock((CoStart[0], CoStart[1] + 2, CoStart[2] + i * 4), type) - self.editor.placeBlock((CoStart[0], CoStart[1] + 2, CoStart[2] + i * 4 + 1), type) - self.editor.placeBlock((CoStart[0], CoStart[1] + 2, CoStart[2] + i * 4 + 2), type) - - if CoStart[0] == CoEnd[0]: - placeBlock(z, False) - - if CoStart[2] == CoEnd[2]: - placeBlock(x, True) - - - - def clearInside(self): - for x in range(self.startX+1, self.endX): - for y in range(self.startY+1, self.endY): - for z in range(self.startZ+1, self.endZ): - self.editor.placeBlock((x, y, z), air) - - - def deleteWall(self,CoStart,CoEnd): - if CoStart[0] == CoEnd[0]: - for y in range(CoStart[1]+1, CoEnd[1]-1): - for z in range(CoStart[2], CoEnd[2]): - self.editor.placeBlock((CoStart[0], y, z), air) - elif CoStart[2] == CoEnd[2]: - for y in range(CoStart[1]+1, CoEnd[1]-1): - for x in range(CoStart[0], CoEnd[0]): - self.editor.placeBlock((x, y, CoStart[2]), air) - - - def placeGarage(self,CoStart,CoEnd): - self.deleteWall(CoStart,CoEnd) - - - - - - - def placeHouse(self): - self.clear() - self.clearInside() - self.placeGround((self.startX, self.startY, self.startZ), (self.endX, self.endY, self.endZ),self.ground) - - if self.hasGarder: - if self.houseDirection == "north" : - if self.gardenSide == "left": - self.placeGround((self.startX+ (self.endX - self.startX)//2, self.startY, self.startZ), (self.endX, self.endY, self.startZ + (self.endZ - self.startZ)//2), self.grass) - self.placeRoof((self.startX, self.startY, self.startZ), (self.endX - (self.endX - self.startX)//2, self.endY, self.endZ)) - self.placeRoof((self.startX + (self.endX - self.startX)//2, self.startY, self.startZ + (self.endZ - self.startZ)//2), (self.endX, self.endY, self.endZ)) - self.placeWall((self.startX, self.startY, self.startZ), (self.startX +(self.endX - self.startX)//2 , self.endY, self.startZ)) - self.placeWall((self.startX, self.startY, self.startZ), (self.startX, self.endY, self.endZ )) - self.placeWall((self.startX, self.startY, self.endZ-1), (self.endX , self.endY, self.endZ-1)) - self.placeWall((self.endX-1, self.startY, self.startZ+ (self.endZ - self.startZ)//2), (self.endX-1, self.endY, self.endZ)) - self.placeWall((self.startX + (self.endX - self.startX)//2 , self.startY, self.startZ+ (self.endZ - self.startZ)//2), (self.endX , self.endY, self.startZ+ (self.endZ - self.startZ)//2)) - self.placeWall((self.startX + (self.endX - self.startX)//2 -1, self.startY, self.startZ), (self.startX + (self.endX - self.startX)//2 -1, self.endY, self.startZ+ (self.endZ - self.startZ)//2 )) - self.placeDoor("north", self.endX - (self.endX -self.startX) // 4 -1 , (self.startZ + self.endZ) //2,self.startY) - if self.hasGarage: - self.placeGarage((self.startX+1, self.startY, self.startZ), (self.startX +(self.endX - self.startX)//2 -1 , self.endY, self.startZ)) - - else: - self.placeGround((self.startX, self.startY, self.startZ), (self.startX + (self.endX-self.startX)//2, self.endY, self.startZ + (self.endZ - self.startZ)//2), self.grass) - self.placeRoof((self.endX- (self.endX - self.startX)//2, self.startY, self.startZ), (self.endX , self.endY, self.endZ)) - self.placeRoof((self.startX , self.startY, self.startZ + (self.endZ - self.startZ)//2), (self.endX - (self.endX - self.startX)//2, self.endY, self.endZ)) - self.placeWall((self.startX, self.startY, self.startZ+ (self.endZ - self.startZ)//2), (self.endX - (self.endX - self.startX)//2, self.endY, self.startZ+ (self.endZ - self.startZ)//2)) - self.placeWall((self.startX, self.startY, self.startZ+ (self.endZ - self.startZ)//2), (self.startX, self.endY, self.endZ )) - self.placeWall((self.startX, self.startY, self.endZ-1), (self.endX , self.endY, self.endZ-1)) - self.placeWall((self.endX-1, self.startY, self.startZ), (self.endX-1, self.endY, self.endZ)) - self.placeWall((self.startX+ (self.endX - self.startX)//2, self.startY, self.startZ), (self.endX, self.endY, self.startZ)) - self.placeWall((self.startX+ (self.endX - self.startX)//2, self.startY, self.startZ), (self.startX+ (self.endX - self.startX)//2, self.endY, self.startZ+ (self.endZ - self.startZ)//2)) - self.placeDoor("north", self.startX + (self.endX -self.startX) // 4 , (self.startZ + self.endZ) //2,self.startY) - if self.hasGarage: - self.placeGarage((self.startX+ (self.endX - self.startX)//2 +1, self.startY, self.startZ), (self.endX-1, self.endY, self.startZ)) - - elif self.houseDirection == "south": - if self.gardenSide == "left": - self.placeGround((self.startX , self.startY, self.startZ + (self.endZ - self.startZ)//2), (self.startX+ (self.endX - self.startX)//2, self.endY, self.endZ), self.grass) - self.placeRoof((self.startX, self.startY, self.startZ), (self.endX, self.endY, self.startZ + (self.endZ - self.startZ)//2)) - self.placeRoof((self.startX + (self.endX - self.startX)//2, self.startY, self.startZ), (self.endX, self.endY, self.endZ)) - self.placeWall((self.startX, self.startY, self.startZ), (self.endX , self.endY, self.startZ)) - self.placeWall((self.startX, self.startY, self.startZ), (self.startX , self.endY, self.startZ + (self.endZ - self.startZ)//2)) - self.placeWall((self.startX, self.startY, self.startZ + (self.endZ - self.startZ)//2 -1), (self.startX + (self.endX - self.startX)//2 , self.endY, self.startZ + (self.endZ - self.startZ)//2 -1)) - self.placeWall((self.startX + (self.endX - self.startX)//2, self.startY, self.endZ-1), (self.endX , self.endY, self.endZ-1)) - self.placeWall((self.startX + (self.endX - self.startX)//2, self.startY, self.startZ + (self.endZ - self.startZ)//2), (self.startX + (self.endX - self.startX)//2, self.endY, self.endZ)) - self.placeWall((self.endX-1, self.startY, self.startZ), (self.endX-1, self.endY, self.endZ)) - - self.placeDoor("south", self.startX + (self.endX -self.startX) // 4 , (self.startZ + self.endZ) //2 -1,self.startY) - if self.hasGarage: - self.placeGarage((self.startX+1, self.startY, self.startZ + (self.endZ - self.startZ)//2 +1), (self.startX +(self.endX - self.startX)//2 -1, self.endY, self.endZ -1)) - - else: - self.placeGround((self.startX + (self.endX - self.startX)//2, self.startY, self.startZ+ (self.endZ - self.startZ)//2), (self.endX, self.endY, self.endZ), self.grass) - self.placeRoof((self.startX, self.startY, self.startZ), (self.startX+(self.endX - self.startX)//2 , self.endY, self.endZ)) - self.placeRoof((self.startX + (self.endX - self.startX)//2, self.startY, self.startZ), (self.endX, self.endY, self.startZ+(self.endZ - self.startZ)//2)) - self.placeWall((self.startX, self.startY, self.startZ), (self.endX , self.endY, self.startZ)) - self.placeWall((self.startX, self.startY, self.startZ), (self.startX , self.endY, self.endZ)) - self.placeWall((self.startX, self.startY, self.endZ-1), (self.startX + (self.endX - self.startX)//2 , self.endY, self.endZ-1)) - self.placeWall((self.startX + (self.endX - self.startX)//2 -1, self.startY, self.startZ + (self.endZ - self.startZ)//2), (self.startX + (self.endX - self.startX)//2 -1, self.endY, self.endZ )) - self.placeWall((self.startX + (self.endX - self.startX)//2, self.startY, self.startZ + (self.endZ - self.startZ)//2 -1), (self.endX , self.endY, self.startZ + (self.endZ - self.startZ)//2 -1)) - self.placeWall((self.endX -1, self.startY, self.startZ ), (self.endX -1, self.endY, self.startZ+ (self.endZ - self.startZ)//2)) - - - self.placeDoor("south", self.endX - (self.endX -self.startX) // 4 -1 , (self.startZ + self.endZ) //2 -1,self.startY) - if self.hasGarage: - self.placeGarage((self.startX+ (self.endX - self.startX)//2 +1, self.startY, self.startZ + (self.endZ - self.startZ)//2 +1), (self.endX-1, self.endY, self.endZ -1)) - - elif self.houseDirection == "west": - if self.gardenSide == "left": - self.placeGround((self.startX, self.startY, self.startZ), (self.startX + (self.endX - self.startX)//2, self.endY, self.startZ+ (self.endZ - self.startZ)//2), self.grass) - self.placeRoof((self.startX + (self.endX - self.startX)//2, self.startY, self.startZ), (self.endX, self.endY, self.endZ)) - self.placeRoof((self.startX, self.startY, self.startZ+ (self.endZ - self.startZ)//2), (self.startX + (self.endX - self.startX)//2, self.endY, self.endZ)) - self.placeWall((self.startX+ (self.endX - self.startX)//2, self.startY, self.startZ), (self.endX, self.endY, self.startZ)) - self.placeWall((self.startX+ (self.endX - self.startX)//2, self.startY, self.startZ), (self.startX+ (self.endX - self.startX)//2, self.endY, self.startZ+ (self.endZ - self.startZ)//2)) - self.placeWall((self.endX-1, self.startY, self.startZ), (self.endX-1, self.endY, self.endZ)) - self.placeWall((self.startX, self.startY, self.startZ+ (self.endZ - self.startZ)//2), (self.startX+ (self.endX - self.startX)//2, self.endY, self.startZ+ (self.endZ - self.startZ)//2)) - self.placeWall((self.startX, self.startY, self.startZ+ (self.endZ - self.startZ)//2), (self.startX, self.endY, self.endZ)) - self.placeWall((self.startX, self.startY, self.endZ-1), (self.endX, self.endY, self.endZ-1)) - self.placeDoor("west", self.endX - (self.endX -self.startX) // 2 , self.startZ + (self.endZ - self.startZ)//4 ,self.startY) - if self.hasGarage: - self.placeGarage((self.startX, self.startY, self.startZ+ (self.endZ - self.startZ)//2 +1), (self.startX , self.endY, self.endZ -1)) - else: - self.placeGround((self.startX, self.startY, self.startZ+ (self.endZ - self.startZ)//2 ), (self.startX+ (self.endX-self.startX)//2, self.endY, self.endZ), self.grass) - self.placeRoof((self.startX + (self.endX - self.startX)//2, self.startY, self.startZ+ (self.endZ - self.startZ)//2), (self.endX, self.endY, self.endZ)) - self.placeRoof((self.startX, self.startY, self.startZ), (self.endX, self.endY, self.startZ+ (self.endZ - self.startZ)//2)) - self.placeWall((self.startX, self.startY, self.startZ+ (self.endZ - self.startZ)//2 -1), (self.startX+ (self.endX - self.startX)//2, self.endY, self.startZ+ (self.endZ - self.startZ)//2 -1)) - self.placeWall((self.startX, self.startY, self.startZ), (self.endX, self.endY, self.startZ)) - self.placeWall((self.startX, self.startY, self.startZ), (self.startX, self.endY, self.startZ+ (self.endZ - self.startZ)//2)) - self.placeWall((self.startX + (self.endX - self.startX)//2, self.startY, self.endZ-1), (self.endX, self.endY, self.endZ-1)) - self.placeWall((self.startX + (self.endX - self.startX)//2, self.startY, self.startZ+ (self.endZ - self.startZ)//2), (self.startX + (self.endX - self.startX)//2, self.endY, self.endZ)) - self.placeWall((self.endX-1, self.startY, self.startZ), (self.endX-1, self.endY, self.endZ)) - - self.placeDoor("west", self.startX + (self.endX -self.startX) // 2 , self.endZ - (self.endZ - self.startZ)//4 -1,self.startY) - if self.hasGarage: - self.placeGarage((self.startX, self.startY, self.startZ+1), (self.startX, self.endY, self.startZ+ (self.endZ - self.startZ)//2 -1)) - - elif self.houseDirection == "east": - if self.gardenSide == "left": - self.placeGround((self.startX + (self.endX - self.startX)//2, self.startY, self.startZ+ (self.endZ - self.startZ)//2), (self.endX , self.endY, self.endZ, self.grass), self.grass) - self.placeRoof((self.startX, self.startY, self.startZ), (self.startX + (self.endX - self.startX)//2, self.endY, self.endZ)) - self.placeRoof((self.startX + (self.endX - self.startX)//2, self.startY, self.startZ), (self.endX, self.endY, self.startZ+ (self.endZ - self.startZ)//2)) - self.placeWall((self.startX, self.startY, self.startZ), (self.endX , self.endY, self.startZ)) - self.placeWall((self.startX, self.startY, self.startZ), (self.startX, self.endY, self.endZ)) - self.placeWall((self.startX, self.startY, self.endZ-1), (self.startX + (self.endX - self.startX)//2, self.endY, self.endZ-1)) - self.placeWall((self.startX + (self.endX - self.startX)//2 -1, self.startY, self.startZ+ (self.endZ - self.startZ)//2), (self.startX + (self.endX - self.startX)//2 -1, self.endY, self.endZ)) - self.placeWall((self.startX + (self.endX - self.startX)//2, self.startY, self.startZ+ (self.endZ - self.startZ)//2 -1), (self.endX , self.endY, self.startZ+ (self.endZ - self.startZ)//2 -1)) - self.placeWall((self.endX-1, self.startY, self.startZ), (self.endX-1, self.endY, self.startZ+ (self.endZ - self.startZ)//2)) - - self.placeDoor("east", self.startX + (self.endX -self.startX) // 2 -1 ,self.endZ - (self.endZ - self.startZ)//4 -1,self.startY) - if self.hasGarage: - self.placeGarage((self.endX-1, self.startY, self.startZ +1), (self.endX-1, self.endY, self.startZ+ (self.endZ - self.startZ)//2 -1)) - else : - self.placeGround((self.startX+ (self.endX -self.startX) // 2 , self.startY, self.startZ), (self.endX, self.endY, self.startZ+ (self.endZ - self.startZ)//2), self.grass) - self.placeRoof((self.startX, self.startY, self.startZ), (self.startX + (self.endX - self.startX)//2, self.endY, self.endZ)) - self.placeRoof((self.startX + (self.endX - self.startX)//2, self.startY, self.startZ+ (self.endZ - self.startZ)//2), (self.endX, self.endY, self.endZ)) - self.placeWall((self.startX, self.startY, self.startZ), (self.startX+ (self.endX - self.startX)//2 , self.endY, self.startZ)) - self.placeWall((self.startX, self.startY, self.startZ), (self.startX, self.endY, self.endZ)) - self.placeWall((self.startX, self.startY, self.endZ-1), (self.endX , self.endY, self.endZ-1)) - self.placeWall((self.startX + (self.endX - self.startX)//2, self.startY, self.startZ+ (self.endZ - self.startZ)//2), (self.endX , self.endY, self.startZ+ (self.endZ - self.startZ)//2)) - self.placeWall((self.startX + (self.endX - self.startX)//2 -1, self.startY, self.startZ), (self.startX + (self.endX - self.startX)//2 -1, self.endY, self.startZ+ (self.endZ - self.startZ)//2 )) - self.placeWall((self.endX-1, self.startY, self.startZ+ (self.endZ - self.startZ)//2), (self.endX-1, self.endY, self.endZ)) - - self.placeDoor("east", self.endX - (self.endX -self.startX) // 2 -1 , self.startZ + (self.endZ - self.startZ)//4 ,self.startY) - if self.hasGarage: - self.placeGarage((self.endX-1, self.startY, self.startZ+ (self.endZ - self.startZ)//2 +1), (self.endX-1, self.endY, self.endZ -1)) - - else: - self.houseWithoutGarden(self.houseDirection) - - - def placeDoorBasedOnDirection(self, direction): - if direction in ["north", "south"]: - z = self.startZ if direction == "north" else self.endZ - 1 - if (self.endX - self.startX) % 2 != 0: - self.placeDoor(direction, (self.startX + self.endX)//2, z, self.startY) - else: - self.placeDoor(direction, (self.startX + self.endX)//2, z, self.startY) - self.placeDoor(direction, ((self.startX + self.endX)//2)-1, z, self.startY) - else: - x = self.startX if direction == "west" else self.endX - 1 - if (self.endZ - self.startZ) % 2 != 0: - self.placeDoor(direction, x, (self.startZ + self.endZ)//2, self.startY) - else: - self.placeDoor(direction, x, (self.startZ + self.endZ)//2, self.startY) - self.placeDoor(direction, x, ((self.startZ + self.endZ)//2)-1, self.startY) - - def houseWithoutGarden(self, direction="north"): - self.placeRoof((self.startX, self.startY, self.startZ), (self.endX, self.endY, self.endZ)) - self.placeWall((self.startX, self.startY, self.startZ), (self.endX, self.endY, self.startZ)) - self.placeWall((self.startX, self.startY, self.startZ), (self.startX, self.endY, self.endZ)) - self.placeWall((self.startX, self.startY, self.endZ-1), (self.endX, self.endY, self.endZ-1)) - self.placeWall((self.endX-1, self.startY, self.startZ), (self.endX-1, self.endY, self.endZ)) - - self.placeDoorBasedOnDirection(direction) - - - - - def clear(self): - for x in range(self.startX-1, self.endX+1): - for y in range(self.startY-1, self.endY+1): - for z in range(self.startZ-1, self.endZ+1): - self.editor.placeBlock((x, y, z), air) - -if __name__ == "__main__": - editor = Editor(buffering=True) - buildArea = editor.getBuildArea() - coordinates_min = [min(buildArea.begin[i], buildArea.last[i]) for i in range(3)] - coordinates_max = [max(buildArea.begin[i], buildArea.last[i]) for i in range(3)] - - house = House(editor,coordinates_min[0],coordinates_min[1],coordinates_min[2],coordinates_max[0],coordinates_max[1],coordinates_max[2], style_basique,"east") - - # house.placeHouse() - - house.clear() - editor.flushBuffer() - - - - - - \ No newline at end of file diff --git a/TestSkelette.py b/TestSkelette.py deleted file mode 100644 index c3e6817..0000000 --- a/TestSkelette.py +++ /dev/null @@ -1,26 +0,0 @@ -import numpy as np -from skimage.morphology import skeletonize -import matplotlib.pyplot as plt - -# Créer un tableau de booléens -image = np.ones((20, 20), dtype=bool) -image[1:-1, 1:-1] = True - -# Effectuer la squelettisation -skeleton = skeletonize(image) - -# Afficher les résultats -fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(8, 4), sharex=True, sharey=True) - -ax = axes.ravel() - -ax[0].imshow(image, cmap=plt.cm.gray) -ax[0].axis('off') -ax[0].set_title('original', fontsize=20) - -ax[1].imshow(skeleton, cmap=plt.cm.gray) -ax[1].axis('off') -ax[1].set_title('skeleton', fontsize=20) - -fig.tight_layout() -plt.show() \ No newline at end of file diff --git a/grid_skeleton.png b/grid_skeleton.png deleted file mode 100644 index 0ed9da1e93fa5a873400431d9d62f8c73a60ae22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12944 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∈PrO8jD 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 a-h29f&)O49Z9vzd)GlgV$U1lZ?tcKQXGU!R diff --git a/list_block.py b/list_block.py deleted file mode 100644 index af99e90..0000000 --- a/list_block.py +++ /dev/null @@ -1,70 +0,0 @@ -from gdpc import Block - - -air = Block('air') - - - - - - - -style_basique={ - 'mur':"white_concrete", - 'sol':"oak_planks", - 'toit':"oak_planks", - 'grass':"grass_block", - 'chemin':"quartz_block", - 'fence':'oak_fence', - 'toit_esca':'oak_stairs', - 'toit_planche':"oak_planks", - 'toit_slab':'oak_slab', - 'glass':"glass", - 'door':'oak_door' - - - } - -style_jungle={ - 'mur':"light_gray_concrete", - 'sol':"acacia_planks", - 'grass':"grass_block", - 'chemin':"podzol", - 'fence':'acacia_fence', - 'toit_esca':'acacia_stairs', - 'toit_planche':"acacia_planks", - 'toit_slab':'acacia_slab', - 'glass':"glass", - 'door':'acacia_door' - - - } -style_end={ - 'mur':"purple_concrete", - 'sol':"crimson_planks", - 'grass':"grass_block", - 'chemin':"amethyst_block", - 'fence':'crimson_fence', - 'toit_esca':'crimson_stairs', - 'toit_planche':"crimson_planks", - 'toit_slab':'crimson_slab', - 'glass':"glass", - 'door':'crimson_door' - - - } - -style_birch={ - 'mur':"yellow_concrete", - 'sol':"birch_planks", - 'grass':"grass_block", - 'chemin':"rooted_dirt", - 'fence':'birch_fence', - 'toit_esca':'birch_stairs', - 'toit_planche':"birch_planks", - 'toit_slab':'birch_slab', - 'glass':"glass", - 'door':'birch_door' - - - } \ No newline at end of file diff --git a/temp.py b/temp.py deleted file mode 100644 index 448d83b..0000000 --- a/temp.py +++ /dev/null @@ -1,227 +0,0 @@ - for i in range(-1, width+1): - for j in range(-1, depth+1): - if width