BIU IA - Python
23 Janvier 2025
Télécharger le fichier art.py et exemple.py et placez-les dans un même dossier.
Ouvrez exemple.py
.
La première ligne importe des nouvelles fonctionnalités (qui sont
définies dans le fichier art.py
) :
import art
Ensuite, vous avez un aperçu des fonctions que vous pouvez utiliser
grâce à art
:
art.add_line(x1,y1,x2,y2,couleur)
trace une ligne de
couleur couleur
entre le point (x1,y1)
et le
point (x2,y2)
,art.add_rect(x,y,largeur,hauteur,couleur)
trace un
rectange de couleur couleur
dont le coin en haut à gauche
est (x,y)
et de largeur largeur
et d’hauteur
hauteur
,art.add_circle(x,y,r,couleur)
trace un cercle de
couleur couleur
centré en (x,y)
et de rayon
r
,art.add_txt(x,y,texte,couleur)
écrit texte
en couleur couleur
à la position (x,y)
.art.add_plop(n)
: choisixt une couleur au hasard et
ajoute n
cercles de cette couleur avec des rayons
aléatoires et à des positions aléatoires.draw()
: affiche votre oeuvre à l’écran.En regardant le code, commentez sur les types des valeurs utilisées dans les fonctions.
On voit que les coordonnées sont des float
, les couleurs
et le texte à écrire des str
. La fonction
art.add_plop(n)
ne peut accepter que des int
(nombres entiers).
On remarque qu’on doit changer le code à deux endroits pour changer la couleur des deux yeux. Une façon de rendre cela plus lisible est d’introduire une nouvelle variable :
col_yeux
telle que les yeux
se dessineront dans la couleur qui se trouve dans la variable
col_yeux.
# les yeux
150, 150, 10, "blue")
art.add_circle(250, 150, 10, "blue") art.add_circle(
# les yeux
= "blue"
col_yeux 150, 150, 10, col_yeux)
art.add_circle(250, 150, 10, col_yeux) art.add_circle(
Attention à ne pas mettre de guillemets autour de
col_yeux
quand on appelle la fonction
art.add_circle
. On veut bien parler du contenu de
la variable col_yeux
. Avec les guillemets, on
parle d’une chaîne de caractères qui contient le texte “col_yeux” et qui
n’a aucun lien avec la variable.
195,150,10,20,"red") art.add_rect(
Dessinez le drapeau japonais : un rectangle noir de largeur 200 et de hauteur 100, avec un cercle de rayon 25 au milieu. Essayez de le mettre au milieu de la fenêtre, sachant que la fenêtre mesure 1000 par 1000.
Introduire une variable auteur
qui contient votre
nom. Faites en sorte d’afficher le texte “Art work by Bob” en haut de la
fenêtre où Bob est remplacé par votre nom. On pourra utiliser la
concaténation: s1+s2
renvoie la chaîne de
caractères s1
suivi de la chaîne de caractères
s2
. Par exemple "Hello "+"Bob"
est la chaîne
"Hello Bob"
. Si s
est une variable contenant
du texte, "Hello "+s
concatène "Hello"
avec le
contenu de s
.
Introduire une variable h
(initialisée à 100) et
modifiez votre code pour que le drapeau s’affiche au centre de la
fenêtre, avec une hauteur h
, une largeur 2*h
(*
désigne la multiplication en Python) et un cercle de
rayon h/4
(/
désigne la division en
Python).
Introduire deux variables x
et y
(toutes deux initialisées à 500) de façon à ce que votre drapeau soit
centré en (x,y)
.
import art
# rectangle : on superpose un rectangle noir et un blanc plus petit
400,450,200,100,"black")
art.add_rect(405,455,190,90,"white")
art.add_rect(
# cercle rouge
500,500,25,"red")
art.add_circle(
art.draw()
= "Florent"
name 0,0,"Art Work by "+name, "black") art.add_txt(
h/4
. On calcule bien les coins des rectangles pour avoir
:import art
= "Florent"
name 0,0,"Art Work by "+name, "black")
art.add_txt(
= 100
h
# rectangle : on superpose un rectangle noir et un blanc plus petit
500-h,500-h/2,2*h,h,"black")
art.add_rect(500-h+5,500-h/2+5,2*h-10,h-10,"white")
art.add_rect(
# cercle rouge
500,500,h/4,"red")
art.add_circle(
art.draw()
import art
= "Florent"
name 0,0,"Art Work by "+name, "black")
art.add_txt(
=400
x=400
y= 200
h # rectangle : on superpose un rectangle noir et un blanc plus petit
-h,y-h/2,2*h,h,"black")
art.add_rect(x-h+5,y-h/2+5,2*h-10,h-10,"white")
art.add_rect(x
# cercle rouge
/4,"red")
art.add_circle(x,y,h
art.draw()
Testez le code suivant :
import art
=10
c"black")
art.add_rect(c,c,c,c,=2*c
c"black")
art.add_rect(c,c,c,c,=2*c
c"black")
art.add_rect(c,c,c,c,=2*c
c"black")
art.add_rect(c,c,c,c,=2*c
c"black")
art.add_rect(c,c,c,c,
art.draw()
On affiche 5 carrés. Le premier a un côté de taille 10 et son angle en haut à gauche est en (10,10). Pour chaque carré, le carré suivant à son coin gauche sur le coin en bas à droite du carré précédent et a un côté deux fois plus long que le précédent.
On fait pareil : on double le rayon et on décale le centre de la valeur de ce rayon afin que les cercles soit tangents.
import art
=10
r=10
c"black")
art.add_circle(c,c,r,=2*r
r=c+r
c"black")
art.add_circle(c,c,r,=2*r
r=c+r
c"black")
art.add_circle(c,c,r,=2*r
r=c+r
c"black")
art.add_circle(c,c,r,=2*r
r=c+r
c"black")
art.add_circle(c,c,r,=2*r
r=c+r
c"black")
art.add_circle(c,c,r, art.draw()