import sys
NAR, LUZ, CLARA, INK, BL = "#f04e23", "#f45a1c", "#ffb03a", "#111", "#fff"
# La luz baja de la cabeza, llega al suelo y se abre en un charco (naranja por fuera, claro en el centro).
CONOS = {
"recta": "M57,33 H77 L98,92 H36 Z",
"onda-suave": "M57,33 H77 C82,46 85,55 85,62 C85,69 88,73 89,76 H41 C42,72 45,69 45,62 C45,54 51,45 57,33 Z",
"campana": "M57,33 H77 C78,52 82,66 92,76 H38 C48,66 56,52 57,33 Z",
"onda": "M57,33 H77 C86,42 80,52 86,61 C90,67 91,72 90,76 H40 C39,72 41,67 44,61 C48,52 44,42 57,33 Z",
# S pronunciada: los dos lados ondean hacia el mismo lado, como una bandera
"s": "M57,33 H77 C64,48 102,60 92,76 H40 C58,60 40,48 57,33 Z",
"s-media": "M57,33 H77 C70,48 96,60 92,76 H40 C54,60 46,48 57,33 Z",
# S en espejo: se estrecha arriba y se abre abajo como una llama
"s-espejo": "M57,33 H77 C66,50 100,58 92,76 H38 C30,58 68,50 57,33 Z",
"s-espejo-media": "M57,33 H77 C70,50 94,58 92,76 H38 C36,58 64,50 57,33 Z",
}
CHARCO = {"onda-suave": 24, "campana": 27, "onda": 25, "s": 26, "s-media": 26, "s-espejo": 27, "s-espejo-media": 27}
def luz_(cono, luz, clara, ink, suelo=False):
out = f''
if cono in CHARCO:
rx, ry = CHARCO[cono], 5.5
out += (f''
f'')
if cono == "recta":
out += f''
if suelo:
out += f''
return out
def farola(estilo="aro", ink=INK, luz=LUZ, fondo=None, papel=BL, clara=CLARA, cono="s-media", suelo=False):
bg = f'' if fondo else ""
if estilo == "aro":
defs = ''
cono = f'{luz_(cono, luz, clara, ink, suelo)}'
poste = f''
cabeza = f''
aro = f''
return defs + cono + f'{poste}' + cabeza + aro
pegatina = f''
poste = f''
cabeza = f''
rayos = "".join(f''
for x0, y0, x1, y1 in ((58, 35, 50, 52), (67, 36, 67, 56), (76, 35, 84, 52)))
return f'{pegatina}{poste}{cabeza}{rayos}'
def svg(cuerpo, fondo=None):
bg = f'' if fondo else ""
return f'\n'
if __name__ == "__main__":
d = sys.argv[1]
open(f"{d}/simbolo.svg", "w").write(svg(farola()))
open(f"{d}/simbolo-negativo.svg", "w").write(svg(farola(ink=BL, papel=INK), INK))
open(f"{d}/simbolo-naranja.svg", "w").write(svg(farola(luz=BL, papel=NAR, clara="#ffe2a8"), NAR))
open(f"{d}/simbolo-pegatina.svg", "w").write(svg(farola("pegatina")))
# Propuestas que no se usan, para tenerlas a mano
import os
os.makedirs(f"{d}/propuestas", exist_ok=True)
for n, (cono, suelo) in enumerate((("onda-suave", False), ("campana", False), ("onda", False), ("campana", True)), 1):
open(f"{d}/propuestas/farola-{n}-{cono}{'-suelo' if suelo else ''}.svg", "w").write(svg(farola(cono=cono, suelo=suelo)))
open(f"{d}/propuestas/farola-recta.svg", "w").write(svg(farola(cono="recta")))
for n, cono in enumerate(("s", "s-media", "s-espejo", "s-espejo-media"), 5):
open(f"{d}/propuestas/farola-{n}-{cono}.svg", "w").write(svg(farola(cono=cono)))