KONSTRUKTIVNA GEOMETRIJA
|
|||||||||||||
|
Koriste se tri osnovne operacije:
Izgradnja tijela se obavlja od listova stabla prema korijenu, ali tako da se na svakoj sljedećoj razini koristi rezultat dobiven na nižoj razini. Programski je vrlo jednostavno realizirati strukturu ovakvog stabla. Za jezik C možemo pisati:
typedef struct _csgtree
čime se tvori struktura jednog čvora stabla. Osnovni elementi su pokazivači na lijevi i desni čvor-dijete, te operator koji se koristi na čvorovima-djeci ili 3D objekt, ako je riječ o listu stabla.
Problem kod konstruktivne geometrije je određivanje rezultata operacija na tijelima tj. određivanje dijela tijela koji treba pripadati novome objektu, a koji ne. Ako se koriste jednostavni objekti, određivanje rezultata će se obavljati bacanjem zrake. Postupak predviđa bacanje guste mreže zraka kroz sve objekte. Zraka na svome putu može ne sjeći objekt, sjeći ga u jednoj točci ili ga probadati u najmanje dvije točke. Kada se za jednu zraku nađu sve točke presjeka sa objektima, ovisno o operaciji zadanoj za objekte pristupa se odabiranju dijela presjeka koji se zadržava i onoga koji se odbacuje. Pogodnost ovakvog postupka je u tome što je moguće lako implementirati algoritam spuštanja po stablu i računanja presjecišta.
| ||||||||||||
|