Réponse :
Explications :
Bonjour.
Sans turtle, on va utiliser le module de traitement d'images PIL (ou pillow)
Ce module permet de traiter des photos, mais aussi d'en créer (partie Image) et d'en tracer (partie ImageDraw)
Je vais faire avec toi le drapeau de la Palestine, bon sujet géométrique.
Analyse
Description
il a sa propre page wikipedia : https://fr.wikipedia.org/wiki/Drapeau_de_la_Palestine
On va y trouver les infos de couleur , de dimensions, et de polygones.
En suivant les liens, on arrive ici : description du drapeau
en anglais, mais l'image est explicite.
https://www.fotw.info/flags/ps.html#cst
Géométrie
Le drapeau fait 1:2 c'est à dire 1 de haut pour 2 de large.
Sur l'image, c'est 3:6 ce qui est conforme à la proportion
Un grand rectangle noire 1:6 sur un
Un grand rectangle blanc 1:6 sur un
Un grand rectangle vert
Puis
un triangle isocèle rouge s'inscrit PAR DESSUS les rectangles :
le bord gauche du drapeau est sa base ET
sa hauteur fait 2 sur l'axe médian du drapeau.
Couleurs
Trouvées ici (english)
https://commons.wikimedia.org/wiki/File_talk:Flag_of_Palestine.svg#Continued_discussion_about_the_color
Les codes couleurs
noir="#000"
blanc="#fff"
vert="#009639"
rouge="#ef3340"
Codage Etapes
invoquer les modules d'imagerie Image et Imagedraw de la bibliothèque PIL
Paramétrer la hauteur et la largeut
haut=600
largeur=1200
Créer une image vierge avec ces dimensions, fond blanc
Définir un calque de la taille de l'image pour tracer (drawing)
Attention !
Les coordonnées en imagerie :
x va de gauche à droite : 0 à 1199 pour notre largeur
y va de haut en bas : 0 à 599 pour notre hauteur
Le coin gauche (x=0) en haut (y=0) : (0,0)
droite (x= largeur) en haut (y=0) : (largeur,0)
gauche , bas (y=haut) : (0,haut)
droit,bas : (largeur, haut)
Rectangle noir : sa hauteur c'est haut/3
un rectangle se définit par la diagonale (gauche-haut , droit-bas)
Pour le rectangle noir :
gauche-haut : (0,0) , droit-bas (largeur, haut/3)
haut/3 : on peut avoir un problème
En effet cette coordonnée doit être un entier (int) pas un réel (float)
Je vais définir une variable hbande = int(haut/3) pour être tranquille.
Pour le rectangle blanc :
on le positionne sous le noir donc :
gauche-haut : (0,hbande) , droit-bas (largeur, 2*hbande)
Et enfin pour le vert :
gauche-haut : (0, 2*hbande) , droit-bas (largeur, haut)
Puis :
on trace le polygone rouge
Coordonnées : base gauche-haut (0,0)
sommet ( largeur/3 , haut/2) (en faisant attention aux int)
base gauche-bas (0,haut)
CODE
Tu peux le coder dans un interpréteur python3 en ligne.
cherche "trinket python3"
Le projet est ici : https://trinket.io/python3/cf53c5a512
tu pourras ainsi l'exécuter, changer les paramètres haut et largeur, sauver l'image...
Au revoir.
from PIL import Image
from PIL import ImageDraw
#
new_image = Image.new('RGB', (largeur,haut), 'white')
drawing_object = ImageDraw.Draw(new_image)
hbande=int(haut/3)
ltriang=int(largeur/3)
drawing_object.rectangle( (0, 0, largeur, hbande), fill = noir, outline = None)
#drawing_object.rectangle( (0, hbande, largeur, 2*hbande), fill = blanc, outline = None)
drawing_object.rectangle( (0, 2*hbande, largeur, haut), fill = vert, outline = None)
#bordure en option
drawing_object.rectangle( (0, 0, largeur, haut), fill = None , outline = noir )
img1 = ImageDraw.Draw(new_image)
img1.polygon([(0,0), (ltriang,int(haut/2)), (0,haut)], fill = rouge)
new_image.save('drapeau_palestine.png')
Copyright © 2024 ELIBRARY.TIPS - All rights reserved.
Lista de comentários
Réponse :
Explications :
Bonjour.
Sans turtle, on va utiliser le module de traitement d'images PIL (ou pillow)
Ce module permet de traiter des photos, mais aussi d'en créer (partie Image) et d'en tracer (partie ImageDraw)
Je vais faire avec toi le drapeau de la Palestine, bon sujet géométrique.
Analyse
Description
il a sa propre page wikipedia : https://fr.wikipedia.org/wiki/Drapeau_de_la_Palestine
On va y trouver les infos de couleur , de dimensions, et de polygones.
En suivant les liens, on arrive ici : description du drapeau
en anglais, mais l'image est explicite.
https://www.fotw.info/flags/ps.html#cst
Géométrie
Le drapeau fait 1:2 c'est à dire 1 de haut pour 2 de large.
Sur l'image, c'est 3:6 ce qui est conforme à la proportion
Un grand rectangle noire 1:6 sur un
Un grand rectangle blanc 1:6 sur un
Un grand rectangle vert
Puis
un triangle isocèle rouge s'inscrit PAR DESSUS les rectangles :
le bord gauche du drapeau est sa base ET
sa hauteur fait 2 sur l'axe médian du drapeau.
Couleurs
Trouvées ici (english)
https://commons.wikimedia.org/wiki/File_talk:Flag_of_Palestine.svg#Continued_discussion_about_the_color
Les codes couleurs
noir="#000"
blanc="#fff"
vert="#009639"
rouge="#ef3340"
Codage Etapes
invoquer les modules d'imagerie Image et Imagedraw de la bibliothèque PIL
Paramétrer la hauteur et la largeut
haut=600
largeur=1200
Créer une image vierge avec ces dimensions, fond blanc
Définir un calque de la taille de l'image pour tracer (drawing)
Attention !
Les coordonnées en imagerie :
x va de gauche à droite : 0 à 1199 pour notre largeur
y va de haut en bas : 0 à 599 pour notre hauteur
Le coin gauche (x=0) en haut (y=0) : (0,0)
droite (x= largeur) en haut (y=0) : (largeur,0)
gauche , bas (y=haut) : (0,haut)
droit,bas : (largeur, haut)
Rectangle noir : sa hauteur c'est haut/3
un rectangle se définit par la diagonale (gauche-haut , droit-bas)
Pour le rectangle noir :
gauche-haut : (0,0) , droit-bas (largeur, haut/3)
Attention !
haut/3 : on peut avoir un problème
En effet cette coordonnée doit être un entier (int) pas un réel (float)
Je vais définir une variable hbande = int(haut/3) pour être tranquille.
Pour le rectangle blanc :
on le positionne sous le noir donc :
gauche-haut : (0,hbande) , droit-bas (largeur, 2*hbande)
Et enfin pour le vert :
gauche-haut : (0, 2*hbande) , droit-bas (largeur, haut)
Puis :
on trace le polygone rouge
Coordonnées : base gauche-haut (0,0)
sommet ( largeur/3 , haut/2) (en faisant attention aux int)
base gauche-bas (0,haut)
CODE
Tu peux le coder dans un interpréteur python3 en ligne.
cherche "trinket python3"
Le projet est ici : https://trinket.io/python3/cf53c5a512
tu pourras ainsi l'exécuter, changer les paramètres haut et largeur, sauver l'image...
Au revoir.
from PIL import Image
from PIL import ImageDraw
#
haut=600
largeur=1200
new_image = Image.new('RGB', (largeur,haut), 'white')
noir="#000"
blanc="#fff"
vert="#009639"
rouge="#ef3340"
drawing_object = ImageDraw.Draw(new_image)
hbande=int(haut/3)
ltriang=int(largeur/3)
drawing_object.rectangle( (0, 0, largeur, hbande), fill = noir, outline = None)
#drawing_object.rectangle( (0, hbande, largeur, 2*hbande), fill = blanc, outline = None)
drawing_object.rectangle( (0, 2*hbande, largeur, haut), fill = vert, outline = None)
#bordure en option
drawing_object.rectangle( (0, 0, largeur, haut), fill = None , outline = noir )
img1 = ImageDraw.Draw(new_image)
img1.polygon([(0,0), (ltriang,int(haut/2)), (0,haut)], fill = rouge)
new_image.save('drapeau_palestine.png')