La funzione draw.polygon() di Pygame

La funzione draw.polygon() disegna un poligono in una superficie grafica con python tramite il modulo pygame.

pygame.draw.lines(obj, col, points, width)

Gli argomenti della funzione sono

  • obj è il nome della superficie grafica in cui disegnare la figura geometrica.
  • col è una tupla a tre elementi con i valori RGB che definisce il colore del poligono.
  • points è una tupla contenente due o più coppie (x,y) che indicano le coordinate degli spigoli del poligono.
  • width è un valore intero che indica lo spessore del bordo della figura in pixel. Se width=0 il poligono viene colorato anche all'intero.

Nota. Se il parametro width è maggiore di 0 la funzione produce lo stesso risultato della funzione draw.lines(). C'è però una differenza tra le due funzioni, draw.polygon() mi permette anche di colorare l'interno del poligono tramite il parametro width=0. Con draw.lines() non è possibile.

    Un esempio pratico

    In questo script disegno un poligono tramite draw.poligon() alla riga 6.

    1. import pygame
    2. pygame.init()
    3. finestra1 = pygame.display.set_mode((400,300))
    4. pygame.display.set_caption('Titolo della finestra')
    5. RED = (255,0,0)
    6. pygame.draw.polygon(FINESTRA1, RED, ((240,140),(220,120),(200,180)),0)
    7. running = True
    8. while running:
    9. for event in pygame.event.get():
    10. if event.type == QUIT:
    11. running = False
    12. pygame.display.update()

    La prima linea spezzata comincia nel punto (240,140) a passa per i punti (220,120) e (200,180).

    L'ultimo punto della sequenza (200,180) viene collegato automaticamente al primo punto (240,140) per chiudere l'area del poligono.

    pygame.draw.polygon(FINESTRA1, RED, ((240,140),(220,120),(200,180)),0)

    Il valore del parametro width è zero, quindi il poligono è colorato anche all'interno.

    Ecco il risultato in output.

    la funzione draw polygon con width = 0

    Se modifico l'ultimo parametro width portandolo da zero a cinque.

    pygame.draw.polygon(FINESTRA1, RED, ((240,140),(220,120),(200,180)),5)

    Il risultato in output è sempre lo stesso poligono con i soli lati colorati. L'area interna non è più colorata.

    Il bordo della figura geometrica ha uno spessore di 5 pixel.

    il risultato in output di draw.polygon con width maggiore di zero

    Quest'ultimo risultato posso raggiungerlo anche usando la funzione draw.lines().

    E così via.

     


     

    Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

    FacebookTwitterLinkedinLinkedin
    knowledge base

    PyGame