diff --git a/KIV UPG/02. Pokročilá 2D vektorová grafika.md b/KIV UPG/02. Pokročilá 2D vektorová grafika.md new file mode 100644 index 0000000..6428fa6 --- /dev/null +++ b/KIV UPG/02. Pokročilá 2D vektorová grafika.md @@ -0,0 +1,108 @@ +# Pokročilá 2D vektorová grafika + +## Afinní transformace + +- umožňuje nastavit, jak chceme transformovat kreslený objekt +- výsledná transformace se skládá z + - posunutí (translace) + - rotace okolo počátku souřadného systému + - změna měřítka (scaling) na ose x či y +- záleží na pořadí jednotlivých transformací + +**Instancování** +- model je definován na jednom místě +- můžeme jej použít víckrát na různých místech pomocí transformace + +## Modelování objektů + +- objekt nevzniká postupným vykreslováním primitiv, ale je definovaný předem +- popis objektu je uložen v paměti +- objekt modelován složením primitiv + +**Cesta** +- trajektorie pera opisující obrys objektu +- může být **otevřená** nebo **uzavřená** +- zahájení cesty, přidání primitiv do cesty, ukončení cesty +- cesta může být definována po částech (primitivem může být jiná cesta) ++ složená z elementárních primitiv ++ podporovaná primitiva + + bod, úsečka, obdélník, oblouk, parametrické křivky, ... + +**Region** +- obrysem regionu je uzavřená cesta +- region - uvažujeme vnitřek, nezajímá nás obryz +- uzavřená cesta - neuvažujeme vnitřek ++ obvyklé booleovské operace + + sloučení (union), průnik (intersection), rozdíl (subtraction), doplňek (XOR) +- podporovaná primitiva + - obdélník, elipsa a kruh, polorovina, ... ++ používány pro ořezávání (clipping) a constructive area geometry (CAG) + +**Ořezávání** (clipping) +- odstraní veškerou grafiku mimo ořezovou oblast (= region) +- zjednodušuje vykreslování složitějších tvarů +- může být výpočetně náročnější + +## Formáty vektorové grafiky + +- vektorovou grafiku lze obvykle uložit na disk nebo nahrát ze souboru + +**Binární formáty** +- Windows Metafile (WMF), Enhanced Metafile (EMF), EMF+ +- Portable Document Format (PDF) +- OpenDocument Graphics (ODG) +- Adobe Illustrator Artwork (AI) +- Encapsulated PostScript (EPS) +- CorelDraw (CDR) + +**Textové formáty** +- Encapsulated PostScript (EPS) +- Extensible Application Markup Language (XAML) +- Scalable Vector Graphics (SVG) + +Formáty je možné konvertovat, ale může to vést ke ztrátě informace. + +**Ukládání vektorové grafiky** +- vytvoření grafického kontextu pro vektorový formát +- kreslení na grafický kontext +- uvolnění grafického kontextu a uzavření souboru ++ pro textové soubory se často používá vlastní zápis do souboru dle specifikace + +**Načtení vektorové grafiky** +- různé v různých knihovnách +- u EMF vykonání grafických příkazů ze souboru +- u SVG přes speciální komponentu pro zobrazení na obrazovce (převede SVG na rastr) + +**SVG formát** +- určeno na web (HTML5), postaveno na XML +- relativně hodně rozšířené +- možnost animované grafiky + +**XAML formát** +- určeno pro .NET desktopové aplikace +- vytvořeno Microsoftem, postaveno nad XML +- relativně hodně rozšířené +- možnost animované grafiky +- součástí mohou být i jiné prvky než grafika + - UI, napojení na databáze, data binding, ... + +## Zobrazení na tiskárně + +- papír nelze interaktivně posouvat +- musí se zobrazit celá kresba ++ je potřeba brát v potaz fyzickou velikost papíru (formát) + - Evropa + - **ISO 216 A, B, C** + - Nejběžnější **A4** + - 210 x 297 mm + - USA + - Nejběžnější **ANSI A** (Letter) + - 8.5 x 11 palců + - 216 x 297 mm +- většinou není možné kreslit na kraje papíru + - minimálně 3 mm bílý okraj +- papír se může sešívat ++ knihovny většinou podporují + + dialog pro výběr tiskárny, formátu papíru, orientace, kvality, ... + + vrací vytvořený grafický kontext + + metody pro zahájení a dokončení tisku dokumentu nebo jedné strany \ No newline at end of file