I cerchi successivi si sviluppano verso l’esterno finché il raggio non diventa troppo piccolo
import pygame
TITOLO ="Immagine ricorsiva: cerchi 1"
DIM =800
raggio =0.2*DIM # Primo raggio
FATTORE=0.5 # Fattore di riduzione
XC =DIM/2 # Posizione iniziale
YC =DIM/2
red =255 # Colore iniziale
green =255
blue =127
def cerchio(r,g,b, x,y, ra):
pygame.draw.circle(screen, (r,g,b), (x,y), ra)
if(ra > 2):
r2 =0.8*r # più scuro
g2 =0.8*g
b2 =0.8*b
ra2=FATTORE*ra # più piccolo
cerchio(r2,g2,b2, x+ra,y-ra, ra2)
pygame.init()
screen=pygame.display.set_mode((DIM, DIM))
pygame.display.set_caption(TITOLO)
cerchio(red,green,blue, XC,YC, raggio)
pygame.display.flip()
input("Premi INVIO per continuare...")
pygame.quit()
Aggiungi una chiamata ricorsiva con la destinazione Nord-Ovest
...
cerchio(r2,g2,b2, x+ra,y-ra, ra2)
cerchio(r2,g2,b2, x-ra,y-ra, ra2)
...
Aggiungi una chiamata ricorsiva con la destinazione Sud-Ovest
...
cerchio(r2,g2,b2, x+ra,y-ra, ra2)
cerchio(r2,g2,b2, x-ra,y+ra, ra2)
...
Aggiungi due chiamate ricorsive
...
cerchio(r2,g2,b2, x+ra,y-ra, ra2)
cerchio(r2,g2,b2, x-ra,y-ra, ra2)
cerchio(r2,g2,b2, x+ra,y-ra, ra2)
...
Le 4 chiamate creano uno schema molto originale
...
cerchio(r2,g2,b2, x-ra,y-ra, ra2)
cerchio(r2,g2,b2, x+ra,y-ra, ra2)
cerchio(r2,g2,b2, x-ra,y+ra, ra2)
cerchio(r2,g2,b2, x+ra,y+ra, ra2)
...
Fai esperimenti cambiando le costanti
DIM =1000
raggio =0.24*DIM # Primo raggio più grande
FATTORE=0.5 # Fattore di riduzione
XC =DIM/2 # Posizione iniziale
YC =DIM/2
red =255 # Colore iniziale bianco
green =255 # ...
blue =255 # ...
fr =0.9 # Fattori di riduzione diversi per i tre colori primari
fg =0.7
fb =0.8