ondes_mouvantes.py

Created by julien-bernon

Created on April 08, 2023

849 Bytes


from kandinsky import *
from math import *
import time

def degrade(nb):
    def valeur(x):
        x = x%150
        if 0<x<100:
            return int(0.1*x*(100-x))
        else : return 0
    return [(valeur(x),valeur(x+50),valeur(x+100)) for x in range(0,150,150//nb)]
  
cpt=0
couleurs=degrade(35)
while True :
    
    pos_x = 0
    dx=[2*int(12+8*sin(3*pi*(i/16+cpt/45))) for i in range(16)]
    Sx = [sum(dx[:i]) for i in range(len(dx))]
    dy=[2*int(8+6*sin(2.5*pi*(i/16+cpt/40))) for i in range(25)]
    Sy = [sum(dy[:i]) for i in range(len(dy))]
    for j in range(len(dx)):
        fill_rect(0,Sy[i],320,dy[i],(0,0,0))
        for i in range(16):
            fill_rect(Sx[j],Sy[i],dx[j],dy[i],(0,0,0))
            fill_rect(Sx[j]+1,Sy[i]+1,dx[j]-2,dy[i]-2,couleurs[(j+i*16)%35])
    cpt += 1
    time.sleep(0.03)