Article épinglé

BTSA Aménagements paysagers - réforme 2024 - liens à creuser

Article présentant ma quête de sens et de contenus dans le cadre de la mise en place de la réforme du BTSA Aménagements paysagers pour la re...

mercredi 12 février 2020

Couleurs rouge vert bleu

Objectif

Comme nous sommes en plein pixels, je me suis demandé comment balayer avec script une partie des couples de 0,0,0 à 255,255,255 et éviter de créer 255^3 = 16 millions pixels

Script

r,v,b=0,0,0

for i in range (766):
    print(r,v,b)
    b=b+1
    if b>255:
        v=v+1
        b=255
        if v>255:
            v=255
            r=r+1

Shell

>>> %Run zzz.py
0 0 0
0 0 1
0 0 2
......
0 0 254
0 0 255
0 1 255
0 2 255
.....
0 254 255
0 255 255
1 255 255
2 255 255
....
254 255 255
255 255 255
>>> 

mardi 11 février 2020

Python, image et pixels avec Pillow


Création d'une image avec des couleurs aléatoires puis modification de cette dernière.

Bibliothèque à installer sous l'IDE Thonny

Voir Pillow qui remplace PIL sous python 3


Création d'une image de 5x5 pix² puis inversion des couleurs puis mise en niveau de gris

Script

from PIL import Image
from random import *

#taille image
largeur =5
hauteur=5

# creation image 5 pix² couleur aleatoire
img=Image.new("RGB",(largeur,hauteur),(255,255,255))

print("test 1 creation de l'image source - enregistrement 5par5pix-1.jpg")

for x in range (largeur):
    for y in range (hauteur):
        b=randint(0,255)
        v=randint(0,255)
        r=randint(0,255)

        img.putpixel((x,y),(r,v,b))
        print(x,y,r,v,b)
img.save("5par5pix-1.jpg")

# inversion couleur
print("test 2 Inversion couleur - enregistrement 5par5pix-2.jpg")

img=Image.open("5par5pix-1.jpg")
for x in range (largeur):
    for y in range (hauteur):
        r,v,b=img.getpixel((x,y))
        nr,nv,nb=255-r,255-v,255-b
        img.putpixel((x,y),(nr,nv,nb))
        print(x,y,nr,nv,nb)
img.save("5par5pix-2.jpg")        

# mise en niveau de gris
print("test 3 niveau de gris - enregistrement 5par5pix-3.jpg")

img=Image.open("5par5pix-1.jpg")
for x in range (largeur):
    for y in range (hauteur):
        r,v,b=img.getpixel((x,y))
        gris=int((r+v+b)/3)
        img.putpixel((x,y),(gris,gris,gris))
        print(x,y,gris,gris,gris)
img.save("5par5pix-3.jpg") 

lundi 10 février 2020

Python, tortue et JPO


Simulation en python représentant la marche aléatoire d'une tortue avec dans une boucle les instructions suivantes:
- 1 pas
- rotation de 90° sur la gauche ou sur la droite

La question posée est :
Sortirai-je de ma fenêtre?

La simulation au bout de 36 000 itérations semble confirmer que même sans direction j'avance et m'éloigne de mon point de départ ce qui peut réconforter en cette période de portes ouvertes ;)))


Fort de cette première simulation, en voici une seconde lancée ce dimanche. Là encore ma tortue me quitte. Dernières coordonnées avant disparition dans les limbes:
x=440 et y=-1104

PS: Le cadre rouge représente un rectangle de 1000x800 pix²


Script 

# import bibliotheque necessaire
from turtle import *
from random import *

### definition du terrain de jeu
larg,haut =1000, 800 # le (0,0) est en haut à gauche, et le pt (larg,haut) est en bas droite
setup(larg+100,haut+100)
n=100000
u=4

# limite rouge
penup()
goto (larg/2,0)
pendown()
color('red')
left(90),forward(haut/2),left(90),forward(larg),left(90),forward(haut),left(90),forward(larg),left(90),forward(haut/2)
penup()
color('black')
home()
pendown()


# marche aléatoire
compteur_pas=0
for k in range(n):
    forward(u) # avance de u
    compteur_pas= compteur_pas+1
    print(compteur_pas,"Coord Turtle=",position()) # affiche nbre pas et coord x,y de turtle 
    
    # choix aleatoire a gauche ou a droite?
    a=randint(0,1)
    if (a==0) :
        left(90)
    else :
        right(90)