108 lines
3.6 KiB
Markdown
108 lines
3.6 KiB
Markdown
|
# 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
|