|
|
@ -1,5 +1,5 @@ |
|
|
|
# Importation |
|
|
|
# Importation |
|
|
|
from random import randint |
|
|
|
|
|
|
|
from formes import triangle_equilateral |
|
|
|
from formes import triangle_equilateral |
|
|
|
from formes import rectangle |
|
|
|
from formes import rectangle |
|
|
|
from formes import porte |
|
|
|
from formes import porte |
|
|
@ -7,59 +7,54 @@ from formes import fenetre |
|
|
|
# Fonction gestion des données |
|
|
|
# Fonction gestion des données |
|
|
|
|
|
|
|
|
|
|
|
def determiner_immeuble(numero:int) -> dict: |
|
|
|
def determiner_immeuble(numero:int) -> dict: |
|
|
|
|
|
|
|
'''on designe les traits et caracteres de l'immeuble''' |
|
|
|
caracteristiques = {} |
|
|
|
caracteristiques = {} |
|
|
|
caracteristiques['couleur_facade'] = 'blue' |
|
|
|
caracteristiques['couleur_facade'] = 'blue' |
|
|
|
caracteristiques['numero'] = numero |
|
|
|
|
|
|
|
caracteristiques['bas_imeuble'] = -300 + numero * 240 |
|
|
|
|
|
|
|
caracteristiques['millieu_imeuble'] = -200 + numero * 340 |
|
|
|
|
|
|
|
caracteristiques['etage'] = randint(1, 5) #1 veut dire rechausser plus 1 etage |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
caracteristiques['couleur_porte'] = 'black' |
|
|
|
caracteristiques['couleur_porte'] = 'black' |
|
|
|
caracteristiques['position_porte'] = caracteristiques['bas_imeuble'] + 20 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
caracteristiques['couleur_fenetre'] ='green' |
|
|
|
|
|
|
|
caracteristiques['position_fenetre'] = caracteristiques['millieu_imeuble'] + 20 |
|
|
|
|
|
|
|
caracteristiques['position_fenetre_gauche'] = caracteristiques['bas_imeuble'] + 40 |
|
|
|
|
|
|
|
caracteristiques['position_fenetre_droite'] = caracteristiques['bas_imeuble'] + 60 |
|
|
|
|
|
|
|
caracteristiques['position_fenetre_millieu'] = caracteristiques['bas_imeuble'] + 80 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
caracteristiques['numero'] = numero |
|
|
|
|
|
|
|
caracteristiques['bas_imeuble'] = -300 + numero * 240 # on positionne le bas de l'immeuble |
|
|
|
|
|
|
|
caracteristiques['position_porte'] = caracteristiques['bas_imeuble'] + 20 # on fusionne la porte et le bas de l'immeuble |
|
|
|
|
|
|
|
caracteristiques['couleur_fenetre'] = 'blue' |
|
|
|
return caracteristiques |
|
|
|
return caracteristiques |
|
|
|
|
|
|
|
|
|
|
|
# Fonctions d'interface graphique |
|
|
|
# Fonctions d'interface graphique |
|
|
|
|
|
|
|
|
|
|
|
def dessiner_facade(informations:dict): |
|
|
|
def dessiner_facade(informations:dict): |
|
|
|
|
|
|
|
'''on trace la facade pour l'immeuble''' |
|
|
|
facade = {} # pour faire la "traduction" entre les clés de ce module et les clés du module formes |
|
|
|
facade = {} # pour faire la "traduction" entre les clés de ce module et les clés du module formes |
|
|
|
facade['écriture'] = 'blue' |
|
|
|
facade['écriture'] = 'blue' |
|
|
|
facade['fond'] = informations['couleur_facade'] |
|
|
|
facade['fond'] = informations['couleur_facade'] |
|
|
|
facade['épaisseur'] = 0 * informations['numero'] |
|
|
|
facade['épaisseur'] = 0 * informations['numero'] |
|
|
|
x0 = informations['bas_imeuble'] |
|
|
|
x0 = informations['bas_imeuble'] |
|
|
|
nombre_etage = informations['etage'] |
|
|
|
rectangle(140, 4*80, facade, (x0,0)) # reglage du rectangle pour la facade |
|
|
|
rectangle(140, nombre_etage*80+80, facade, (x0,0)) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def dessiner_porte(informations:dict): |
|
|
|
def dessiner_porte(informations:dict): |
|
|
|
|
|
|
|
'''on trace une porte avec couleur et position''' |
|
|
|
porte = {} # pour faire la "traduction" entre les clés de ce module et les clés du module formes |
|
|
|
porte = {} # pour faire la "traduction" entre les clés de ce module et les clés du module formes |
|
|
|
porte['écriture'] = 'red' |
|
|
|
porte['écriture'] = 'red' |
|
|
|
porte['fond'] = informations ['couleur_porte'] |
|
|
|
porte['fond'] = informations ['couleur_porte'] |
|
|
|
porte['épaisseur'] = 1 |
|
|
|
porte['épaisseur'] = 1 |
|
|
|
x0 = informations['position_porte'] |
|
|
|
x0 = informations['position_porte'] |
|
|
|
rectangle(30,40, porte, (x0,0)) |
|
|
|
rectangle(30,40, porte, (x0,0)) # on positionne la porte |
|
|
|
|
|
|
|
|
|
|
|
def dessiner_fenetre(informations:dict): |
|
|
|
|
|
|
|
fenetre = {} # pour faire la "traduction" entre les clés de ce module et les clés du module formes |
|
|
|
|
|
|
|
fenetre['écriture'] = 'black' |
|
|
|
|
|
|
|
fenetre['fond'] = informations ['couleur_fenetre'] |
|
|
|
|
|
|
|
fenetre['épaisseur'] = 1 |
|
|
|
|
|
|
|
x0 = informations['position_fenetre'] |
|
|
|
|
|
|
|
x1 = informations['position_fenetre_gauche'] |
|
|
|
|
|
|
|
x2 = informations['position_fenetre_millieu'] |
|
|
|
|
|
|
|
x3 = informations['position_fenetre_droite'] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rectangle(30,40, fenetre, (x0, x1, x2, x3, 0)) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def dessiner_immeuble(informations:dict): |
|
|
|
def dessiner_immeuble(informations:dict): |
|
|
|
|
|
|
|
'''on trace un immeuble avec une facade, porte et fenetre''' |
|
|
|
dessiner_facade(informations) |
|
|
|
dessiner_facade(informations) |
|
|
|
dessiner_porte(informations) |
|
|
|
dessiner_porte(informations) |
|
|
|
# à compléter avec d'autres fonctions pour le reste : toit, fenêtres... |
|
|
|
dessiner_fenetre(informations, 0) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def dessiner_fenetre(informations:dict, position): |
|
|
|
|
|
|
|
'''on trace une fenetre avec un fond en couleur pour l'immeuble''' |
|
|
|
|
|
|
|
fenetre = {} |
|
|
|
|
|
|
|
fenetre['écriture'] = 'red' # fenetre avec un fond rouge |
|
|
|
|
|
|
|
fenetre['fond'] = informations ['couleur_fenetre'] |
|
|
|
|
|
|
|
fenetre['épaisseur'] = 2 |
|
|
|
|
|
|
|
x0 = position |
|
|
|
|
|
|
|
rectangle(30,30, fenetre, (x0,0)) # on positionne la fenetre |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Programme principal |
|
|
|
# Programme principal |
|
|
|
|
|
|
|
|
|
|
@ -67,4 +62,9 @@ if __name__ == '__main__': |
|
|
|
|
|
|
|
|
|
|
|
for x in range(4): |
|
|
|
for x in range(4): |
|
|
|
infos_immeuble = determiner_immeuble(x) |
|
|
|
infos_immeuble = determiner_immeuble(x) |
|
|
|
dessiner_immeuble(infos_immeuble) |
|
|
|
dessiner_immeuble(infos_immeuble) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def dessiner_immeuble(informations:dict): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dessiner_facade(informations) |
|
|
|