Vlastní jazyk pro tvorbu vektorových obrázků

qelurg

  • ****
  • 373
    • Zobrazit profil
    • E-mail
Vlastní jazyk pro tvorbu vektorových obrázků
« kdy: 30. 01. 2022, 20:11:40 »
Chtěl bych si naprogramovat vlastní jednoduchý jazyk na kreslení vektorových obrázků, který bych překládal do SVG.

Hlavní záměry jsou tři a to:

1) zjednodušit ruční zápis svg (zbavení se XML omáčky)
2) umožnit používat proměnné pro definici bodu, definici pera a definici přechodu
3) zjednodušit si výpočty, takže třeba pro vykreslení čáry plánuji několik způsobů zadání (x1 y1 x2 y2), (b1 b2), (b1 delka uhel)

Formát by byl jednoduchý:
Kód: [Vybrat]
B b1 = 20 20
B b2 = 20 50
P pero = <definice pera>
L pero b1 b2
L pero b2 50 30°

Naprogramovat to chci v Pythonu. Jaký parser by pro to byl nejvhodnější? Moje znalosti končí znalostí existence nástrojů flex, yacc a bison z dávné minulosti, které jsem nikdy nepoužíval. Koukám, že dnes existuje nepřeberné množství podobných nástrojů. Viz třeba článek https://tomassetti.me/parsing-in-python/ Je toho tolik, že si vlastně neumím vybrat, co je pro mé potřeby nejvhodnější. Umím si představit, že bych to udělal i pomocí regexpu, ale pro pozdější údržbu a rozšiřování by asi bylo lepší mít nějakou gramatiku, ale zase nechci jít s kanonem na vrabce. Možná by se mi líbila i možnost výpočtů typu b3 = b2 + 50 30°.
« Poslední změna: 30. 01. 2022, 20:14:48 od Petr Krčmář »


tap

Re:Vlastní jazyk pro tvorbu vektorových obrázků
« Odpověď #1 kdy: 30. 01. 2022, 20:31:42 »
Najprv by som si skúsil pozrieť čo nedokážem urobiť v metapost-e, či to tam nestačí len pridať. Až potom by som niečo začínal. A začínať výberom jazyka pokračovať hľadaním knižnice na parsovanie... neviem či je to správna cesta.


Re:Vlastní jazyk pro tvorbu vektorových obrázků
« Odpověď #3 kdy: 30. 01. 2022, 21:09:40 »
Ten jazyk co popisujes uz existuje. Vola sa postscript.

qelurg

  • ****
  • 373
    • Zobrazit profil
    • E-mail
Re:Vlastní jazyk pro tvorbu vektorových obrázků
« Odpověď #4 kdy: 30. 01. 2022, 23:00:51 »
Ten jazyk co popisujes uz existuje. Vola sa postscript.
Ten je moc složitý a těžkopádný. Já ho chci co nejjednodušší, aby ho mohly používat i děti.


qelurg

  • ****
  • 373
    • Zobrazit profil
    • E-mail
Re:Vlastní jazyk pro tvorbu vektorových obrázků
« Odpověď #5 kdy: 30. 01. 2022, 23:12:11 »
Najprv by som si skúsil pozrieť čo nedokážem urobiť v metapost-e, či to tam nestačí len pridať. Až potom by som niečo začínal. A začínať výberom jazyka pokračovať hľadaním knižnice na parsovanie... neviem či je to správna cesta.

Když kouknu na tohle https://www.root.cz/clanky/metapost-aneb-grafika-v-postscriptu/ tak je to také těžkopádné. Já potřebuji něco jednoduchého, co zvládnou děti na 1. stupni ZŠ, které se učí základy geometrie. Ta jednoduchost je základ.

qelurg

  • ****
  • 373
    • Zobrazit profil
    • E-mail
Re:Vlastní jazyk pro tvorbu vektorových obrázků
« Odpověď #6 kdy: 30. 01. 2022, 23:15:06 »
Zkuste prosím odpovědět na dotaz, jakým nástrojem parsovat nadhozený jednoduchý jazyk. Nechce se mi zkoumat to množství nástrojů, abych poznal, který je nejvhodnější. Zbytek už si pořeším sám. Děkuji.

alex6bbc

  • *****
  • 1 534
    • Zobrazit profil
    • E-mail
Re:Vlastní jazyk pro tvorbu vektorových obrázků
« Odpověď #7 kdy: 30. 01. 2022, 23:16:30 »
tak naprogramuj obrazek primo v pythonu, pocitani s promennymi primo v kodu akorat vypis budou primo sekvence svg xml, treba circle, elipse, text, path a souradnice, barvy, vlastnosti uz budes mit nachystane v promennych v pythonu.

tj. na co novy jazyk, kdyz to muzes mit primo v pythonu. tech par tagu svg je jak nic.

alex6bbc

  • *****
  • 1 534
    • Zobrazit profil
    • E-mail
Re:Vlastní jazyk pro tvorbu vektorových obrázků
« Odpověď #8 kdy: 30. 01. 2022, 23:19:44 »
kdyz pro deti, tak treba ve scratchi. pomoci bloku say muzete vypsat xml svg tag, treba <circle> a z promennych nasypat hodnoty.

Re:Vlastní jazyk pro tvorbu vektorových obrázků
« Odpověď #9 kdy: 31. 01. 2022, 03:28:00 »
Zkuste prosím odpovědět na dotaz, jakým nástrojem parsovat nadhozený jednoduchý jazyk. Nechce se mi zkoumat to množství nástrojů, abych poznal, který je nejvhodnější. Zbytek už si pořeším sám. Děkuji.

No, ja ma dobre skusenosti s antlr. Ten generuje parser v pythone na zaklade gramatiky.

S cim budete mat dobre skusenosti vy sa dozviete az si nadefinujete gramatiku a pre nu si vyberiete vhodny parser alebo parser generator. Pisat tu gramatiku na zaklade toho aky parser vam niekto odporuci nieje prave ten najlepsi napad.

Ked tak pouzite antlr4 definiciu gramatiky, ta sa da pripadne konvertovat do ebnf, naopak je to problematicke.

A az tu gramatiku budete mat definovanu tak mozno zistite ze postscript s jeho obratenou polskou notaciou, je dobry napad. Naviac deti na 1 stupni este nie su tak skazene infixovou notaciou ;)

Ink

  • *****
  • 664
    • Zobrazit profil
    • E-mail
Re:Vlastní jazyk pro tvorbu vektorových obrázků
« Odpověď #10 kdy: 31. 01. 2022, 06:38:03 »
A začínať výberom jazyka pokračovať hľadaním knižnice na parsovanie... neviem či je to správna cesta.

Nebyla by, kdyby daný jazyk rozumné knihovny neměl. Jelikož to ale není zjevně případ Pythonu a lexerů/parserů, netrápil bych se tím. Dokonce si myslím, že by se to v tomto případě dalo udělat ručně s pomocí split() na dané řádce a pár podmínek. Obecný parser není nutný.

qelurg

  • ****
  • 373
    • Zobrazit profil
    • E-mail
Re:Vlastní jazyk pro tvorbu vektorových obrázků
« Odpověď #11 kdy: 31. 01. 2022, 09:02:09 »
Zkuste prosím odpovědět na dotaz, jakým nástrojem parsovat nadhozený jednoduchý jazyk. Nechce se mi zkoumat to množství nástrojů, abych poznal, který je nejvhodnější. Zbytek už si pořeším sám. Děkuji.

No, ja ma dobre skusenosti s antlr. Ten generuje parser v pythone na zaklade gramatiky.

Děkuji za praktickou radu.

Re:Vlastní jazyk pro tvorbu vektorových obrázků
« Odpověď #12 kdy: 31. 01. 2022, 09:39:54 »
Gréta je nejlepší.

Re:Vlastní jazyk pro tvorbu vektorových obrázků
« Odpověď #13 kdy: 31. 01. 2022, 09:40:00 »
A az tu gramatiku budete mat definovanu tak mozno zistite ze postscript s jeho obratenou polskou notaciou, je dobry napad. Naviac deti na 1 stupni este nie su tak skazene infixovou notaciou ;)

Děti je hlavně dobrý nápad učit to, co budou potřebovat. Nikoliv se na ZŠ zabývat akademickou genialitou polské notace.

Re:Vlastní jazyk pro tvorbu vektorových obrázků
« Odpověď #14 kdy: 31. 01. 2022, 10:20:15 »
Děti je hlavně dobrý nápad učit to, co budou potřebovat. Nikoliv se na ZŠ zabývat akademickou genialitou polské notace.

Fakt?
"Marinka ma dve jablcka a Janko ma tri jablcka, kolko jablcok maju spolu"
Tj, 2 3 +

Alebo "Janko ma 4 jablcka a 2 zje, kolko jablcok mu zostane"
Tj, 4 2 -

A az potom sa prechadza na infixovu notaciu, vy ste nikdy mozno polsku notaciu nepotreboval, ale mnohy z tohoto serveru mali/maju napr. programovatelnu kalkulacku
« Poslední změna: 31. 01. 2022, 10:22:50 od Death Walker »