KC_ZAY
2 months ago
1 changed files with 216 additions and 168 deletions
@ -1,168 +1,216 @@
|
||||
"""Ce fichier permet de dessiner des formes à l'aide des fonctions suivantes |
||||
|
||||
+ triangle_equilateral(cote, info_feutre, coordonnees) |
||||
+ arc_de_cercle(rayon, angle, info_feutre, coordonnees) |
||||
|
||||
|
||||
Exemples d'utilisation : |
||||
>>> informations_feutre = {'écriture':'blue', 'fond':'#FF88FF', 'épaisseur':5} |
||||
>>> triangle_equilateral(50, informations_feutre, (50,100)) |
||||
>>> arc_de_cercle(75, 360, informations_feutre, (200,-200)) |
||||
""" |
||||
|
||||
|
||||
# Importation |
||||
|
||||
import turtle as trt |
||||
import random as rd |
||||
|
||||
|
||||
# Déclaration des fonctions privées |
||||
|
||||
def nouveau_stylo(ecriture, fond, largeur): |
||||
"""Renvoie la référence d'un stylo configuré |
||||
|
||||
:: param ecriture(str) :: la couleur d'écriture ('red', '#FF0000') |
||||
:: param fond(str) :: la couleur de fond pour ce stylo |
||||
:: param largeur(int) :: la largeur du trait |
||||
:: return (Turtle) :: renvoie un objet de la classe Turtle |
||||
|
||||
""" |
||||
feutre = trt.Turtle() |
||||
feutre.color(ecriture) |
||||
feutre.fillcolor(fond) |
||||
feutre.pensize(largeur) |
||||
feutre.speed(5) |
||||
return feutre |
||||
|
||||
def deplacer(feutre, x, y): |
||||
"""Lève le feutre, déplace le feutre et abaisse le feutre |
||||
|
||||
:: param feutre(Turtle) :: la référence de l'objet Turtle |
||||
:: param x(int) :: coordonnée horizontale (abscisse) |
||||
:: param y(int) :: coordonnée verticale (ordonnée) |
||||
:: return (None) :: c'est une fonction sans retour |
||||
.. effet de bord :: modifie l'état de feutre |
||||
|
||||
""" |
||||
feutre.penup() # On lève la pointe |
||||
feutre.goto(x, y) # On déplace le crayon |
||||
feutre.pendown() # On abaisse la pointe |
||||
|
||||
def trace_triangle_equilateral(feutre, cote): |
||||
"""Trace un triangle (equilatéral) à l'aide du crayon feutre |
||||
|
||||
:: param feutre(Turtle) :: la référence de l'objet Turtle |
||||
:: param cote(int) :: la valeur en pixel des côtés |
||||
:: return (None) :: fonction sans retour |
||||
.. effet de bord :: modifie l'état de feutre |
||||
|
||||
""" |
||||
feutre.begin_fill() |
||||
for x in range(3): |
||||
feutre.forward(cote) |
||||
feutre.left(120) |
||||
feutre.end_fill() |
||||
feutre.hideturtle() |
||||
|
||||
def trace_arc(feutre, rayon, angle): |
||||
"""Trace un arc de cercle à l'aide du crayon feutre |
||||
|
||||
:: param feutre(Turtle) :: la référence de l'objet Turtle |
||||
:: param rayon(int) :: la valeur en pixel du rayon |
||||
:: param angle(int) :: l'angle à tracer (360 pour un cercle) |
||||
:: return (None) :: fonction sans retour |
||||
.. effet de bord :: modifie l'état de feutre |
||||
|
||||
""" |
||||
feutre.begin_fill() |
||||
feutre.circle(rayon, angle) |
||||
feutre.end_fill() |
||||
feutre.hideturtle() |
||||
|
||||
def trace_rec(feutre, rayon, angle): |
||||
"""Trace un arc de cercle à l'aide du crayon feutre |
||||
|
||||
:: param feutre(Turtle) :: la référence de l'objet Turtle |
||||
:: param rayon(int) :: la valeur en pixel du rayon |
||||
:: param angle(int) :: l'angle à tracer (360 pour un cercle) |
||||
:: return (None) :: fonction sans retour |
||||
.. effet de bord :: modifie l'état de feutre |
||||
|
||||
""" |
||||
feutre.begin_fill() |
||||
feutre.circle(rayon, angle) |
||||
feutre.end_fill() |
||||
feutre.hideturtle() |
||||
|
||||
|
||||
# Déclarations des fonctions publiques |
||||
|
||||
def triangle_equilateral(cote, info_feutre, coordonnees): |
||||
"""Trace un triangle (equilatéral) à partir des info_feutre et aux bonnees coordonnées |
||||
|
||||
:: param cote(int) :: la valeur en pixel des côtés |
||||
:: param info_feutre(dict) :: un dictionnaire {"écriture":str, "fond":str, "épaisseur":int} |
||||
:: param coordonnees(tuple (int,int) ) :: un tuple (x,y) |
||||
|
||||
""" |
||||
ecriture = info_feutre['écriture'] |
||||
fond = info_feutre['fond'] |
||||
epaisseur = info_feutre['épaisseur'] |
||||
x = coordonnees[0] # ou x,y = coordonnees (par désempaquetage) |
||||
y = coordonnees[1] |
||||
|
||||
feutre = nouveau_stylo(ecriture, fond, epaisseur) |
||||
deplacer(feutre, x, y) |
||||
trace_triangle_equilateral(feutre, cote) |
||||
|
||||
return feutre |
||||
|
||||
def arc_de_cercle(rayon, angle, info_feutre, coordonnees): |
||||
"""Trace un arc de cercle à partir des info_feutre et aux bonnees coordonnées |
||||
|
||||
:: param rayon(int) :: la valeur en pixel du rayon |
||||
:: param angle(int) :: la valeur en ° de l'angle |
||||
:: param info_feutre(dict) :: un dictionnaire {"écriture":str, "fond":str, "épaisseur":int} |
||||
:: param coordonnees(tuple (int,int) ) :: un tuple (x,y) |
||||
|
||||
""" |
||||
ecriture = info_feutre['écriture'] |
||||
fond = info_feutre['fond'] |
||||
epaisseur = info_feutre['épaisseur'] |
||||
x = coordonnees[0] # ou x,y = coordonnees (par désempaquetage) |
||||
y = coordonnees[1] |
||||
|
||||
feutre = nouveau_stylo(ecriture, fond, epaisseur) |
||||
deplacer(feutre, x, y) |
||||
trace_arc(feutre, rayon, angle) |
||||
|
||||
return feutre |
||||
|
||||
def rectangle(long1,long2,info_feutre,coorodonnees): |
||||
"""Trace un rectangle à partir des info_feutre et aux bonnes coordonnées |
||||
|
||||
:: param long1(int) |
||||
:: param long2(int) |
||||
:: param info_feutre(dict) |
||||
:: param coordonnees(tuple(int,int)) |
||||
|
||||
""" |
||||
ecriture = info_feutre['écriture'] |
||||
fond = info_feutre['fond'] |
||||
epaisseur = info_feutre['épaisseur'] |
||||
x = coordonnees[0] |
||||
y = coordonnees[1] |
||||
|
||||
feutre = nouveau_stylo(ecriture, fond, epaisseur) |
||||
deplacer(feutre,x,y) |
||||
|
||||
|
||||
|
||||
# Instructions du programme principal |
||||
|
||||
if __name__ == '__main__': |
||||
|
||||
informations_feutre = {'écriture':"blue", 'fond':'#FF88FF', 'épaisseur':5} |
||||
triangle_equilateral(50, informations_feutre, (50,100)) |
||||
arc_de_cercle(75, 360, informations_feutre, (200,-200)) |
||||
"""Ce fichier permet de dessiner des formes à l'aide des fonctions suivantes |
||||
|
||||
+ triangle_equilateral(cote, info_feutre, coordonnees) |
||||
+ arc_de_cercle(rayon, angle, info_feutre, coordonnees) |
||||
|
||||
|
||||
Exemples d'utilisation : |
||||
>>> informations_feutre = {'écriture':'blue', 'fond':'#FF88FF', 'épaisseur':5} |
||||
>>> triangle_equilateral(50, informations_feutre, (50,100)) |
||||
>>> arc_de_cercle(75, 360, informations_feutre, (200,-200)) |
||||
""" |
||||
|
||||
|
||||
# Importation |
||||
|
||||
import turtle as trt |
||||
import random as rd |
||||
|
||||
|
||||
# Déclaration des fonctions privées |
||||
|
||||
def nouveau_stylo(ecriture, fond, largeur): |
||||
"""Renvoie la référence d'un stylo configuré |
||||
|
||||
:: param ecriture(str) :: la couleur d'écriture ('red', '#FF0000') |
||||
:: param fond(str) :: la couleur de fond pour ce stylo |
||||
:: param largeur(int) :: la largeur du trait |
||||
:: return (Turtle) :: renvoie un objet de la classe Turtle |
||||
|
||||
""" |
||||
feutre = trt.Turtle() |
||||
feutre.color(ecriture) |
||||
feutre.fillcolor(fond) |
||||
feutre.pensize(largeur) |
||||
feutre.speed(5) |
||||
return feutre |
||||
|
||||
def deplacer(feutre, x, y): |
||||
"""Lève le feutre, déplace le feutre et abaisse le feutre |
||||
|
||||
:: param feutre(Turtle) :: la référence de l'objet Turtle |
||||
:: param x(int) :: coordonnée horizontale (abscisse) |
||||
:: param y(int) :: coordonnée verticale (ordonnée) |
||||
:: return (None) :: c'est une fonction sans retour |
||||
.. effet de bord :: modifie l'état de feutre |
||||
|
||||
""" |
||||
feutre.penup() # On lève la pointe |
||||
feutre.goto(x, y) # On déplace le crayon |
||||
feutre.pendown() # On abaisse la pointe |
||||
|
||||
def trace_triangle_equilateral(feutre, cote): |
||||
"""Trace un triangle (equilatéral) à l'aide du crayon feutre |
||||
|
||||
:: param feutre(Turtle) :: la référence de l'objet Turtle |
||||
:: param cote(int) :: la valeur en pixel des côtés |
||||
:: return (None) :: fonction sans retour |
||||
.. effet de bord :: modifie l'état de feutre |
||||
|
||||
""" |
||||
feutre.begin_fill() |
||||
for x in range(3): |
||||
feutre.forward(cote) |
||||
feutre.left(120) |
||||
feutre.end_fill() |
||||
feutre.hideturtle() |
||||
|
||||
def trace_arc(feutre, rayon, angle): |
||||
"""Trace un arc de cercle à l'aide du crayon feutre |
||||
|
||||
:: param feutre(Turtle) :: la référence de l'objet Turtle |
||||
:: param rayon(int) :: la valeur en pixel du rayon |
||||
:: param angle(int) :: l'angle à tracer (360 pour un cercle) |
||||
:: return (None) :: fonction sans retour |
||||
.. effet de bord :: modifie l'état de feutre |
||||
|
||||
""" |
||||
feutre.begin_fill() |
||||
feutre.circle(rayon, angle) |
||||
feutre.end_fill() |
||||
feutre.hideturtle() |
||||
|
||||
def trace_rec(feutre, rayon, angle): |
||||
"""Trace un arc de cercle à l'aide du crayon feutre |
||||
|
||||
:: param feutre(Turtle) :: la référence de l'objet Turtle |
||||
:: param rayon(int) :: la valeur en pixel du rayon |
||||
:: param angle(int) :: l'angle à tracer (360 pour un cercle) |
||||
:: return (None) :: fonction sans retour |
||||
.. effet de bord :: modifie l'état de feutre |
||||
|
||||
""" |
||||
feutre.begin_fill() |
||||
feutre.circle(rayon, angle) |
||||
feutre.end_fill() |
||||
feutre.hideturtle() |
||||
|
||||
|
||||
# Déclarations des fonctions publiques |
||||
|
||||
def triangle_equilateral(cote, info_feutre, coordonnees): |
||||
"""Trace un triangle (equilatéral) à partir des info_feutre et aux bonnees coordonnées |
||||
|
||||
:: param cote(int) :: la valeur en pixel des côtés |
||||
:: param info_feutre(dict) :: un dictionnaire {"écriture":str, "fond":str, "épaisseur":int} |
||||
:: param coordonnees(tuple (int,int) ) :: un tuple (x,y) |
||||
|
||||
""" |
||||
ecriture = info_feutre['écriture'] |
||||
fond = info_feutre['fond'] |
||||
epaisseur = info_feutre['épaisseur'] |
||||
x = coordonnees[0] # ou x,y = coordonnees (par désempaquetage) |
||||
y = coordonnees[1] |
||||
|
||||
feutre = nouveau_stylo(ecriture, fond, epaisseur) |
||||
deplacer(feutre, x, y) |
||||
trace_triangle_equilateral(feutre, cote) |
||||
|
||||
return feutre |
||||
|
||||
def arc_de_cercle(rayon, angle, info_feutre, coordonnees): |
||||
"""Trace un arc de cercle à partir des info_feutre et aux bonnees coordonnées |
||||
|
||||
:: param rayon(int) :: la valeur en pixel du rayon |
||||
:: param angle(int) :: la valeur en ° de l'angle |
||||
:: param info_feutre(dict) :: un dictionnaire {"écriture":str, "fond":str, "épaisseur":int} |
||||
:: param coordonnees(tuple (int,int) ) :: un tuple (x,y) |
||||
|
||||
""" |
||||
ecriture = info_feutre['écriture'] |
||||
fond = info_feutre['fond'] |
||||
epaisseur = info_feutre['épaisseur'] |
||||
x = coordonnees[0] # ou x,y = coordonnees (par désempaquetage) |
||||
y = coordonnees[1] |
||||
|
||||
feutre = nouveau_stylo(ecriture, fond, epaisseur) |
||||
deplacer(feutre, x, y) |
||||
trace_arc(feutre, rayon, angle) |
||||
|
||||
return feutre |
||||
|
||||
# def rectangle(long1,long2,info_feutre,coorodonnees): |
||||
# """Trace un rectangle à partir des info_feutre et aux bonnes coordonnées |
||||
# |
||||
# :: param long1(int) |
||||
# :: param long2(int) |
||||
# :: param info_feutre(dict) |
||||
# :: param coordonnees(tuple(int,int)) |
||||
# |
||||
# """ |
||||
# ecriture = info_feutre['écriture'] |
||||
# fond = info_feutre['fond'] |
||||
# epaisseur = info_feutre['épaisseur'] |
||||
# x = coordonnees[0] |
||||
# y = coordonnees[1] |
||||
# |
||||
# feutre = nouveau_stylo(ecriture, fond, epaisseur) |
||||
# deplacer(feutre,x,y) |
||||
def rectangle(long1, long2, info_feutre, coordonnees): |
||||
"""Trace un rectangle à partir des info_feutre et aux bonnes coordonnées |
||||
|
||||
:: param long1(int) : Longueur du rectangle |
||||
:: param long2(int) : Largeur du rectangle |
||||
:: param info_feutre(dict) : Informations sur le stylo pour le dessin |
||||
:: param coordonnees(tuple(int,int)) : Coordonnées du coin supérieur gauche du rectangle |
||||
""" |
||||
ecriture = info_feutre['écriture'] |
||||
fond = info_feutre['fond'] |
||||
epaisseur = info_feutre['épaisseur'] |
||||
x = coordonnees[0] |
||||
y = coordonnees[1] |
||||
|
||||
# Créer le stylo avec les caractéristiques spécifiées |
||||
feutre = nouveau_stylo(ecriture, fond, epaisseur) |
||||
|
||||
# Déplacer le stylo aux coordonnées de départ |
||||
deplacer(feutre, x, y) |
||||
|
||||
# Dessiner le rectangle |
||||
feutre.begin_fill() |
||||
for _ in range(2): |
||||
feutre.forward(long1) |
||||
feutre.left(90) |
||||
feutre.forward(long2) |
||||
feutre.left(90) |
||||
feutre.end_fill() |
||||
|
||||
# Configurer la fenêtre Turtle |
||||
trt.setup(width=800, height=600) |
||||
wn = trt.Screen() |
||||
wn.bgcolor("white") |
||||
wn.title("Dessin d'un Rectangle") |
||||
|
||||
# Définir les paramètres du rectangle |
||||
longueur = 200 |
||||
largeur = 100 |
||||
info_feutre = { |
||||
'écriture': 'black', |
||||
'fond': 'yellow', |
||||
'épaisseur': 3 |
||||
} |
||||
|
||||
|
||||
|
||||
# Instructions du programme principal |
||||
|
||||
if __name__ == '__main__': |
||||
|
||||
informations_feutre = {'écriture':"blue", 'fond':'#FF88FF', 'épaisseur':5} |
||||
triangle_equilateral(50, informations_feutre, (50,100)) |
||||
arc_de_cercle(75, 360, informations_feutre, (200,-200)) |
||||
rectangle(200, 100, informations_feutre, (-200,-200)) |
||||
rectangle(200, 100, informations_feutre, (-200,-100)) |
||||
rectangle(200, 100, informations_feutre, (-200,-0)) |
||||
rectangle(200, 100, informations_feutre, (-200,100)) |
||||
|
||||
|
Loading…
Reference in new issue