# Genera sites//img/eje-*.svg: una piña pequeña de tres monigotes de un trazo en zigzag, # en el color de cada eje del ideario (los mismos colores que los regueros del dibujo). import sys, random, math, os OUT = sys.argv[1] EJES = {"techo": "#f04e23", "tierra": "#14965a", "fronteras": "#f2b705", "paz": "#3b5bdb", "feminismos": "#8e44c9"} DEFS = ('' '' '' '') def monigote(o, x, y, h, col, brazo=False, paso=False): sw = max(1.4, h * .016) pts, yy, i, top = [], y - h, 0, y - h while yy <= y: t = (yy - top) / h cx = x if t < .13: w = h * .055 * math.sin(math.pi * t / .13) ** .6 + sw * .3 elif t < .16: w = h * .01 else: u = (t - .16) / .84 w = h * (.07 * (1 - u) ** .8 + .016) if paso and u > .5: cx += (-1 if (i // 2) % 2 else 1) * h * .04 * (u - .5) / .5 w *= .6 pts.append((cx + (-1 if i % 2 else 1) * w * random.uniform(.75, 1.25), yy)) yy += sw * 2.1 * random.uniform(.85, 1.15) * (.55 if t < .13 else 1) i += 1 d = "M" + " L".join(f"{px:.1f},{py:.1f}" for px, py in pts) o.append(f'') if brazo: bx, by = x + h * .06, top + h * .2 p = [(bx + j / 9 * h * .06 + (-1 if j % 2 else 1) * h * .014, by - j / 9 * h * .3) for j in range(10)] o.append(f'') os.makedirs(OUT, exist_ok=True) for n, (nombre, col) in enumerate(EJES.items()): random.seed(40 + n) o = [] monigote(o, 38, 150, 112, col, paso=True) monigote(o, 102, 156, 120, col, paso=True) monigote(o, 70, 160, 140, col, brazo=True) open(f"{OUT}/eje-{nombre}.svg", "w").write(f'{DEFS}' + "".join(o) + "\n")