Program pro kreslení modelů
Zadání  z roku 2008

Odkazy místní

Odkazy do Internetu

Zadání

Bude sloužit pro následující účely:

Navrhovaným podkladem pro výrobu je dosavadní modul pro kreslení modelů v Databázi. Jako východisko pro nový program je připraven jednoduchý samostatný program s jedním příkladem vestavěným (kofein) a čtyřmi dalšími vystavenými na Internetu (pěti- a šesti-úhelníky). Program je odladěn ve Win32, měl by být snadno upravitelný i pro Linux. Program se skládá z modulů: Hlavními rozšířeními stávajícího programu mají být: Později by program měl umět: Přesné požadavky na tuto verzi: Dokumentace V. Blahy

Základní grafické objekty

Všechny tyto objekty (viz seznam níže) jsou reprezentovány jednotným způsobem. Datový typ použitý pro tyto objekty má následující položky:

Deklarace objektů

Syntax deklarace:
[<name>=]<basic_shape>(<params>)

Přehled základních grafických objektů

objekt počet
souřadnic
význam
souřadnic
počet
barev
význam
barev
počet
atributů
význam
atributů
pixel 2 x, y 1 color 0 n/a
line 4 x0, y0, x1, y1,  width 1 color 1 style
rect 4 x0, y0, x1, y1, outline width 2 color, fillcolor 2 outline  style, fill
polygon n x0, y0, ... 2 color, fillcolor 2 outline  style, fill
circle 3 x, y, r, outline width 2 color, fillcolor 1 fill
arc 5 x, y, r, a0, a1 1 color 1 line style
ellipse 4 x, y, a, b, outline width 2 color, fillcolor 1  fill
text 2 x,y 1 color 4 font, justification, x-scale, y-scale

Grafické znázornění objektů spolu se znázorněním všech parametrů by mělo být dostupné v dostatečně pokročilé implementační fázi.

Seskupovaní objektů - vrstvy

Objekty můžou být seskupovány do tzv. vrstev (layer). Vrstva je charakterizovaná svými rozměry (width, height), které určují souřadnicovou soustavu vrstvy - obdélníkový výřez daných rozměrů, ke kterému jsou vztahovány souřadnice všech objektů vrstvy (souřadnice x=0, y=0 odpovídají levému hornímu rohu. Vrstva může obsahovat libovolné základní objekty nebo další vrstvy (na libovolných souřadnicích a v libovolném zvětšení). Každý objekt musí ležet v nějaké vrstvě.

Definice vrstvy

layer <name>(<width>, <height>)
 deklarace objektu
       ...
end

Použití vrstev

Vrstvu lze použít v jiné vrstvě jako grafický objekt. Syntax je následující:
<layer_name>(<x>, <y>, <width>, <height>)
Definujme tedy jako příklad vrstvu test_layer takto:
layer test_layer(200, 150)
      line(0, 0, 200, 150, 3, 2)
end
Za tohoto předpokladu lze populární čáru z bodu (0, 0) do bodu (400, 300) širokou 4 pixely barvy 3 získat zápisem
test_layer(0, 0, 400, 300)
Vrstvy jsou rovněž využity k reprezentování cílových obrázků či snímků animace.