026 Python3 + Turtle: Disegnare poligoni ed archi di circonferenza colorati + inserire didascalie

16 Giugno, 2023 (14:50) | Python | By: sargonsei

026 Python3 + Turtle: Disegnare poligoni ed archi di circonferenza colorati + inserire didascalie

#
# Per tracciare poligoni ed archi di circonferenza colorati, con Python 3 – Turtle occorre:
#
def ARCO(C0, S0):    # a)Inizio definizione funzione ARCO() richiedente i parametri contenuti in 2 variabili-lista
    COL = [C0[0]*0.3, C0[1]*0.3, C0[2]*0.3]   # b) Ricalcolare il valore del colore RGB (più scuro)
    MATITA01.color(COL)                       # c) Impostare il colore corrente dell'oggetto MATITA01
    MATITA01.circle(S0[0], S0[1])             # d) Tracciare, con l’oggetto MATITA01, un'arco di circonferenza avente raggio ed ampiezza S0
    MATITA02.hideturtle()                     # e) Il puntatore di direzione (tartaruga) dell'oggetto MATITA02 diventa invisibile
    COL2= [1-COL[0], 1-COL[1], 1-COL[2]]      # f) Ricalcolare il valore del colore RGB (più scuro)
    MATITA02.color(COL2)                      # g) Impostare il colore corrente dell'oggetto MATITA01
    MATITA02.forward(S0[0]/3)                 # h) Tracciare, con l’oggetto MATITA02, una linea lunga un terzo del raggio dell'arco di circonferenza
    COL = [C0[0]*0.7, C0[1]*0.7, C0[2]*0.7]   # i) Ricalcolare il valore del colore RGB (scuro)
    MATITA01.color(COL)                       # j) Impostare il colore corrente dell'oggetto MATITA01
    MATITA01.circle(S0[0], S0[1])             # k) Tracciare, con l’oggetto MATITA01, un'arco di circonferenza avente raggio ed ampiezza S0
    COL2= [1-COL[0], 1-COL[1], 1-COL[2]]      # l) Ricalcolare il valore del colore RGB (più scuro)
    MATITA02.color(COL2)                      # m) Impostare il colore corrente dell'oggetto MATITA01
    MATITA02.forward(S0[0]/3)                 # n) Tracciare, con l’oggetto MATITA02, una linea lunga un terzo del raggio dell'arco di circonferenza
    MATITA01.color(C0)                        # o) Impostare il colore corrente dell'oggetto MATITA01
    MATITA01.circle(S0[0], S0[1])             # p) Tracciare, con l’oggetto MATITA01, un'arco di circonferenza avente raggio ed ampiezza S0
    MATITA02.showturtle()                     # q) Il puntatore di direzione (tartaruga) dell'oggetto MATITA02 diventa visibile
    COL2= [1-COL[0], 1-COL[1], 1-COL[2]]      # r) Ricalcolare il valore del colore RGB (più scuro)
    MATITA02.color(1-C0[0], 1-C0[1], 1-C0[2]) # s) Impostare il colore corrente dell'oggetto MATITA01
    MATITA02.forward(S0[0]/3)                 # t) Tracciare, con l’oggetto MATITA02, una linea lunga un terzo del raggio dell'arco di circonferenza
    
import turtle                 # A) Importare il modulo turtle
TELA01 = turtle.Screen()      # B) Creare il piano cartesiano TELA01 su cui disegnare
MATITA01 = turtle.Turtle()    # C) Creare l’oggetto MATITA01 con cui disegnare
MATITA01.speed(1)             # D) Impostare velocità di esecuzione per MATITA01
MATITA01.pensize(4)           # E) Definire lo spessore della linea MATITA01
MATITA02 = turtle.Turtle()    # F) Creare l’oggetto MATITA02 con cui disegnare
MATITA02.speed(2)             # G) Impostare velocità di esecuzione per MATITA02
MATITA02.pensize(4)           # H) Definire lo spessore della linea MATITA02

MATITA01.color(0,0,0)         # I) Imposta il colore dell'oggetto MATITA01
MATITA01.goto(0, -99)         # J) Tracciare, con l’oggetto MATITA01, una linea di cui sono fornite le coordinate del punto finale

MATITA02.penup()              # K) Impedire all’oggetto MATITA01 di scrivere
MATITA02.goto(0, -99)         # L) Posizionare l’oggetto MATITA01 nel punto di inizio della prossima linea
MATITA02.pendown()            # M) Consentire all’oggetto MATITA01 di scrivere


SETTORE = [99, 20]            # N) Definire variabile-Lista contenente raggio ed ampiezza del settore del cerchio
COLORE = [1, 1, 1]            # O) Definire variabile-Lista contenente colore chiaro in formato Red,Green,Blue
MATITA02.left(30)             # P) Orientare MATITA01 girata a sinistra di 135 gradi rispetto alli opzione corrente
ARCO(COLORE, SETTORE)         # Q) Chiama la funzione ARCO() previo trasferimento del contenuto delle variabili-lista COLORE e SETTORE

COLORE = [1, 0, 0]            # R) Definire variabile-Lista contenente colore chiaro in formato Red,Green,Blue
MATITA02.left(60)             # S) Orientare MATITA01 girata a sinistra di 135 gradi rispetto alli opzione corrente
ARCO(COLORE, SETTORE)         # T) Chiama la funzione ARCO() previo trasferimento del contenuto delle variabili-lista COLORE e SETTORE

# MATITA01.clear()              # U) Cancella lo schermo.

COLORE = [0, 1, 0]            # R) Definire variabile-Lista contenente colore chiaro in formato Red,Green,Blue
MATITA02.left(60)             # S) Orientare MATITA01 girata a sinistra di 135 gradi rispetto alli opzione corrente
ARCO(COLORE, SETTORE)         # T) Chiama la funzione ARCO() previo trasferimento del contenuto delle variabili-lista COLORE e SETTORE

COLORE = [0, 0, 1]            # R) Definire variabile-Lista contenente colore chiaro in formato Red,Green,Blue
MATITA02.left(60)             # S) Orientare MATITA01 girata a sinistra di 135 gradi rispetto alli opzione corrente
ARCO(COLORE, SETTORE)         # T) Chiama la funzione ARCO() previo trasferimento del contenuto delle variabili-lista COLORE e SETTORE


COLORE = [0, 1, 1]            # R) Definire variabile-Lista contenente colore chiaro in formato Red,Green,Blue
MATITA02.left(60)             # S) Orientare MATITA01 girata a sinistra di 135 gradi rispetto alli opzione corrente
ARCO(COLORE, SETTORE)         # T) Chiama la funzione ARCO() previo trasferimento del contenuto delle variabili-lista COLORE e SETTORE
# MATITA01.reset()              # V) Pulisce lo schermo, riporta la penna al centro e setta le variabili con i valori predefiniti. 


COLORE = [1, 0, 1]            # R) Definire variabile-Lista contenente colore chiaro in formato Red,Green,Blue
MATITA02.left(60)             # S) Orientare MATITA01 girata a sinistra di 135 gradi rispetto alli opzione corrente
ARCO(COLORE, SETTORE)         # T) Chiama la funzione ARCO() previo trasferimento del contenuto delle variabili-lista COLORE e SETTORE

MATITA01.write("Prima prova di scrittura")     # U) Scrive un messaggio testuale
MATITA01.circle(50)                            # V) Tracciare, con l’oggetto MATITA01, una circonferenza avente raggio 50

MATITA01.left(60)                              # W) Orientare MATITA01 girata a sinistra di 60 gradi rispetto alle opzioni di default
MATITA01.color(0.3, 0.3, 0)                    # X) Imposta il colore 
MATITA01.forward(50)                           # Y) Tracciare, con l’oggetto MATITA01, una linea di 50 punti

MATITA01.write("Seconda prova di scrittura",1) # U) Scrive un messaggio testuale
MATITA01.color(0.7, 0.7, 0)                    # X) Imposta il colore 
MATITA01.forward(50)                           # Y) Tracciare, con l’oggetto MATITA01, una linea di 50 punti

MATITA01.write("Terza prova di scrittura")     # U) Scrive un messaggio testuale
MATITA01.color(1,1,0)                          # X) Imposta il colore 
MATITA01.forward(50)                           # Y) Tracciare, con l’oggetto MATITA01, una linea di 50 punti
MATITA01.hideturtle()                          # Z) il puntatore di direzione (tartaruga) dell'oggetto MATITA01 diventa invisibile
#
# Se il listato terminasse con questa riga, la finestra TELA01 verrebbe chiusa.
TELA01.mainloop()           # Attendere che l'utente chiuda la finestra TELA01
# TELA01.exitonclick()      # Chiudere TELA01 cliccando su di esso.
# ^^ Togliere il graticcio che precede l’istruzione che si vuole utilizzare per terminare il programma
#