3.6 KiB
3.6 KiB
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
- Nejběžnější ANSI A (Letter)
- Evropa
- 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
- dialog pro výběr tiskárny, formátu papíru, orientace, kvality, ...