Vježbe 10
Parametarske krivulje i plohe
Primjer 1:
Lagrangeov interpolacijski polinom - uočite nagle oscilacije kako raste
stupanj polinoma.
Izvorni kod:
lagrange.c
Točke se postavljaju pritiskom lijeve tipke na mišu (svaka slijedeća
točka mora biti desno od prethodne). Pošto su postavljene, točke se mogu
pomicati gore-dolje (doći na točku i stisnuti lijevu tipku miša, povući
pokazivač na željenu visinu, te pustiti tipku). Za izlaz iz programa
pritisnuti srednju tipku na mišu.
Primjer 2:
Bezierova krivulje i splajnovi. Uočite kako se modificiraju kad se pomiču
kontrolne točke.
Izvorni kod:
bezierS1d.c
Točke se postavljaju pritiskom lijeve tipke na mišu - položaj svake
slijedeće točke je potpuno proizvoljan. Pritiskom na desnu tipku započinje
se novi splajn. Točke se mogu po volji seliti (postaviti pokazivač na
točku, pritisnuti lijevu tipku miša i povući do nove pozicije, te
pustiti tipku). Za izlaz iz programa pritisnuti srednju tipku na mišu.
Primjer 3:
B-splajnovi stupnja 4 (tj. kubični): bijela krivulja je otvoreni
jednoliki B-splajn, a cijan krivulja je jednoliki periodički B-splajn.
Iscrtkana plava krivulja je Bezierova. Za specijalni slučaj kod 4 točke
otvoreni B-splajn identičan je s Bezierovom krivuljom. Uočite kako se B-splajnovi ponašaju kad se pomiču kontrolne točke. Periodički B-splajn
stupnja 4 može se zatvoriti (tj. spojiti početak i kraj u zatvorenu
krivulju) ako se preklope prve i zadnje 3 točke.
Izvorni kod:
Bspline1d.c
Točke se postavljaju pritiskom lijeve tipke na mišu - položaj svake
slijedeće točke je potpuno proizvoljan. Pritiskom na desnu tipku započinje
se novi splajn. Točke se mogu po volji seliti (postaviti pokazivač na
točku, pritisnuti lijevu tipku miša i povući do nove pozicije, te
pustiti tipku). Za izlaz iz programa pritisnuti srednju tipku na mišu.
Primjer 4:
Bezierove plohe u OpenGL-u. Izvorni kod:
cutura.c
Za rotaciju koristi se miš - pritisnuti lijevu tipku i povući
u željenom smjeru. Za izlaz iz programa pritisnuti srednju tipku
na mišu.
- 'n' - smanjuje broj poligona u mreži
- 'N' - povećava broj poligona u mreži
- 'a' - isključuje automatsko generiranje vektora normale
- 'A' - uključuje automatsko generiranje vektora normale
Primjer 5:
B-splajn plohe u OpenGL-u. Izvorni kod:
boca.c
Za rotaciju koristi se miš - pritisnuti lijevu tipku i povući
u željenom smjeru. Za izlaz iz programa pritisnuti srednju tipku
na mišu.
- 'm' - uključuje prikaz žičane mreže
- 'M' - uključuje prikaz s ispunjenim poligonima
-
- 'n' - smanjuje se tolerancija kod teseliranja
- 'N' - povećava se tolerancija kod teseliranja
- 'a' - isključuje automatsko generiranje vektora normale
- 'A' - uključuje automatsko generiranje vektora normale
10.1. Modificirajte plinsku bocu iz primjera 5 (ili eventualno
cuturu iz primjera 4) u snjegovića, žarulju, cepelin, podmornicu, amforu,
ribu, kasicu-prasicu - bilo što, što vam padne na pamet!