028 Python3 + Turtle: disegnare segmenti ed archi di circonferenza raccordati

25 Giugno, 2023 (14:41) | Python | By: sargonsei

#
# 028-python3 + Turtle: disegnare segmenti ed archi di circonferenza raccordati.
#
def SCRIVE(COL, COM):    #  Inizio definizione funzione SCRIVE() richiedente un parametro contenuto in una variabile-lista
    TESTO01.color(COL)                      # a) Impostare il colore corrente dell'oggetto TESTO01
    TESTO = f"MATITA01.color{COL}; {COM}"   # b) Definire il contenuto della variabile TESTO
    TESTO01.forward(20)                     # c) Spostare l’oggetto TESTO01 più avanti di 20 punti
    TESTO01.left(90)                        # d) Orientare TESTO01 girata a sinistra di 90 gradi rispetto al valore corrente
    TESTO01.forward(10)                     # e) Spostare l’oggetto TESTO01 più avanti di 10 punti
    TESTO01.color("black")                  # f) Impostare il colore corrente per l'oggetto TESTO01
    TESTO01.write(TESTO,0)                  # g) Scrivere sul piano cartesiano il contenuto della variabile TESTO
    TESTO01.penup()                         # h) Impedire all’oggetto TESTO01 di scrivere
    TESTO01.backward(10)                    # i) Spostare l’oggetto TESTO01 più indietro di 10 punti
    TESTO01.pendown()                       # j) Consentire all’oggetto TESTO01 di scrivere
    TESTO01.right(90)                       # k) Orientare TESTO01 girata a destra di 90 gradi rispetto al valore corrente

import turtle               # Importare modulo turtle
TELA01 = turtle.Screen()    # Creare una TELA01 su cui disegnare
TELA01.bgcolor("pink")      # Impostare il colore dello sfondo (di default è bianco)
TESTO01 = turtle.Turtle() # Creare l’oggetto TESTO01 con cui disegnare
TESTO01.speed(10)         # Impostare velocità di esecuzione per TESTO01
TESTO01.pensize(6)        # Definire lo spessore della linea TESTO01
TESTO01.penup()           # Impedire all’oggetto TESTO01 di scrivere
TESTO01.goto(20,250)      # Spostare l’oggetto TESTO01 nel punto avente coordinate X=-320, Y=250
TESTO01.pendown()         # Consentire all’oggetto TESTO01 di scrivere
TESTO01.right(90)         # Orientare TESTO01 girata a destra di 90 gradi rispetto al valore corrente
MATITA01 = turtle.Turtle()  # Crea una "MATITA01" con cui disegnare
MATITA01.speed(1)           # Impostrea velocità di esecuzione per MATITA01
MATITA01.pensize(4)         # Definire lo spessore della linea tracciata con l'oggetto MATITA01
MATITA01.penup()            # Durante gli spostamenti, l'oggetto MATITA01 NON scrive 
MATITA01.goto(-300, 50)     # Spostare, l’oggetto MATITA01 nel punto corrispondente alle coordinate indicate
MATITA01.pendown()          # Durante gli spostamenti, l'oggetto MATITA01 scrive (default)
TESTO01.hideturtle()        # Rendere invisibile l'indicatore di direzione di TESTO01
# MATITA01.hideturtle()     # Rendere invisibile l'indicatore di direzione di MATITA01
# MATITA01.showturtle()     # Rendere visibile l'indicatore di direzione di MATITA01 (default)
MATITA01.circle(50, 90)             # Tracciare, con l’oggetto MATITA01, un'arco di circonferenza avente raggio ed ampiezza indicati
COMANDO = "MATITA01.circle(50, 90)" # Assegnare il contenuto della variabile COMANDO
SCRIVE([0, 0, 0], COMANDO)          # Chiamare la funzione SCRIVE() previo trasferimento del contenuto delle variabili indicate
COLORE = [0.3, 0.3, 0.3]         # Assegnare il contenuto della variabile COLORE
MATITA01.color(COLORE)           # Impostare il colore di MATITA01
MATITA01.forward(50)             # Tracciare, con l’oggetto MATITA01, una linea di 50 punti
COMANDO = "MATITA01.forward(50)" # Assegnare il contenuto della variabile COMANDO
SCRIVE(COLORE, COMANDO)          # Chiamare la funzione SCRIVE() previo trasferimento del contenuto delle variabili indicate
COLORE = [0.7, 0.7, 0.7]             # Assegnare il contenuto della variabile COLORE
MATITA01.color(COLORE)               # Impostare il colore di MATITA01
MATITA01.circle(-50, 90)             # Tracciare, con l’oggetto MATITA01, un'arco di circonferenza avente raggio ed ampiezza indicati
COMANDO = "MATITA01.circle(-50, 90)" # Assegnare il contenuto della variabile COMANDO
SCRIVE(COLORE, COMANDO)              # Chiamare la funzione SCRIVE() previo trasferimento del contenuto delle variabili indicate
COLORE = [1, 1, 1]               # Assegnare il contenuto della variabile COLORE
MATITA01.color(COLORE)           # Definire il colore di MATITA01
MATITA01.forward(50)             # Tracciare, con l’oggetto MATITA01, una linea di 50 punti
COMANDO = "MATITA01.forward(50)" # Assegnare il contenuto della variabile COMANDO
SCRIVE(COLORE, COMANDO)          # Chiamare la funzione SCRIVE() previo trasferimento del contenuto delle variabili indicate
COLORE = [0.3, 0.3, 0]             # Assegnare il contenuto della variabile COLORE
MATITA01.color(COLORE)             # Impostare il colore di MATITA01
MATITA01.forward(50)               # Tracciare, con l’oggetto MATITA01, una linea di 50 punti
COMANDO = "MATITA01.forward(50)"   # Assegnare il contenuto della variabile COMANDO
SCRIVE(COLORE, COMANDO)            # Chiamare la funzione SCRIVE() previo trasferimento del contenuto delle variabili indicate
COLORE = [0.7, 0.7, 0]               # Assegnare il contenuto della variabile COLORE
MATITA01.color(COLORE)               # Impostare il colore di MATITA01
MATITA01.circle(-50, 45)             # Tracciare, con l’oggetto MATITA01, un'arco di circonferenza avente raggio ed ampiezza indicati
COMANDO = "MATITA01.circle(-50, 45)" # Assegnare il contenuto della variabile COMANDO
SCRIVE(COLORE, COMANDO)              # Chiamare la funzione SCRIVE() previo trasferimento del contenuto delle variabili indicate
COLORE = [1, 1, 0]                     # Assegnare il contenuto della variabile COLORE
MATITA01.color(COLORE)                 # Impostare il colore di MATITA01
MATITA01.circle(-100, 90)              # Tracciare, con l’oggetto MATITA01, un'arco di circonferenza avente raggio ed ampiezza indicati
COMANDO = "MATITA01.circle(-100, 90)"  # Assegnare il contenuto della variabile COMANDO
SCRIVE(COLORE, COMANDO)                # Chiamare la funzione SCRIVE() previo trasferimento del contenuto delle variabili indicate
COLORE = [0.3, 0, 0.3]           # Assegnare il contenuto della variabile COLORE
MATITA01.color(COLORE)           # Impostare il colore di MATITA01
MATITA01.forward(50)             # Tracciare, con l’oggetto MATITA01, una linea di 50 punti
COMANDO = "MATITA01.forward(50)" # Assegnare il contenuto della variabile COMANDO
SCRIVE(COLORE, COMANDO)          # Chiamare la funzione SCRIVE() previo trasferimento del contenuto delle variabili indicate
COLORE = [0.7, 0, 0.7]             # Assegnare il contenuto della variabile COLORE
MATITA01.color(COLORE)             # Impostare il colore di MATITA01
MATITA01.forward(50)               # Tracciare, con l’oggetto MATITA01, una linea di 50 punti
COMANDO = "MATITA01.forward(50)"   # Assegnare il contenuto della variabile COMANDO
SCRIVE(COLORE, COMANDO)            # Chiamare la funzione SCRIVE() previo trasferimento del contenuto delle variabili indicate
COLORE = [1, 0, 1]                   # Assegnare il contenuto della variabile COLORE
MATITA01.color(COLORE)               # Impostare il colore di MATITA01
MATITA01.circle(50, 45)              # Tracciare, con l’oggetto MATITA01, un'arco di circonferenza avente raggio ed ampiezza indicati
COMANDO = "MATITA01.circle(50, 45)"  # Assegnare il contenuto della variabile COMANDO
SCRIVE(COLORE, COMANDO)              # Chiamare la funzione SCRIVE() previo trasferimento del contenuto delle variabili indicate
COLORE = [0.3, 0, 0]                   # Assegnare il contenuto della variabile COLORE
MATITA01.color(COLORE)                 # Impostare il colore di MATITA01
MATITA01.circle(-50, 45)               # Tracciare, con l’oggetto MATITA01, un'arco di circonferenza avente raggio ed ampiezza indicati
COMANDO = "MATITA01.circle(-50, 45)"   # Assegnare il contenuto della variabile COMANDO
SCRIVE(COLORE, COMANDO)                # Chiamare la funzione SCRIVE() previo trasferimento del contenuto delle variabili indicate
COLORE = [0.7, 0, 0]            # Assegnare il contenuto della variabile COLORE
MATITA01.color(COLORE)          # Impostare il colore di MATITA01
MATITA01.begin_fill()           # Prima istruzione per disegnare una figura piena di colore
MATITA01.circle(50)             # Tracciare, con l’oggetto MATITA01, un'arco di circonferenza avente raggio ed ampiezza indicati
COMANDO = "MATITA01.circle(50)" # Assegnare il contenuto della variabile COMANDO
SCRIVE(COLORE, COMANDO)         # Chiamare la funzione SCRIVE() previo trasferimento del contenuto delle variabili indicate
COLORE = [1, 1, 0]                # Assegnare il contenuto della variabile COLORE
MATITA01.color(COLORE)            # Impostare il colore di MATITA01
MATITA01.end_fill()               # Ultima istruzione per disegnare una figura piena di colore
COMANDO = "MATITA01.end_fill()"   # Assegnare il contenuto della variabile COMANDO
SCRIVE(COLORE, COMANDO)           # Chiamare la funzione SCRIVE() previo trasferimento del contenuto delle variabili indicate
COLORE = [0, 0.3, 0.3]                 # Assegnare il contenuto della variabile COLORE
MATITA01.color(COLORE)                 # Impostare il colore di MATITA01
MATITA01.circle(-100, 90)              # Tracciare, con l’oggetto MATITA01, un'arco di circonferenza avente raggio ed ampiezza indicati
COMANDO = "MATITA01.circle(-100, 90)"  # Assegnare il contenuto della variabile COMANDO
SCRIVE(COLORE, COMANDO)                # Chiamare la funzione SCRIVE() previo trasferimento del contenuto delle variabili indicate
MATITA01.begin_fill()                     # Prima istruzione per disegnare una figura piena di colore
COLORE = [1, 0, 0]                        # Assegnare il contenuto della variabile COLORE
MATITA01.color(COLORE)                    # Impostare il colore di MATITA01
MATITA01.circle(-100, 45)                 # Tracciare, con l’oggetto MATITA01, un'arco di circonferenza avente raggio ed ampiezza indicati
COMANDO = "MATITA01.circle(-100, 45)"     # Assegnare il contenuto della variabile COMANDO
SCRIVE(COLORE, COMANDO)                   # Chiamare la funzione SCRIVE() previo trasferimento del contenuto delle variabili indicate
COLORE = [0, 0.7, 0.7]                # Assegnare il contenuto della variabile COLORE
MATITA01.color(COLORE)                # Impostare il colore di MATITA01
MATITA01.circle(-50, 180)             # Tracciare, con l’oggetto MATITA01, un'arco di circonferenza avente raggio ed ampiezza indicati
COMANDO = "MATITA01.circle(-50, 180)" # Assegnare il contenuto della variabile COMANDO
SCRIVE(COLORE, COMANDO)               # Chiamare la funzione SCRIVE() previo trasferimento del contenuto delle variabili indicate
COLORE = [0, 1, 1]                        # Assegnare il contenuto della variabile COLORE
MATITA01.color(COLORE)                    # Impostare il colore di MATITA01
MATITA01.circle(-100, 45)                 # Tracciare, con l’oggetto MATITA01, un'arco di circonferenza avente raggio ed ampiezza indicati
COMANDO = "MATITA01.circle(-100, 45)"     # Assegnare il contenuto della variabile COMANDO
SCRIVE(COLORE, COMANDO)                   # Chiamare la funzione SCRIVE() previo trasferimento del contenuto delle variabili indicate
COLORE = [0, 0, 1]                   # Assegnare il contenuto della variabile COLORE
MATITA01.color(COLORE)               # Impostare il colore di MATITA01
MATITA01.circle(-30, 90)             # Tracciare, con l’oggetto MATITA01, un'arco di circonferenza avente raggio ed ampiezza indicati
COMANDO = "MATITA01.circle(-30, 90)" # Assegnare il contenuto della variabile COMANDO
SCRIVE(COLORE, COMANDO)              # Chiamare la funzione SCRIVE() previo trasferimento del contenuto delle variabili indicate
MATITA01.end_fill()                  # Ultima istruzione per disegnare una figura piena di colore
COMANDO = "MATITA01.end_fill()"      # Assegnare il contenuto della variabile COMANDO
SCRIVE(COLORE, COMANDO)              # Chiamare la funzione SCRIVE() previo trasferimento del contenuto delle variabili indicate
TELA01.mainloop()           # Attende che l'utente chiuda la finestra TELA01
# TELA01.exitonclick() # Chiude TELA01 cliccando su di esso.
#