Actio 3 - Código de la portada

Portada realizada por código Python en Drawbot

Basado en gist.github.com/justvanrossum

def drawArc(center, radius, startAngle, endAngle):
    bez = BezierPath()
    # se generan los parámetros generales del arco
    bez.arc(center, radius, startAngle, endAngle, False)
    drawPath(bez)
# función para definir los patrones
# se genera el patrón 1
def tile1(x, y, q=0):
    with savedState():
        translate(x, y)
        rotate(q * 90, center=(0.5, 0.5))
        for r in [0.2, 0.4, 0.6, 0.8]:
            drawArc((0, 0), r, 0, 90)
            if r == 0.8:
                drawArc((1, 1), r, 180, 198)
                drawArc((1, 1), r, 252, 270)
            else:
                drawArc((1, 1), r, 180, 270)
# se genera el patrón 2 modificando el patrón 1
def tile2(x, y):
    tile1(x, y, 1)
# se genera el patrón 3 modificando el patrón 1
def tile3(x, y):
    tile1(x, y, 2)
# se genera el patrón 4 modificando el patrón 1
def tile4(x, y):
    tile1(x, y, 3)
# se genera el patrón 5
def tile5(x, y):
    with savedState():
        translate(x, y)
        for i in range(4):
            drawArc((0, 0.5), 0.1, 270, 90)
            drawArc((0, 0.5), 0.3, 270, 90)
            rotate(90, center=(0.5, 0.5))
# se genera patrón 6
def tile6(x, y):
    with savedState():
        translate(x, y)
        oval(0.3, 0.3, 0.4, 0.4)
        for i in range(4):
            drawArc((0, 0), 0.2, 0, 90)
            drawArc((0, 0), 0.4, 0, 90)
            rotate(90, center=(0.5, 0.5))
# array de todos los patrones
allTiles = [tile1, tile2, tile3, tile4, tile5, tile6]
# número de filas de patrones
numTiles = 16
# color de fondo
fill(0.5)
rect(0, 0, 1000, 1000)
# rellena el espacio dependiendo del numero de filas
scale(1000 / numTiles)
# propiedades de los patrones
fill(None)
stroke(0.7)
strokeWidth(0)
rect(0, 0, numTiles, numTiles)
strokeWidth(0.05)
for i in range(numTiles):
    for j in range(numTiles):
        tile = choice(allTiles)
        tile(i, j)
# variables para generar colores aleatorios
random1 = random();
random2 = random();
random3 = random();
# cambia el modo de fusión de color y se genera el degradado de fondo
blendMode(“multiply”)
radialGradient(
    (8, 8),
    (12, 12),
    [(random1, random2, random3), (random3, random2, random1), (random2, random1, random3)],
    [0, .2, 1]
    )
# se dibuja el rectángulo de color
rect(0, 0, numTiles, numTiles)
# se guarda la imagen
saveImage(“actio03.png”)
saveImage(“actio03.svg”)
saveImage(“actio03.pdf”)