Ricorsione e cerchi – 1

I cerchi successivi si sviluppano verso l’interno

import pygame

TITOLO ="Immagine ricorsiva: cerchi 1"
DIM    =800
raggio =0.4*DIM
FATTORE=0.8
XC     =DIM/2
YC     =DIM/2
red    =255
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,y, 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()

Passa da una a due chiamate e il fattore di scala da 80% a 50%

import pygame

TITOLO ="Immagine ricorsiva: cerchi 2"
DIM    =800
raggio =0.4*DIM
FATTORE=0.5
XC     =DIM/2
YC     =DIM/2
red    =255
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-ra2,y, ra2)
        cerchio(r2,g2,b2, x+ra2,y, 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()

I centri dei cerchi si muovono verso il centro

import pygame

TITOLO  ="Immagine ricorsiva: cerchi 2"
DIM     =800
raggio  =0.4*DIM
FATTORE1=0.50
FATTORE2=0.80
XC      =DIM/2
YC      =DIM/2
red     =255
green   =255
blue    =127

def cerchio1(r,g,b, x,y, ra):
    pygame.draw.circle(screen, (r,g,b), (x,y), ra)
    if(ra > 2):        
        r2 =0.8*r
        g2 =0.8*g
        b2 =0.8*b
        ra2=FATTORE2*ra
        
        cerchio1(r2,g2,b2, XC-ra2,y, ra2)

def cerchio2(r,g,b, x,y, ra):
    pygame.draw.circle(screen, (r,g,b), (x,y), ra)
    if(ra > 2):        
        r2 =0.8*r
        g2 =0.8*g
        b2 =0.8*b
        ra2=FATTORE2*ra
        
        cerchio2(r2,g2,b2, XC+ra2,y, ra2)

pygame.init()
screen=pygame.display.set_mode((DIM, DIM))
pygame.display.set_caption(TITOLO)

pygame.draw.circle(screen, (red,green,blue), (XC,YC), raggio)
r2 =0.8*red
g2 =0.8*green
b2 =0.8*blue
ra2=FATTORE1*raggio
        
cerchio1(r2,g2,b2, XC-ra2,YC, ra2)
cerchio2(r2,g2,b2, XC+ra2,YC, ra2)

pygame.display.flip()
input("Premi INVIO per continuare...")
pygame.quit()

Lascia un commento