FAV-ZCU/KIV UPG/02. Pokročilá 2D vektorová grafika.md

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