# Genera el símbolo: un faro dentro de un aro grueso, como un emblema de tienda de graffiti.
# La luz es amarilla: un haz horizontal que se abre hacia los dos lados y un halo en círculo.
import sys
INK, BL, NAR = "#111", "#fff", "#f04e23"
LUZ, CLARA = "#ffc21a", "#fff4b8"
CX, CY = 50, 36 # centro de la linterna
def luz_(luz, clara):
# Haz: dos cuñas horizontales que se ensanchan hacia fuera, y ondas en círculo alrededor.
haz = (f'')
ondas = "".join(f''
for r, w, o in ((19, 3, .9), (27, 2.2, .55)))
halo = f''
return haz + ondas + halo
def torre(ink, papel):
# Torre que se estrecha hacia arriba, con dos franjas, la linterna y el tejado en punta.
cuerpo = f''
franjas = "".join(f''
for y in (56, 72))
balcon = f''
linterna = f''
tejado = f''
return cuerpo + franjas + balcon + linterna + tejado
def faro(estilo="aro", ink=INK, luz=LUZ, papel=BL, clara=CLARA, clip="c", grueso=7, fondo_aro=None):
if estilo == "aro":
defs = f''
fondo = f'' if fondo_aro else ""
dentro = f'{luz_(luz, clara)}{torre(ink, papel)}'
aro = f''
return defs + fondo + dentro + aro
# Pegatina: círculo amarillo, la luz en blanco
defs = f''
return defs + f'{luz_(papel, BL)}{torre(ink, luz)}'
def svg(cuerpo, fondo=None):
bg = f'' if fondo else ""
return f'\n'
def simbolo_mapa():
# El mismo faro para el del mapa estático: fondo blanco y aro más grueso.
return faro(clip="fc", grueso=9, fondo_aro=BL)
if __name__ == "__main__":
d = sys.argv[1]
open(f"{d}/simbolo.svg", "w").write(svg(faro()))
open(f"{d}/simbolo-negativo.svg", "w").write(svg(faro(ink=BL, papel=INK), INK))
open(f"{d}/simbolo-naranja.svg", "w").write(svg(faro(luz=BL, papel=NAR, clara="#ffe2a8"), NAR))
open(f"{d}/simbolo-pegatina.svg", "w").write(svg(faro("pegatina")))