Poznámky ze 2. přednášky z UPG

This commit is contained in:
Filip Znachor 2023-05-24 11:44:59 +02:00
parent 3b9685362e
commit 740a4f3182
1 changed files with 108 additions and 0 deletions

View File

@ -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