You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
killian 022b2cf33b Transférer les fichiers vers '' 2 years ago
README.md Mise à jour de 'README.md' 2 years ago
forme.py Transférer les fichiers vers '' 2 years ago
rue.py Ajouter 'rue.py' 2 years ago

README.md

projet_killian_quentin

'''Ce fichier permet de dessiner deux formes à l'aide des deux fonctions suivantes

  • triangle_equilateral(cote, infos, coordonnees)
  • arc_de_cercle(rayon, angle, infos, coordonnees)
  • rectangle(cote, infos, coordonnees)

Exemples d'utilisation :

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(50, infos_generales, (50,100))

'''

Importation

import turtle as trt import random as rd

Pas de classes

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 ftr(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 ftr(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 d'interface (aucun paramètre n'est lié au module Turtle)

def triangle_equilateral(cote, infos, coordonnees): '''Trace un triangle (equilatéral) à 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_triangle_equilateral(feutre, cote)

return feutre

def arc_de_cercle(rayon, angle, infos, coordonnees): '''Trace un arc de cercle à partir des infos et aux bonnees coordonnées

:: 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)

'''
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_arc(feutre, rayon, angle)

return feutre

def trace_rectangle(feutre, largeur, hauteur): '''Trace un rectangle à l'aide du crayon feutre

:: param ftr(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(2):
    feutre.forward(largeur)
    feutre.left(90)
    feutre.forward(hauteur)
    feutre.left(90)
feutre.end_fill()
feutre.hideturtle()

def rectangle(largeur, hauteur, infos, coordonnees): '''Trace un rectangle à 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 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, largeur, hauteur)

return feutre

Corps du programme principal

if name == 'main':

infos_generales = {'écriture':'blue', 'fond':'#FF88FF', 'épaisseur':5}
triangle_equilateral(75, infos_generales, (-200,100))


infos_generales = {'écriture':'blue', 'fond':'#FF88FF', 'épaisseur':5}
triangle_equilateral(75, infos_generales, (-300,100))


infos_generales = {'écriture':'blue', 'fond':'#FF88FF', 'épaisseur':5}
triangle_equilateral(75, infos_generales, (10,100))


infos_generales = {'écriture':'blue', 'fond':'#FF88FF', 'épaisseur':5}
triangle_equilateral(75, infos_generales, (-100,100))
                
infos_generales = {'écriture':'blue', 'fond':'#FF88FF', 'épaisseur':5}
rectangle(50, infos_generales, (-200,100))

killian j ai creer des rectangles