Kylian.B-M
2 years ago
1 changed files with 216 additions and 177 deletions
@ -1,177 +1,216 @@ |
|||||||
'''Ce fichier permet de dessiner deux formes à l'aide des deux fonctions suivantes |
'''Ce fichier permet de dessiner deux formes à l'aide des deux fonctions suivantes |
||||||
|
|
||||||
+ triangle_equilateral(cote, infos, coordonnees) |
+ triangle_equilateral(cote, infos, coordonnees) |
||||||
+ arc_de_cercle(rayon, angle, infos, coordonnees) |
+ arc_de_cercle(rayon, angle, infos, coordonnees) |
||||||
|
|
||||||
Exemples d'utilisation : |
Exemples d'utilisation : |
||||||
>>> infos_generales = {'écriture':'blue', 'fond':'#FF88FF', 'épaisseur':5} |
>>> infos_generales = {'écriture':'blue', 'fond':'#FF88FF', 'épaisseur':5} |
||||||
>>> triangle_equilateral(50, infos_generales, (50,100)) |
>>> triangle_equilateral(50, infos_generales, (50,100)) |
||||||
>>> arc_de_cercle(75, 360, infos_generales, (200,-200)) |
>>> arc_de_cercle(75, 360, infos_generales, (200,-200)) |
||||||
|
|
||||||
''' |
''' |
||||||
|
|
||||||
# Importation |
# Importation |
||||||
|
|
||||||
import turtle as trt |
import turtle as trt |
||||||
import random as rd |
import random as rd |
||||||
|
|
||||||
# Pas de classes |
# Pas de classes |
||||||
|
|
||||||
# Déclaration des fonctions privées |
# Déclaration des fonctions privées |
||||||
|
|
||||||
def nouveau_stylo(ecriture, fond, largeur): |
def nouveau_stylo(ecriture, fond, largeur): |
||||||
'''Renvoie la référence d'un stylo configuré |
'''Renvoie la référence d'un stylo configuré |
||||||
|
|
||||||
:: param ecriture(str) :: la couleur d'écriture ('red', '#FF0000') |
:: param ecriture(str) :: la couleur d'écriture ('red', '#FF0000') |
||||||
:: param fond(str) :: la couleur de fond pour ce stylo |
:: param fond(str) :: la couleur de fond pour ce stylo |
||||||
:: param largeur(int) :: la largeur du trait |
:: param largeur(int) :: la largeur du trait |
||||||
:: return (Turtle) :: renvoie un objet de la classe Turtle |
:: return (Turtle) :: renvoie un objet de la classe Turtle |
||||||
|
|
||||||
''' |
''' |
||||||
feutre = trt.Turtle() |
feutre = trt.Turtle() |
||||||
feutre.color(ecriture) |
feutre.color(ecriture) |
||||||
feutre.fillcolor(fond) |
feutre.fillcolor(fond) |
||||||
feutre.pensize(largeur) |
feutre.pensize(largeur) |
||||||
feutre.speed(5) |
feutre.speed(5) |
||||||
return feutre |
return feutre |
||||||
|
|
||||||
def deplacer(feutre, x, y): |
def deplacer(feutre, x, y): |
||||||
'''Lève le feutre, déplace le feutre et abaisse le feutre |
'''Lève le feutre, déplace le feutre et abaisse le feutre |
||||||
|
|
||||||
:: param feutre(Turtle) :: la référence de l'objet Turtle |
:: param feutre(Turtle) :: la référence de l'objet Turtle |
||||||
:: param x(int) :: coordonnée horizontale (abscisse) |
:: param x(int) :: coordonnée horizontale (abscisse) |
||||||
:: param y(int) :: coordonnée verticale (ordonnée) |
:: param y(int) :: coordonnée verticale (ordonnée) |
||||||
:: return (None) :: c'est une fonction sans retour |
:: return (None) :: c'est une fonction sans retour |
||||||
.. effet de bord :: modifie l'état de feutre |
.. effet de bord :: modifie l'état de feutre |
||||||
|
|
||||||
''' |
''' |
||||||
feutre.penup() # On lève la pointe |
feutre.penup() # On lève la pointe |
||||||
feutre.goto(x, y) # On déplace le crayon |
feutre.goto(x, y) # On déplace le crayon |
||||||
feutre.pendown() # On abaisse la pointe |
feutre.pendown() # On abaisse la pointe |
||||||
|
|
||||||
def trace_triangle_equilateral(feutre, cote): |
def trace_triangle_equilateral(feutre, cote): |
||||||
'''Trace un triangle (equilatéral) à l'aide du crayon feutre |
'''Trace un triangle (equilatéral) à l'aide du crayon feutre |
||||||
|
|
||||||
:: param ftr(Turtle) :: la référence de l'objet Turtle |
:: param ftr(Turtle) :: la référence de l'objet Turtle |
||||||
:: param cote(int) :: la valeur en pixel des côtés |
:: param cote(int) :: la valeur en pixel des côtés |
||||||
:: return (None) :: fonction sans retour |
:: return (None) :: fonction sans retour |
||||||
.. effet de bord :: modifie l'état de feutre |
.. effet de bord :: modifie l'état de feutre |
||||||
|
|
||||||
''' |
''' |
||||||
feutre.begin_fill() |
feutre.begin_fill() |
||||||
for x in range(3): |
for x in range(3): |
||||||
feutre.forward(cote) |
feutre.forward(cote) |
||||||
feutre.left(120) |
feutre.left(120) |
||||||
feutre.end_fill() |
feutre.end_fill() |
||||||
feutre.hideturtle() |
feutre.hideturtle() |
||||||
|
|
||||||
def trace_arc(feutre, rayon, angle): |
def trace_arc(feutre, rayon, angle): |
||||||
'''Trace un arc de cercle à l'aide du crayon feutre |
'''Trace un arc de cercle à l'aide du crayon feutre |
||||||
|
|
||||||
:: param ftr(Turtle) :: la référence de l'objet Turtle |
:: param ftr(Turtle) :: la référence de l'objet Turtle |
||||||
:: param rayon(int) :: la valeur en pixel du rayon |
:: param rayon(int) :: la valeur en pixel du rayon |
||||||
:: param angle(int) :: l'angle à tracer (360 pour un cercle) |
:: param angle(int) :: l'angle à tracer (360 pour un cercle) |
||||||
:: return (None) :: fonction sans retour |
:: return (None) :: fonction sans retour |
||||||
.. effet de bord :: modifie l'état de feutre |
.. effet de bord :: modifie l'état de feutre |
||||||
|
|
||||||
''' |
''' |
||||||
feutre.begin_fill() |
feutre.begin_fill() |
||||||
feutre.circle(rayon, angle) |
feutre.circle(rayon, angle) |
||||||
feutre.end_fill() |
feutre.end_fill() |
||||||
feutre.hideturtle() |
feutre.hideturtle() |
||||||
|
|
||||||
def trace_rectangle(feutre, cote): |
def trace_rectangle(feutre, cote): |
||||||
'''Trace un rectangle à l'aide du crayon feutre |
'''Trace un rectangle à l'aide du crayon feutre |
||||||
|
|
||||||
:: param ftr(Turtle) :: la référence de l'objet Turtle |
:: param ftr(Turtle) :: la référence de l'objet Turtle |
||||||
:: param cote(int) :: la valeur en pixel des côtés |
:: param cote(int) :: la valeur en pixel des côtés |
||||||
:: return (None) :: fonction sans retour |
:: return (None) :: fonction sans retour |
||||||
.. effet de bord :: modifie l'état de feutre |
.. effet de bord :: modifie l'état de feutre |
||||||
|
|
||||||
''' |
''' |
||||||
feutre.begin_fill() |
feutre.begin_fill() |
||||||
for x in range(2): |
for x in range(2): |
||||||
feutre.forward(cote) |
feutre.forward(cote) |
||||||
feutre.left(90) |
feutre.left(90) |
||||||
feutre.forward(cote*2) |
feutre.forward(cote*2) |
||||||
feutre.left(90) |
feutre.left(90) |
||||||
feutre.end_fill() |
feutre.end_fill() |
||||||
feutre.hideturtle() |
feutre.hideturtle() |
||||||
|
|
||||||
|
def trace_triangle_isocele(feutre, largeur, hauteur, x, y): |
||||||
# Déclarations des fonctions d'interface (aucun paramètre n'est lié au module Turtle) |
'''Trace un triangle (equilatéral) à l'aide du crayon feutre |
||||||
|
|
||||||
def triangle_equilateral(cote, infos, coordonnees): |
:: param ftr(Turtle) :: la référence de l'objet Turtle |
||||||
'''Trace un triangle (equilatéral) à partir des infos et aux bonnees coordonnées |
:: param largeur(int) :: la valeur en pixel de la largeur |
||||||
|
:: param hauteur(int) :: la valeur en pixel de la hauteur |
||||||
:: param cote(int) :: la valeur en pixel des côtés |
:: param x(int) :: position de depart en x |
||||||
:: param infos(dict) :: un dictionnaire {"écriture":str, "fond":str, "épaisseur":int} |
:: param y(int) :: position de depart en y |
||||||
:: param coordonnees(tuple (int,int) ) :: un tuple (x,y) |
:: return (None) :: fonction sans retour |
||||||
|
.. effet de bord :: modifie l'état de feutre |
||||||
''' |
|
||||||
ecriture = infos['écriture'] |
''' |
||||||
fond = infos['fond'] |
feutre.begin_fill() |
||||||
epaisseur = infos['épaisseur'] |
feutre.goto(x + largeur//2, hauteur + y) |
||||||
x = coordonnees[0] # ou x,y = coordonnees |
feutre.goto(x + largeur, y) |
||||||
y = coordonnees[1] |
feutre.goto(x, y) |
||||||
|
feutre.end_fill() |
||||||
feutre = nouveau_stylo(ecriture, fond, epaisseur) |
feutre.hideturtle() |
||||||
deplacer(feutre, x, y) |
|
||||||
trace_triangle_equilateral(feutre, cote) |
# Déclarations des fonctions d'interface (aucun paramètre n'est lié au module Turtle) |
||||||
|
|
||||||
return feutre |
def triangle_equilateral(cote, infos, coordonnees): |
||||||
|
'''Trace un triangle (equilatéral) à partir des infos et aux bonnees coordonnées |
||||||
def arc_de_cercle(rayon, angle, infos, coordonnees): |
|
||||||
'''Trace un arc de cercle à partir des infos et aux bonnees coordonnées |
:: param cote(int) :: la valeur en pixel des côtés |
||||||
|
:: param infos(dict) :: un dictionnaire {"écriture":str, "fond":str, "épaisseur":int} |
||||||
:: param rayon(int) :: la valeur en pixel du rayon |
:: param coordonnees(tuple (int,int) ) :: un tuple (x,y) |
||||||
:: param angle(int) :: la valeur en ° de l'angle |
|
||||||
:: param infos(dict) :: un dictionnaire {"écriture":str, "fond":str, "épaisseur":int} |
''' |
||||||
:: param coordonnees(tuple (int,int) ) :: un tuple (x,y) |
ecriture = infos['écriture'] |
||||||
|
fond = infos['fond'] |
||||||
''' |
epaisseur = infos['épaisseur'] |
||||||
ecriture = infos['écriture'] |
x = coordonnees[0] # ou x,y = coordonnees |
||||||
fond = infos['fond'] |
y = coordonnees[1] |
||||||
epaisseur = infos['épaisseur'] |
|
||||||
x = coordonnees[0] # ou x,y = coordonnees |
feutre = nouveau_stylo(ecriture, fond, epaisseur) |
||||||
y = coordonnees[1] |
deplacer(feutre, x, y) |
||||||
|
trace_triangle_equilateral(feutre, cote) |
||||||
feutre = nouveau_stylo(ecriture, fond, epaisseur) |
|
||||||
deplacer(feutre, x, y) |
return feutre |
||||||
trace_arc(feutre, rayon, angle) |
|
||||||
|
def triangle_isocele(hauteur, largeur, infos, coordonnees): |
||||||
return feutre |
'''Trace un triangle (equilatéral) à partir des infos et aux bonnees coordonnées |
||||||
|
|
||||||
|
:: param hauteur(int) :: la valeur en pixel de la hauteur |
||||||
|
:: param largeur(int) :: la valeur en pixel de la largeur |
||||||
def rectangle(cote, infos, coordonnees): |
:: param infos(dict) :: un dictionnaire {"écriture":str, "fond":str, "épaisseur":int} |
||||||
'''Trace un rectangle à partir des infos et aux bonnees coordonnées |
:: param coordonnees(tuple (int,int) ) :: un tuple (x,y) |
||||||
|
|
||||||
:: param cote(int) :: la valeur en pixel des côtés |
''' |
||||||
:: param infos(dict) :: un dictionnaire {"écriture":str, "fond":str, "épaisseur":int} |
ecriture = infos['écriture'] |
||||||
:: param coordonnees(tuple (int,int) ) :: un tuple (x,y) |
fond = infos['fond'] |
||||||
|
epaisseur = infos['épaisseur'] |
||||||
''' |
x = coordonnees[0] # ou x,y = coordonnees |
||||||
ecriture = infos['écriture'] |
y = coordonnees[1] |
||||||
fond = infos['fond'] |
|
||||||
epaisseur = infos['épaisseur'] |
feutre = nouveau_stylo(ecriture, fond, epaisseur) |
||||||
x = coordonnees[0] # ou x,y = coordonnees |
deplacer(feutre, x, y) |
||||||
y = coordonnees[1] |
trace_triangle_isocele(feutre, largeur, hauteur, x, y) |
||||||
|
|
||||||
feutre = nouveau_stylo(ecriture, fond, epaisseur) |
return feutre |
||||||
deplacer(feutre, x, y) |
|
||||||
trace_rectangle(feutre, cote) |
def arc_de_cercle(rayon, angle, infos, coordonnees): |
||||||
|
'''Trace un arc de cercle à partir des infos et aux bonnees coordonnées |
||||||
return feutre |
|
||||||
|
:: param rayon(int) :: la valeur en pixel du rayon |
||||||
|
:: param angle(int) :: la valeur en ° de l'angle |
||||||
|
:: param infos(dict) :: un dictionnaire {"écriture":str, "fond":str, "épaisseur":int} |
||||||
|
:: param coordonnees(tuple (int,int) ) :: un tuple (x,y) |
||||||
# Corps du programme principal |
|
||||||
|
''' |
||||||
if __name__ == '__main__': |
ecriture = infos['écriture'] |
||||||
|
fond = infos['fond'] |
||||||
infos_generales = {'écriture':'blue', 'fond':'#FF88FF', 'épaisseur':5} |
epaisseur = infos['épaisseur'] |
||||||
triangle_equilateral(50, infos_generales, (50,100)) |
x = coordonnees[0] # ou x,y = coordonnees |
||||||
arc_de_cercle(75, 360, infos_generales, (200,-200)) |
y = coordonnees[1] |
||||||
rectangle(100, infos_generales, (-200,50)) |
|
||||||
|
feutre = nouveau_stylo(ecriture, fond, epaisseur) |
||||||
|
deplacer(feutre, x, y) |
||||||
|
trace_arc(feutre, rayon, angle) |
||||||
|
|
||||||
|
return feutre |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def rectangle(cote, infos, coordonnees): |
||||||
|
'''Trace un rectangle à partir des infos et aux bonnees coordonnées |
||||||
|
|
||||||
|
:: param cote(int) :: la valeur en pixel des côtés |
||||||
|
:: param infos(dict) :: un dictionnaire {"écriture":str, "fond":str, "épaisseur":int} |
||||||
|
:: param coordonnees(tuple (int,int) ) :: un tuple (x,y) |
||||||
|
|
||||||
|
''' |
||||||
|
ecriture = infos['écriture'] |
||||||
|
fond = infos['fond'] |
||||||
|
epaisseur = infos['épaisseur'] |
||||||
|
x = coordonnees[0] # ou x,y = coordonnees |
||||||
|
y = coordonnees[1] |
||||||
|
|
||||||
|
feutre = nouveau_stylo(ecriture, fond, epaisseur) |
||||||
|
deplacer(feutre, x, y) |
||||||
|
trace_rectangle(feutre, cote) |
||||||
|
|
||||||
|
return feutre |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Corps du programme principal |
||||||
|
|
||||||
|
if __name__ == '__main__': |
||||||
|
|
||||||
|
infos_generales = {'écriture':'blue', 'fond':'#FF88FF', 'épaisseur':5} |
||||||
|
triangle_equilateral(50, infos_generales, (50,100)) |
||||||
|
arc_de_cercle(75, 360, infos_generales, (200,-200)) |
||||||
|
rectangle(100, infos_generales, (-200,50)) |
||||||
|
Loading…
Reference in new issue