Browse Source

Transférer les fichiers vers 'squelette dessiner'

master
Jajak 1 year ago
parent
commit
609266caf1
  1. 180
      squelette dessiner/squelette_dessiner.py

180
squelette dessiner/squelette_dessiner.py

@ -0,0 +1,180 @@
"""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_isocele(feutre, cote, x, y):
"""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()
feutre.goto(x + cote, y )
feutre.goto(x +(cote // 2), y + (cote // 3))
feutre.goto(x, y)
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_rectangle(feutre, largeur, longueur):
feutre.begin_fill()
feutre.forward(longueur)
feutre.right(90)
feutre.forward(largeur)
feutre.right(90)
feutre.forward(longueur)
feutre.right(90)
feutre.forward(largeur)
feutre.end_fill()
feutre.hideturtle()
def trace_carre(feutre, cote, hauteur):
feutre.begin_fill()
for x in range(4):
feutre.forward(cote)
feutre.left(90)
feutre.forward(hauteur)
feutre.end_fill()
feutre.hideturtle()
# Déclarations des fonctions publiques
def triangle_isocele(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_isocele(feutre, cote, x, y)
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(largeur, longueur, info_feutre, coordonnees):
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_rectangle(feutre, largeur, longueur)
def carre(cote, hauteur, info_feutre, coordonnees):
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_carre(feutre, hauteur, cote)
# Instructions du programme principal
if __name__ == '__main__':
informations_feutre = {'écriture':"blue", 'fond':'#FF88FF', 'épaisseur':5}
triangle_isocele(140, informations_feutre, (190,-5))
rectangle(50, 30, informations_feutre, (200,0))
rectangle(10, 200, informations_feutre, (-100,0))
Loading…
Cancel
Save