import turtle from kandinsky import fill_rect from time import sleep tt = turtle tt.color((240,)*3) tt.hideturtle() tt.speed(0) az=['@R[?OXM_N`OaQ_R]R_SaTaU`W]Y[','@SA?PKNUL_N]QXRYT[UaOcL`Q]Z\\', '@R\\?SRJ^ObUcW^Y[','@Q[?NVI^MaQd]DZAWAR[Pi','@O[?S\\SYSXNULkX\\', '@R\\?T[WTVRRRKuOwSvPiLgObU^[[','@UZ?OXNaP`RaS^T\\TgQuLvGrS`[[', '@TA?PKOWLbN^QZRYTXS_U_V`Y\\Z[','@QV?QWQWQX@PZ?NeRcW[', '@UW?UWVYVY@U[?SgOtKtDqT^]\\','@TA?PKNXKcN_OZSXXYQ]O]P`Vb[\\', '@QP?UNXBXATAQZOg','@LV?IhJcOXQeQ\\TZWcY]\\[','@NW?N[L`McO`PZSYVfV`Z[', '@N\\?M`O`PaT_RZQYOYOZOZR`V\\X\\','@PS?N_LlKwLhQVVXYZU`SbN_X\\\\\\', '@VZ?QWP^Q`T`T]U\\TcSlSq','@PX?O\\O_ObP^Q[SYT\\V\\X[','@XV?QYP\\P]P_WaWcVeRhOg', '@SA?OQMaJq@AL?ALfKfK','@MZ?L^L`MaP_Q\\SYQ_RaTbW`Y^Z[','@MX?L^LeMePdR[TVU]Y[Z[', '@LX?K\\KaLbO`O]P[PkW^UWW\\Y\\[[','@NY?RaV_Y[@TW?TWNaNa','@PZ?O_PaQaT`T\\VYSoOyKzFuUb\\\\', '@M\\?OXTXTXUZR\\P^\\^QrMtFqU^[\\','@N[?S[SWQWMYN`QaU`V]X[@RR?RRPUPU'] def move(x,y):tt.goto(x-160,110-y) def coord(a,b,c,d,t): return a*(1-t)**3+3*b*t*(1-t)**2+3*c*t*t*(1-t)+d*t**3 def bezier(x,y,l,cc): tt.pendown() t=0 for i in range(11): u=coord(l[0],l[2],l[4],l[6],t) v=coord(l[1],l[3],l[5],l[7],t) move(x+cc*u,y+cc*v) t+=.1 def f(l):return [ord(c) - 65 for c in l] def lettre(x,y,svg,cc): i = 0 while i<len(svg): if svg[i]=="@": l=[svg[i+1],svg[i+2]] tt.penup() move(x+cc*f(l)[0],y+cc*f(l)[1]) i+=3 elif svg[i]=="?":i+=1 else: for j in range(6):l.append(svg[i+j]) bezier(x,y,f(l),cc) l=[svg[i+4],svg[i+5]] i+=6 def phrase(x,y,txt,cc=1,ps=2): tt.pensize(ps) for i,c in enumerate(txt): e=0 if i>0: if txt[i-1] in 'cghjpsuwyE': e=3 if c!=" ": if c=='E': c='{' lettre(x+cc*(12*i+e),y,az[ord(c)-97],cc) def eff(s=1): if s:sleep(1) fill_rect(0,0,320,222,(63,80,63)) eff(0) phrase(15,10,"les mathEmatiques") phrase(125,50,"ne sont pas") phrase(30,90,"une moindre immensitE") phrase(10,135,"que la mer") phrase(155, 150, "victor hugo",ps=1) eff() phrase(10,30,"je est un autre",1.5) phrase(60, 140, "arthur rimbaud",ps=1) eff() phrase(15, 10, "les yeux sont aveugles") phrase(80, 60, "il faut chercher") phrase(120, 110, "avec le coeur") phrase(35, 165, "antoine de saint exupEry",.8,1) eff() phrase(5,0,"je pense",1.7) phrase(30,65,"donc je suis",1.7) phrase(60, 160, "renE descartes",ps=1)