# xmas2022.py

Created by schraf

Created on December 19, 2022

1.39 KB

Ma playlist consacrée à la NUMWORKS

```import turtle
from math import *
from kandinsky import *
from random import choice, random
from time import sleep

fill_rect(0,0,320,222,(0,0,0))
nmax, xs, ys, zs = 60, 1, 2.8, 1.3
startFrom, dz = 0, 400

def getX(i, z, sign): return int(160+sign * i * cos(i) * z * xs)
def getY(i, z): return int(10+i * z * ys)

class spirale:
def __init__(self,fg, bg, isLeft, yloc):
self.sign = -2 * isLeft + 1
self.yloc = yloc if yloc > 0 else 1
if isLeft:
(self.bg, self.fg) = (bg, fg)
else:
(self.bg, self.fg) = (fg, bg)
def show(self, i, h):
zoff = i * sin(i)
z = dz / (dz - self.sign * zoff * zs)
x = getX(i, z, self.sign)
y = getY(i * self.yloc + h * cos(800*i) , z)
c = self.fg if zoff + self.sign * pi / 4 < 0 else self.bg
if sum(get_pixel(x,y)) == 0 or h == 1:
s = 1 + int(3 * i) % 2
fill_rect(x, y, s, s, c)

def aff(spiral, h = 0):
i = -startFrom
while i < nmax + startFrom:
if i >= 0 and i <= nmax: spiral.show(i, h)
i += 0.08

rouge = spirale((255,0,0), (68,0,0), True, 1)
cyan = spirale((0,255,204), (0, 86, 51), False, 1)

for v in rouge,cyan: aff(v)
while True:
rvb = choice([(1,1,0),(0,1,1),(0,1,0),(0,0,1),(1,0,1)])
c1 = tuple(255 * rvb[i] for i in rvb)
c2 = tuple(70 * rvb[i] for i in rvb)
decos = spirale(c1, c2, True, 1)
aff(decos, 1)
sleep(random())```