Cvičenie 4

Príklad 1
Vytvorte a zobrazte drôtený model gule. Program by mal poskytovať možnosť zobraziť drôtený model zhora (premietame tak, že položíme z=0, x a y ostanú zachované) alebo zboku (pri premietaní položíme y=0).

Stred a polomer gule zadá užívateľ napr. pomocou TextBoxov. Takisto zadá, koľko bude mať drôtený model rovnobežiek a poludníkov.
Drôtený model sa zostrojí tak, že sa vypočítajú body ležiace na povrchu gule a tie sa potom pospájajú úsečkami. Body (resp. poludníky a rovnobežky) budú rozmiestnené rovnomerne. Na ich výpočet sa použije parametrické vyjadrenie guľovej plochy:
x=r.cos.sin
y= r.sin.sin
z= r.cos

Príklad 2
Napíšte program, ktorý vykreslí objekt daný v súbore ‘polydata.vtk’. Dáta v tomto súbore sú vo formáte vtk polydata. Princíp je taký, že najskôr je daná tabuľka vrcholov a potom tabuľka hrán, ktorá určuje, ktoré vrcholy z tabuľky vrcholov budú spojené hranou. Pri zobrazenní môžete ignorovať súradnicu z.
Súbor vyzerá takto:
# vtk DataFile Version 1.0	//hlavička
ASCII

DATASET POLYDATA
POINTS 22 float		//počet bodov
0.0 0.0 0.0			//body dané súradnicami x,y,z
0.0 2.0 0.0			
0.0 1.0 0.0
1.0 1.0 0.0
1.0 0.0 0.0
1.0 2.0 0.0
2.0 0.0 0.0
3.0 0.0 0.0
2.0 2.0 0.0
3.0 2.0 0.0
2.0 1.0 0.0
3.0 1.0 0.0
4.0 0.0 0.0
5.0 2.0 0.0
4.0 2.0 0.0
6.0 0.0 0.0
7.0 2.0 0.0
6.0 2.0 0.0
8.0 0.0 0.0
9.0 0.0 0.0
8.0 2.0 0.0
9.0 2.0 0.0

LINES 15 45			//prvé číslo je počet hrán, druhé počet čísel, ktoré nasledujú
2 0 1				//2 hovorí, že nasledujú 2 body, ďalšie 2 čísla ukazujú do 
2 4 5				//tabuľky vrcholov, sú to teda vrcholy, ktoré sú spojené čiarou
2 2 3
2 6 8
2 6 7
2 10 11
2 8 9
2 13 14
2 12 14
2 16 17
2 15 17
2 18 19
2 20 21
2 18 20
2 19 21

Príklad 3
Napíšte program, ktorý vykreslí drôtený model objektu daného v súbore ‘fran_cut.vtk’. Tento súbor má podobnú štruktúru ako súbor z predchádzajúceho príkladu. Rozdiel je v tom, že teraz je namiesto tabuľky hrán daná tabuľka trojuholníkov, ktoré tvoria drôtený model. Načítate teda všetky vrcholy a potom vykreslíte príslušné trojuholníky.
Pre zobrazenie môžete použiť nasledujúcu transformáciu bodov (projekcia+otočenie+preklopenie+škálovanie+posunutie). Ak pôvodný načítaný vrchol má súradnice (x,y,z), tak jeho obraz bude mať súradnice:
X = z*2000+400
Y = -y*2000
Pri projekcii sme ignorovali súradnicu x. Môžete skúsiť aj iné projekcie a transformácie. Pri uvedenej transformácii by mal výsledok vyzerať takto: