Salto a metà

Chaos Game

  1. posiziona un certo numero di punti di base
  2. il prossimo punto colorato è a metà strada tra quello attuale e un altro scelto a caso tra quelli di base

Tre punti

import random # randint()
import pygame

WIDTH =800  # Larghezza
HEIGHT=800  # Altezza
SPAZIO=50   # Cornice vuota
RAGGIO=1    # Punto colorato
FRAME1=2    # Numero frame al secondo
FRAME2=500  # Numero punti per ogni frame

# I punti di base
PUNTI=[]
PUNTI.append((      SPAZIO,        SPAZIO)) # Nord Ovest
PUNTI.append((      SPAZIO, HEIGHT-SPAZIO)) # Sud  Ovest
PUNTI.append((WIDTH-SPAZIO, HEIGHT-SPAZIO)) # Sud  Est

NUM=len(PUNTI)

# Inizializzazioni
pygame.init()
screen=pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Chaos Game: triangolo di Sierpinski")
clock=pygame.time.Clock()

# Disegna di blu i punti di base
for x,y in PUNTI:
    pygame.draw.circle(screen, (0,0,128), (x,y), 25)


xx,yy = PUNTI[0]
ANCORA=True
while ANCORA:
    # Gestione degli eventi
    for ev in pygame.event.get():
        if(ev.type == pygame.QUIT):
            ANCORA=False

    # Tono di verde
    PENNA=(0, random.randint(128,255), 0)
    
    # Un certo numero di punti
    for i in range(FRAME2):    
        indice=random.randint(0, NUM-1)
        x, y=PUNTI[indice]

        xx=(xx+x)/2
        yy=(yy+y)/2    
        pygame.draw.circle(screen, PENNA, (xx,yy), RAGGIO)
    
    # Aggiorna il disegno
    pygame.display.flip()
    clock.tick(FRAME1)

pygame.quit()

Quattro punti

Aggiungi un punto centrale

PUNTI.append((WIDTH/2, HEIGHT/2))

Cinque punti

Aggiungi un altro punto

PUNTI.append((WIDTH-SPAZIO, SPAZIO))

Lascia un commento