From 1d0a86acbf96c70447d936c64e25ea93a3af5b14 Mon Sep 17 00:00:00 2001 From: hacklab Date: Wed, 14 Oct 2026 21:48:05 +0200 Subject: [PATCH] Pueblos libres: la bala rota en horizontal, con contorno y volumen en negro Co-Authored-By: Claude Opus 5.5 --- README.md | 2 +- sites/takethestreet/es/index.html | 2 +- sites/takethestreet/fr/index.html | 2 +- sites/takethestreet/img/eje-pueblos.svg | 2 +- sites/takethestreet/index.html | 2 +- sites/takethestreet/it/index.html | 2 +- sites/takethestreet/pt/index.html | 2 +- sites/tomalacalle/en/index.html | 2 +- sites/tomalacalle/fr/index.html | 2 +- sites/tomalacalle/img/eje-pueblos.svg | 2 +- sites/tomalacalle/index.html | 2 +- sites/tomalacalle/it/index.html | 2 +- sites/tomalacalle/pt/index.html | 2 +- tools/ejes.py | 48 ++++++++++++++----------- 14 files changed, 40 insertions(+), 34 deletions(-) diff --git a/README.md b/README.md index 9db98ef..6e3d49c 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ Borrador para la asamblea en [`docs/ideario.md`](docs/ideario.md). Propuesta: ** 2. **Dibujo** (el boceto 5, el cruce) y tres botones: Encuentra tu acampada (al mapa), Síguelas (al panel) y Monta una en tu ciudad (a cómo nos organizamos y el contacto). En móvil van en columna y a todo lo ancho. 3. **Síguelas**: un panel como el del deck, con el árbol de colectivos, una columna por acampada con sus cuentas de verdad y un mapa. Internacional en takethestreet.net y estatal en tomalacalle.net. En móvil va una acampada por fila. 4. **Dónde estamos**: cifras (ciudades, países, desde el 26/09) y un mapa que se mueve y se amplía: Leaflet 1.9.4 (copiado en `js/leaflet/`, sin CDN) con las teselas de OpenStreetMap, y botones para saltar a España o Europa, Canarias e India. Las teselas se piden a tile.openstreetmap.org, que ve la IP de quien mira el mapa. Sin JavaScript se ve un mapa SVG fijo con base de Natural Earth. El faro marca las acampadas, el círculo discontinuo las convocadas, el punto negro las grandes protestas y el gris las levantadas. Cada punto abre una ventanita con su web, cuenta o noticia y un enlace a su tarjeta en «Acampadas». -5. **Cinco ejes**: una tarjeta por eje, con un símbolo pintado con spray en su color: *Hogar*, una casa, en naranja; *Emergencia climática*, un planeta que gotea, en verde; *Rompiendo fronteras*, una valla abierta, en amarillo; *Pueblos libres*, una bala rota, en azul; *Igualdad*, el símbolo feminista, en violeta. +5. **Cinco ejes**: una tarjeta por eje, con un símbolo pintado con spray en su color: *Hogar*, una casa, en naranja; *Emergencia climática*, un planeta que gotea, en verde; *Rompiendo fronteras*, una valla abierta, en amarillo; *Pueblos libres*, una bala rota en horizontal con contorno negro, en azul; *Igualdad*, el símbolo feminista, en violeta. 6. **Quiénes somos**: dos párrafos, de Sol a todas las luchas. 7. **Acampadas**: por país en takethestreet.net y por territorio en tomalacalle.net, más «¿Y tu ciudad?». 8. **Cómo nos organizamos**, con el contacto para montar una acampada. diff --git a/sites/takethestreet/es/index.html b/sites/takethestreet/es/index.html index 3b4ac3b..e837178 100644 --- a/sites/takethestreet/es/index.html +++ b/sites/takethestreet/es/index.html @@ -111,7 +111,7 @@

Regularización, fin de las redadas racistas y de los CIE, y los mismos derechos para quien vive aquí.

- +

Pueblos libres

No a la guerra.

Ningún pueblo bajo las bombas ni bajo la ocupación. Más casas, menos tanques: dinero para la vida y no para la guerra, y fin del comercio de armas. Con Palestina, alto y claro.

diff --git a/sites/takethestreet/fr/index.html b/sites/takethestreet/fr/index.html index 15a5cb8..4081c85 100644 --- a/sites/takethestreet/fr/index.html +++ b/sites/takethestreet/fr/index.html @@ -111,7 +111,7 @@

Régularisation, fin des rafles racistes et des centres de rétention, et les mêmes droits pour toutes les personnes qui vivent ici.

- +

Peuples libres

Non à la guerre.

Aucun peuple sous les bombes ni sous l'occupation. Plus de logements, moins de chars : de l'argent pour la vie et pas pour la guerre, et fin du commerce des armes. Avec la Palestine, haut et fort.

diff --git a/sites/takethestreet/img/eje-pueblos.svg b/sites/takethestreet/img/eje-pueblos.svg index b4fd50e..a2b6ea3 100644 --- a/sites/takethestreet/img/eje-pueblos.svg +++ b/sites/takethestreet/img/eje-pueblos.svg @@ -1 +1 @@ - + diff --git a/sites/takethestreet/index.html b/sites/takethestreet/index.html index 6d8fd9a..710d0c1 100644 --- a/sites/takethestreet/index.html +++ b/sites/takethestreet/index.html @@ -111,7 +111,7 @@

Regularisation, an end to racist raids and detention centres, and equal rights for everyone who lives here.

- +

Free peoples

No to war.

No people under bombs or occupation. More homes, fewer tanks: money for life, not for war, and an end to the arms trade. With Palestine, loud and clear.

diff --git a/sites/takethestreet/it/index.html b/sites/takethestreet/it/index.html index c819282..7273064 100644 --- a/sites/takethestreet/it/index.html +++ b/sites/takethestreet/it/index.html @@ -111,7 +111,7 @@

Regolarizzazione, stop ai rastrellamenti razzisti e ai CPR, e gli stessi diritti per chi vive qui.

- +

Popoli liberi

No alla guerra.

Nessun popolo sotto le bombe né sotto occupazione. Più case, meno carri armati: soldi per la vita e non per la guerra, e stop al commercio di armi. Con la Palestina, forte e chiaro.

diff --git a/sites/takethestreet/pt/index.html b/sites/takethestreet/pt/index.html index 7e43857..f4c4156 100644 --- a/sites/takethestreet/pt/index.html +++ b/sites/takethestreet/pt/index.html @@ -111,7 +111,7 @@

Regularização, fim das rusgas racistas e dos centros de detenção, e os mesmos direitos para quem cá vive.

- +

Povos livres

Não à guerra.

Nenhum povo debaixo das bombas nem da ocupação. Mais casas, menos tanques: dinheiro para a vida e não para a guerra, e fim do comércio de armas. Com a Palestina, alto e bom som.

diff --git a/sites/tomalacalle/en/index.html b/sites/tomalacalle/en/index.html index 819e1f4..6481075 100644 --- a/sites/tomalacalle/en/index.html +++ b/sites/tomalacalle/en/index.html @@ -131,7 +131,7 @@

Regularisation, an end to racist raids and detention centres, and equal rights for everyone who lives here.

- +

Free peoples

No to war.

No people under bombs or occupation. More homes, fewer tanks: money for life, not for war, and an end to the arms trade. With Palestine, loud and clear.

diff --git a/sites/tomalacalle/fr/index.html b/sites/tomalacalle/fr/index.html index 655f300..1ab0d4a 100644 --- a/sites/tomalacalle/fr/index.html +++ b/sites/tomalacalle/fr/index.html @@ -131,7 +131,7 @@

Régularisation, fin des rafles racistes et des centres de rétention, et les mêmes droits pour toutes les personnes qui vivent ici.

- +

Peuples libres

Non à la guerre.

Aucun peuple sous les bombes ni sous l'occupation. Plus de logements, moins de chars : de l'argent pour la vie et pas pour la guerre, et fin du commerce des armes. Avec la Palestine, haut et fort.

diff --git a/sites/tomalacalle/img/eje-pueblos.svg b/sites/tomalacalle/img/eje-pueblos.svg index b4fd50e..a2b6ea3 100644 --- a/sites/tomalacalle/img/eje-pueblos.svg +++ b/sites/tomalacalle/img/eje-pueblos.svg @@ -1 +1 @@ - + diff --git a/sites/tomalacalle/index.html b/sites/tomalacalle/index.html index 6702c54..8db52b1 100644 --- a/sites/tomalacalle/index.html +++ b/sites/tomalacalle/index.html @@ -131,7 +131,7 @@

Regularización, fin de las redadas racistas y de los CIE, y los mismos derechos para quien vive aquí.

- +

Pueblos libres

No a la guerra.

Ningún pueblo bajo las bombas ni bajo la ocupación. Más casas, menos tanques: dinero para la vida y no para la guerra, y fin del comercio de armas. Con Palestina, alto y claro.

diff --git a/sites/tomalacalle/it/index.html b/sites/tomalacalle/it/index.html index 8a1e9da..cda7ef6 100644 --- a/sites/tomalacalle/it/index.html +++ b/sites/tomalacalle/it/index.html @@ -131,7 +131,7 @@

Regolarizzazione, stop ai rastrellamenti razzisti e ai CPR, e gli stessi diritti per chi vive qui.

- +

Popoli liberi

No alla guerra.

Nessun popolo sotto le bombe né sotto occupazione. Più case, meno carri armati: soldi per la vita e non per la guerra, e stop al commercio di armi. Con la Palestina, forte e chiaro.

diff --git a/sites/tomalacalle/pt/index.html b/sites/tomalacalle/pt/index.html index c55d194..1b7117c 100644 --- a/sites/tomalacalle/pt/index.html +++ b/sites/tomalacalle/pt/index.html @@ -131,7 +131,7 @@

Regularização, fim das rusgas racistas e dos centros de detenção, e os mesmos direitos para quem cá vive.

- +

Povos livres

Não à guerra.

Nenhum povo debaixo das bombas nem da ocupação. Mais casas, menos tanques: dinheiro para a vida e não para a guerra, e fim do comércio de armas. Com a Palestina, alto e bom som.

diff --git a/tools/ejes.py b/tools/ejes.py index 1d29726..7c6ca53 100644 --- a/tools/ejes.py +++ b/tools/ejes.py @@ -120,27 +120,33 @@ def girar(pts, ang, ox, oy, dx, dy): return [(ox + (x - ox) * ca - (y - oy) * sa + dx, oy + (x - ox) * sa + (y - oy) * ca + dy) for x, y in pts] def pueblos(o, col): - # Una bala rota: la punta salta hacia un lado y el casquillo se queda, con chispas en el corte. - punta = [(70, 30), (76, 35), (81, 43), (84, 52), (85, 62), (85, 80), (78, 77), (72, 82), (64, 76), (55, 79), (55, 62), (56, 52), (59, 43), (64, 35)] - grieta_a = [(85, 80), (78, 77), (72, 82), (64, 76), (55, 79)] - casquillo = [(55, 90), (63, 86), (70, 92), (77, 86), (85, 90), (85, 128), (55, 128)] - grieta_b = [(55, 90), (63, 86), (70, 92), (77, 86), (85, 90)] - culote = [(52, 132), (88, 132), (88, 150), (52, 150)] - giro_a = lambda pts: girar(pts, -.38, 70, 80, -4, 6) - giro_b = lambda pts: girar(pts, .08, 70, 120, 6, 8) - relleno(o, giro_a(punta), col) - linea(o, giro_a(punta[10:] + punta[:6]), col, 3) - linea(o, giro_a(grieta_a), col, 3.5) - relleno(o, giro_b(casquillo), col) - relleno(o, giro_b(culote), col) - linea(o, giro_b([(55, 90), (55, 128), (52, 132), (52, 150), (88, 150), (88, 132), (85, 128), (85, 90)]), col, 3) - linea(o, giro_b(grieta_b), col, 3.5) - for a in (-.5, 0, .45): - linea(o, [(96 + 6 * math.cos(a), 92 + 6 * math.sin(a)), (96 + 20 * math.cos(a), 92 + 20 * math.sin(a))], col, 4) - for a in (2.7, 3.2): - linea(o, [(46 + 6 * math.cos(a), 96 + 6 * math.sin(a)), (46 + 18 * math.cos(a), 96 + 18 * math.sin(a))], col, 4) - for x, l in ((60, 12), (74, 18), (84, 8)): - chorreon(o, x, 160, l, col) + # Una bala rota en horizontal: el casquillo a la izquierda y la punta que salta hacia la derecha. + # Contorno y líneas de volumen en negro para que tenga relieve. + ink = "#111" + o.append('') + casquillo = [(14, 74), (60, 74), (64, 80), (59, 86), (65, 93), (60, 100), (62, 106), (14, 106)] + culote = [(6, 70), (14, 70), (14, 110), (6, 110)] + punta = [(76, 77), (98, 77), (112, 79), (124, 84), (132, 91), (124, 98), (112, 103), (98, 105), (76, 105), (80, 99), (74, 92), (79, 86), (73, 80)] + giro = lambda pts: girar(pts, -.16, 76, 91, 2, -10) + relleno(o, casquillo, col) + relleno(o, culote, col) + relleno(o, giro(punta), col) + linea(o, casquillo + casquillo[:1], ink, 3) + linea(o, culote + culote[:1], ink, 3) + linea(o, giro(punta + punta[:1]), ink, 3) + # Volumen: ranura del casquillo, sombra abajo y brillo arriba + linea(o, [(20, 75), (20, 105)], ink, 2.5) + linea(o, [(24, 100), (56, 100)], ink, 2.5) + linea(o, giro([(98, 78), (98, 104)]), ink, 2.5) + linea(o, giro([(84, 100), (112, 100), (124, 95)]), ink, 2.5) + linea(o, [(26, 80), (50, 80)], "#fff", 2.5) + linea(o, giro([(86, 82), (110, 83)]), "#fff", 2.5) + # Chispas en el corte + for a in (-1.9, -1.4, 1.5, 2.0): + linea(o, [(69 + 8 * math.cos(a), 90 + 8 * math.sin(a)), (69 + 22 * math.cos(a), 90 + 22 * math.sin(a))], col, 4) + for x, l in ((24, 14), (40, 22), (54, 10)): + chorreon(o, x, 110, l, col) + o.append('') os.makedirs(OUT, exist_ok=True) for n, (nombre, col) in enumerate(EJES.items()):