Canvas

Dessiner
Architecture
Ecrire
fonction

Evenement

Widget

fonction

Ce programme permet déssiner deux triangles et ainsi un triangle centrer sur les valeurs de a et b.

########## Importer les modules necessaires ##############
from tkinter import *
##########################################################
##########    Fonctions ##################################
##########################################################
#########################################################
########## Interface graphique ##########################
##########################################################
Mafenetre = Tk()
Mafenetre.title("Titre")
Canevas = Canvas(Mafenetre,width=1000,height=1000,bg ='white')
Canevas.pack()
a,b=300,400
Canevas.create_polygon(a-20,b+10,a+20,b+10,a,b-20, fill='yellow')
Canevas.create_polygon(a-20,b-10,a+20,b-10,a,b+20, fill='yellow')
###################### FIN ###############################  
Mafenetre.mainloop()

Mais si on veux déssiner plusieurs étoiles, le programme va vite devenir très lourd ...

Ecrire une fonction va permettre de rendre lisible le programme:

########## Importer les modules necessaires ##############
from tkinter import *
##########################################################
##########    Fonctions ##################################
##########################################################
def etoile(a,b):
    Canevas.create_polygon(a-20,b+10,a+20,b+10,a,b-20, fill='yellow')
    Canevas.create_polygon(a-20,b-10,a+20,b-10,a,b+20, fill='yellow')
#########################################################
########## Interface graphique ##########################
##########################################################
Mafenetre = Tk()
Mafenetre.title("Titre")
Canevas = Canvas(Mafenetre,width=1000,height=1000,bg ='white')
Canevas.pack()
etoile(200,300)
etoile(400,400)
###################### FIN ###############################  
Mafenetre.mainloop()

La fonction étoile à deux paramètre : l'abscisse a et l'ordonnée b du centre.

Il suffit d'appeler la fonction avec des valeurs différentes (lignes 16 et 17 ) pour obtenir deux étoiles !

Une idée serait de rajouter un paramètre couleur pour facilement faire des étoiles de différentes couleurs.