Softwarový projekt Vrr – Vektorový editor

Vedoucí projektu: Martin Mareš, mares@kam.mff.cuni.cz

Počet řešitelů: 6 (naplněn)

Popis projektu

Cílem projektu je vytvořit editor vektorových obrázků uzpůsobený pro snadné kreslení ilustrací do (nejen) matematických článků.

Editor nemusí hýřit spoustou featur vhodných zejména pro tvorbu moderního umění, naopak je lepší být ve featurách střídmější a soustředit se na jednoduchou a přitom dostatečně silnou základní množinu operací (čítající nejen klasická grafická primitiva, jako jsou body, úsečky, kruhové oblouhy, Bézierovy křivky apod., ale také operace pro skládání a transformování existujících objektů) a modulární mechanismus, jehož prostřednictvím bude možné snadno editor rozšířit o operace nové – ať již formou pluginů (podobně jako třeba v Gimpu) nebo jednoduchých programů v nějakém zabudovaném programovacím jazyce.

Program by měl fungovat pod Linuxem a používat grafické rozhraní založené na X Window a některém z běžných toolkitů (nejlépe GTK). Je rozumné předpokládat uživatele, který je ochoten strávit nějaký čas učením se méně obvyklého ovládání programu, pokud to přinese podstatné zpříjemnění práce s programem – cílem není zavděčit se každému, nýbrž poskytnout kvalitní nástroj pro pokročilé uživatele.

Nutností je propojení s existujícími kreslícími a sázecími programy – import a export běžných formátů dat (zejména SVG; export též do PDF a EPS), vkládání hotových obrázků do TeXových dokumentů a naopak doplnění obrázků popiskami vysázených TeXem. Výstup by měl být bez úprav použitelný pro sazbu knih a článků, proto by program měl umět pracovat se skutečnými rozměry (zadanými např. v milimetrech).

Jednotlivé grafické objekty by mělo být možné zadávat nejen absolutními souřadnicemi uvnitř obrázku, nýbrž také relativně k již existujícím objektům (jejich význačným bodům, průsečíkům atd.). Program by měl tyto závislosti průběžně udržovat, tj. změní-li se některý objekt, přepočítají se automaticky i objekty na něm závislé.

Editor je též možné rozšířit o další funkce, například pro vytváření slidů nebo pro práci s knihovnami objektů.