String art > 1

Finestra 800×800, 360 chiodini blu, sfondo nero, spago giallo pallido, …

import math    # cos(), radians(), sin()
import turtle  # ...

WIDTH     = 800
HEIGHT    = 800

COLORE0   = "black"     # ... Sfondo
COLORE1   = "blue"      # ... Chiodini
COLORE2   = "#FFD"      # ... Spago
FATTORE   = 2           # i --> FATTORE*i
NUMERO    = 360         # Numero di chiodini
RAGGIO    = 0.45*WIDTH  # Distanza dal centro dei chiodini

POSIZIONI = []
def posizioni():
    DELTA  = 360/NUMERO
    angolo = 90
    for i in range(NUMERO):
        radianti  = math.radians(angolo)
        x         = RAGGIO*math.cos(radianti)
        y         = RAGGIO*math.sin(radianti)
        posizione = (x,y)
        POSIZIONI.append(posizione)
        angolo    = angolo+DELTA

def chiodini():
    turtle.tracer(0)
    turtle.penup()
    for posizione in POSIZIONI:
        turtle.setposition(posizione)
        turtle.dot(COLORE1)
    turtle.update()

def linea(start, stop):
    turtle.tracer(0)
    turtle.penup()  ; turtle.setposition(start)
    turtle.pendown(); turtle.setposition(stop)
    turtle.update()

def string_art():
    for i in range(NUMERO):
        p1 = POSIZIONI[i]
        p2 = POSIZIONI[(FATTORE*i)%NUMERO]
        linea(p1, p2)

turtle.setup(WIDTH, HEIGHT)
turtle.bgcolor(COLORE0)
turtle.hideturtle()
turtle.pencolor(COLORE2)
turtle.title('String art: ' + str(FATTORE))

posizioni()
chiodini()
string_art()

Per ottenere immagini diverse si agisce sulla costante FATTORE con valore >= 2

Continua…

Lascia un commento