Dessiner avec Python#
Python peut être utilisé pour faire des dessins.
Fonctions à disposition#
from tdoc import svg
def creation_image(largeur, hauteur, couleur):
global img
img = svg.Image(largeur, hauteur, stroke='black', style='width: 100%; height: 100%')
rectangle(0, 0, largeur, hauteur, couleur)
def rectangle(x, y, largeur, hauteur, remplissage, bord="transparent"):
img.rect(x, y, largeur, hauteur, stroke=bord, fill=remplissage)
def triangle(point_1, point_2, point_3, remplissage, bord="transparent"):
img.polygon(point_1, point_2, point_3, stroke=bord, fill=remplissage)
def cercle(centre_x, centre_y, rayon, remplissage, bord="transparent"):
img.circle(centre_x, centre_y, rayon, stroke=bord, fill=remplissage)
def ellipse(centre_x, centre_y, rayon_x, rayon_y, remplissage, bord="transparent"):
img.ellipse(centre_x, centre_y, rayon_x, rayon_y, stroke=bord, fill=remplissage)
def ligne(x1, y1, x2, y2, couleur, epaisseur):
img.line(x1, y1, x2, y2, stroke=svg.Stroke(couleur, width=epaisseur))
def texte(x, y, texte, couleur, taille):
font = f"font: bold italic {taille}px serif"
img.text(x, y, texte, stroke='transparent', fill=couleur, style=font)
def rendu():
render(img)
# Affiche l'image
render(img)
Voici la définition de fonctions de base pour dessiner des rectangles, des triangles, des cercles, des lignes, etc.
- creation_image(largeur, hauteur, couleur)#
Crée une image.
- Paramètres:
largeur,hauteur -- Les dimensions de l'image.
couleur -- La couleur de fond de l'image.
- rectangle(x, y, largeur, hauteur, remplissage, bord='transparent')#
Ajoute un rectangle sur l'image.
- Paramètres:
x,y -- L'origine du rectangle (sommet en haut à gauche).
largeur,hauteur -- Les dimensions du rectangle.
remplissage -- La couleur de remplissage du rectangle.
bord -- La couleur du bord du rectangle (par défaut transparent).
- triangle(point_1, point_2, point_3, remplissage, bord='transparent')#
Ajoute un triangle sur l'image.
- Paramètres:
point_1,point_2,point_3 -- Les coordonnées des trois sommets sous la forme
(x1, y1).remplissage -- La couleur de remplissage du triangle.
bord -- La couleur du bord du triangle (par défaut transparent).
- cercle(x, y, r, remplissage, bord='transparent')#
Ajoute un cercle sur l'image.
- Paramètres:
x,y -- Les coordonnées du centre du cercle.
r -- Le rayon du cercle.
remplissage -- La couleur de remplissage du cercle.
bord -- La couleur du bord du cercle (par défaut transparent).
- ellipse(x, y, rx, ry, remplissage, bord='transparent')#
Ajoute une ellipse sur l'image.
- Paramètres:
x,y -- Les coordonnées du centre de l'ellipse.
rx,ry -- Les rayons horizontaux et verticaux de l'ellipse.
remplissage -- La couleur de remplissage de l'ellipse.
bord -- La couleur du bord de l'ellipse (par défaut transparent).
- ligne(x1, y1, x2, y2, couleur, epaisseur)#
Ajoute une ligne sur l'image.
- Paramètres:
x1,y1 -- Les coordonnées du début de la ligne.
x2,y2 -- Les coordonnées de la fin de la ligne.
couleur -- La couleur de la ligne.
epaisseur -- L'épaisseur de la ligne.
- texte(x, y, texte, couleur, taille)#
Ajoute du texte sur l'image.
- Paramètres:
x,y -- Les coordonnées du début du texte (ligne de base).
texte -- Le texte à afficher.
couleur -- La couleur du texte.
epaisseur -- La taille des caractères en pixels (px).
Exercices de base#
Exercice 1#
Changez la couleur de fond de l'image en vert. Pour cela, le paramètre de la couleur peut prendre la valeur d'une couleur en anglais comme
"green","blue","purple", etc.Changez la couleur du rectangle en blanc
Changez la couleur du contour en une couleur de votre choix en spécifiant la notation hexadécimale
#.... Vous trouverez une liste de ces couleurs hexadécimale iciDéplacez le rectangle en haut à droite du dessin
Ajoutez un cercle et un triangle de la taille et la couleur de votre choix à ce dessin
creation_image(600, 400, "#CCFFFF")
rectangle(100, 200, 150, 150, "#F7E4E1", "black")
Exercice 2#
Observez la fonction ci-dessous. Celle-ci permet de créer une maison à différents endroits du dessin en fonction des paramètres de coordonnées
xety. Appelez cette fonction 3x pour dessiner 3 maisons.Modifiez le corps de la fonction
maisonafin d'y ajouter une porte bruneAjoutez un paramètre
couleur_toitpermettant de préciser la couleur du toit d'une maison au moment de l'appel de la fonction. Ainsi, l'appelmaison(100, 100, "blue")devrait dessiner une maison au toit bleu.
def maison(x, y):
rectangle(x, y, 150, 150, "gray", "black")
triangle((x, y), (x+150, y), (x+80, y-100), "brown")
creation_image(600, 400, "#f0ffffff")
#Appelez la fonction ici
Exercice 3#
Complétez le smiley ci-dessous avec 2 cercles pour les yeux, et un rectangle pour la bouche.
En vous inspirant du code du précédent exercice, définissez une fonction
smiley(x, y)permettant de dessiner le smiley que vous avez créé aux coordonnées(x, y)lorsqu'on appelle la fonctionUtilisez la fonction 3x pour dessiner 3 smileys.
creation_image(900, 900, "black")
cercle(150, 150, 100, "yellow")
Exercice 4#
Le code ci-dessous permet de dessiner des cercles les uns à côtés des autres
Modifiez ce programme de sorte qu'il y ait plus d'espace entre les cercles.
Modifiez ce programme en y ajoutant une variable
rayon = 5, de sorte que chaque cercle ait un rayon plus grand que le précédent.
creation_image(600, 100, "black")
position_x = 25
while position_x < 600:
cercle(position_x, 50, 12.5, "purple", "white")
position_x += 25