Figure casuali

Disegna tratti di linea casuali

Utilizza la funzione per una linea con antialising tra due punti: pygame.draw.aaline()

import random # randint()
import pygame

WIDTH =800    # Larghezza
HEIGHT=450    # Altezza
SPAZIO=25     # Cornice vuota
FRAME =30     # Aggiornamenti al secondo

XMIN  =SPAZIO
XMAX  =WIDTH-SPAZIO
YMIN  =SPAZIO
YMAX  =HEIGHT-SPAZIO
ANCORA=True

pygame.init()
screen=pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Linee casuali")
clock=pygame.time.Clock()

while ANCORA:
    # Gestione degli eventi
    for ev in pygame.event.get():
        if(ev.type == pygame.QUIT):
            ANCORA = False

    # Una coppia di punti casuali 
    x1=random.randint(XMIN, XMAX)
    y1=random.randint(YMIN, YMAX)
    x2=random.randint(XMIN, XMAX)
    y2=random.randint(YMIN, YMAX)

    # Un colore casuale
    red  =random.randint(0, 255)
    green=random.randint(0, 255)
    blue =random.randint(0, 255)
    penna=(red, green, blue)

    # Aggiorna la finestra
    pygame.draw.aaline(screen, penna, (x1,y1), (x2,y2))
    pygame.display.flip()
    clock.tick(FRAME)

pygame.quit()

Con 3 punti casuali e la funzione pygame.draw.polygon() si genera un triangolo

import random # randint()
import pygame

WIDTH =800    # Larghezza
HEIGHT=450    # Altezza
SPAZIO=25     # Cornice vuota
FRAME =30     # Aggiornamenti al secondo

XMIN=SPAZIO
XMAX=WIDTH-SPAZIO
YMIN=SPAZIO
YMAX=HEIGHT-SPAZIO

pygame.init()
screen=pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Triangoli casuali")
clock=pygame.time.Clock()

ANCORA=True
while ANCORA:
    # Gestione degli eventi
    for ev in pygame.event.get():
        if(ev.type == pygame.QUIT):
            ANCORA = False

    # Genera 3 punti casuali 
    x1=random.randint(XMIN, XMAX)
    y1=random.randint(YMIN, YMAX)
    x2=random.randint(XMIN, XMAX)
    y2=random.randint(YMIN, YMAX)
    x3=random.randint(XMIN, XMAX)
    y3=random.randint(YMIN, YMAX)

    # Genera un colore casuale
    red  =random.randint(0, 255)
    green=random.randint(0, 255)
    blue =random.randint(0, 255)
    penna=(red, green, blue)

    # Aggiorna
    pygame.draw.polygon(screen, penna, ((x1,y1), (x2,y2), (x3, y3)))
    pygame.display.flip()
    clock.tick(FRAME)

pygame.quit()

Con 2 punti casuali (combinati opportunamente…) e la funzione pygame.draw.rect() si genera un rettangolo

import random # randint()
import pygame

WIDTH =800    # Larghezza
HEIGHT=450    # Altezza
SPAZIO=25     # Cornice vuota
FRAME =30     # Aggiornamenti al secondo

XMIN=SPAZIO
XMAX=WIDTH-SPAZIO
YMIN=SPAZIO
YMAX=HEIGHT-SPAZIO

pygame.init()
screen=pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Rettangoli casuali")
clock=pygame.time.Clock()

ANCORA=True
while ANCORA:
    # Gestione degli eventi
    for ev in pygame.event.get():
        if(ev.type == pygame.QUIT):
            ANCORA = False

    # Genera 2 punti casuali "intelligenti"
    x1=random.randint(XMIN, XMAX)
    y1=random.randint(YMIN, YMAX)
    x2=random.randint(XMIN, XMAX)
    y2=random.randint(YMIN, YMAX)
    x1,x2 = min(x1, x2), max(x1, x2)
    y1,y2 = min(y1, y2), max(y1, y2)

    # Genera un colore casuale
    red  =random.randint(0, 255)
    green=random.randint(0, 255)
    blue =random.randint(0, 255)
    penna=(red, green, blue)

    # Aggiorna
    pygame.draw.rect(screen, penna, (x1,y1, x2-x1, y2-y1))
    pygame.display.flip()
    clock.tick(FRAME)

pygame.quit()

Lascia un commento