Računarska grafika (RI5RG)
glavna >> domaći zadatak
Domaći zadatak (2004/05)

[Informacije] [Java2D] [OpenGL]

 

Informacije

Domaći zadatak se brani nakon položenog ispita, u istom ispitnom roku.
Termin za odbranu zakazuje se prilikom objavljivanja rezultata ispita.

Ocena se dobija sabiranjem poena ostvarenih na ispitu i poena ostvarenih na domaćem zadatku:

P = I + DZ

Maksimalni broj poena na ispitu (I) je 70. Maksimalni broj poena na domaćem zadatku (DZ) je:

  • u prvom (januarskom) roku: 40 = Java2D(20) + OpenGL(20)
  • u ostalim rokovima: 30 = Java2D(15) + OpenGL(15)

Ocena se dobija saglasno sledećoj tabeli:

Poeni (P)
[0 - 50]
[51 - 60]
[61 - 70]
[71 - 80]
[81 - 90]
[91 - ]
Ocena
5
6
7
8
9
10

Java2D

Studentima su ponuđena dva domaća zadatka iz oblasti Java2D, od kojih svako treba da samostalno uradi jedan, po izboru.

Varijanta zadatka (a) predstavlja domaći zadatak iz Računarske grafike, a proširenje (b) urađeno u potpunosti biće priznato kao projekat ili semestralni rad.

Postoji mogućnost nadgradnje projekata sa ciljem da prerastu u diplomski rad. Nakon uspešne odbrane domaćeg zadatka, studenti zainteresovani za projekat ili diplomski rad mogu da se obrate predmetnom asistentu ili nastavniku.

 

  • Word dokument postavke zadatka

Postavka zadatka 1

(a) Projektovati aplikaciju za grafičko predstavljanje sistemskog vremena u vidu časovnika. Časovnik može biti analogni (sa kazaljkama) ili digitalan. Potrebno je realizovati sledeće funkcionalnosti:

  • Čitanje sistemskog vremena;
  • Izbor vrste časovnika (analogni ili digitalan);
  • Izbor da li treba prikazivati sekunde ili ne;
  • Za digitalne časovnike: izbor načina prikazivanja časova
    • 0 - 23
    • 0 - 12 uz oznake AM i PM
  • Izbor stila časovnika (nešto kao pojam "skin"-a kod raznih aplikacija, kao što je na primer WinAmp):
    • za analogne: izbor izgleda i boje kazaljki i brojki
    • za digitalne: izbor izgleda i boje cifara
    U oba slučaja ponuditi korisniku mogućnost da bira pozadinsku sliku nad kojom se iscrtava časovnik. Treba ponuditi nekoliko mogućnosti (minimalno 3) za obe vrste časovnika.
  • Ručno podešavanje trenutnog vremena
    • putem posebnog dijaloga ili posebnog dela u grafičkom interfejsu
    • direktnom interakcijom sa časovnikom
      • za analogne: pritiskom miša na odgovarajuću kazaljku i njenim pomeranjem u odgovarajuću poziciju
      • za digitalne: kliktanjem miša na odgovarajuće segmente "displeja" kojim su iscrtane cifre

(b) Napredne funkcionalnosti časovnika:

  • Alarm časovnika: moguće je podesiti više trenutaka kada će se alarm aktivirati; predvideti mogućnost privremenog pauziranja alarma (nekom akcijom korisnika, alarm se privremeno zaustavi, ali se posle određenog vremena koje korisnik podesi, ponovo aktivira sve dok korisnik trajno ne zaustavi taj alarm). Alarm ima sledeće režime aktiviranja: jednom, svakodnevno, svakodnevno sem vikenda, jednom na svakih n sati ili n dana, jednom godišnje. Realizovati snimanje alarma u fajl (tekstualni) i automatsko čitanje istog prilikom startovanja aplikacije.
  • Imenovanje i prikazivanje više nezavisnih časovnika od jednom; za svaki je moguće podešavanje svih parametara nezavisno od drugih časovnika, dok se ime ispisuje u okolini same grafičke predstave časovnika (tako da se nedvosmisleno zna na koji časovnik se odnosi).
Studentima se ostavlja sloboda da sve nedovoljno precizirane pojedinosti (kao što je na primer format fajla u kome se snimaju podaci pod tačkom b) realizuju kako njima najviše odgovara.

Primer uspešne realizacije časovnika (autor Spasojević Marko)

Postavka zadatka 2

(a) Napraviti aplikaciju koja omogućava igranje šaha na računaru:

  • Šahovska tabla se sastoji od 8x8 naizmenično "crnih" i "belih" polja. Osim polja, potrebno je obeležiti vrste (slovima A do H) i kolone (brojkama 1 do 8) table. Omogućiti izbor boja odnosno digitalnih slika (odgovarajućih dimenzija) za iscrtavanje jedne i druge vrste polja.
  • Svaku figuru (kralj, kraljica, lovac, konj, top i pešak) predstaviti kao jedan ili više poligona (po potrebi). U zavisnosti od vrste stilizovanja figura, jedna figura može imati više boja (na primer, vrh "belog" lovca se boji u "crnu" boju i obratno). Omogućiti izbor boja za "belog" i "crnog" igrača. Ponuditi nekoliko različitih setova figura (najmanje 3)
  • Po startovanju aplikacija treba da iscrta šahovsku tablu i poređa sve figure na startne pozicije, tako da se figure jednog igrača nalaze na vrhu a figure drugog na dnu table. Omogućiti izbor gde će se nalaziti beli igrač (na vrhu ili dnu table).
  • Pomeranje figura vrši igrač koji je trenutno na potezu, a samo pomeranje se vrši po principu "drag and drop", tj. pritiskom dugmeta miša iznad figure koju treba pomeriti, pomeranjem miša na poziciju gde treba premestiti figuru (figuru crtati kako se pomera zajedno sa mišem) i puštanjem dugmeta miša kada je figura postavljena na željenu poziciju. Prilikom pomeranja figura proveriti da li su poštovana pravila pomeranja figura. U slučaju nepoštovanja pravila, figuru vratiti na prethodnu poziciju (odakle je pokušan njen premeštaj) uz upozorenje. Ne treba dozvoliti pomeranje figura protivničkog igrača (ignorisati "drag and drop").
  • Omogućiti snimanje i učitavanje konfiguracije, tj. stila table i figura
  • Omogućiti snimanje i učitavanje trenutne pozicije u igri uz vođenje računa koji igrač je na potezu

(b) Radi unapređenje aplikacije opisane pod (a), treba obezbediti sledeće funkcionalnosti:

  • Editovanje oblika figura kao i njihovo učitavanje iz i snimanje u fajl
  • Biranje načina igranja (na sat ili bez sata). Ako se igra na sat, omogućiti podešavanje vremena igre i ispisivati preostalo vreme za svakog igrača
  • Ispisivanje liste prethodno odigranih poteza u formatu XY1 - XY2, gde indeksi 1 i 2 respektivno označavaju pozicije sa koje i na koju se pomera figura, X označava vrstu a Y kolonu na tabli (na primer A21 - C32)
  • Crtanje svih figura pojedenih tokom partije

Primer uspešne realizacije šaha (autor Kovačević Andrija)
OpenGL

Studentima su ponuđena dva domaća zadatka iz oblasti primene sistema OpenGL, od kojih svako treba da samostalno uradi jedan, po izboru. Varijanta zadatka (a) predstavlja domaći zadatak iz Računarske grafike, a proširenje (b) urađeno u potpunosti biće priznato kao projekat ili semestralni rad. Postoji mogućnost nadgradnje projekata sa ciljem da prerastu u diplomski rad. Nakon uspešne odbrane domaćeg zadatka, studenti zainteresovani za projekat ili diplomski rad mogu da se obrate predmetnom asistentu ili nastavniku.

  • Word dokument postavke zadatka

 

Postavka zadatka 1

(a) Napraviti aplikaciju koja bi mogla da se koristi kao edukativni softver za demonstriranje kretanja nebeskih tela (zvezda, planeta, prirodnih satelita) u jednom zvezdanom sistemu. Opis jednog zvezdanog sistema:

  • sistem može da ima jednu ili dve zvezde. Ako u sistemu postoji samo jedna zvezda, smatrati da se centar mase celog sistema nalazi u centru zvezde. Ako u sistemu postoje dve zvezde, smatrati da se centar mase nalazi na polovini razdaljine između centara zvezda
  • smatrati da su zvezde jedini izvori difuzne svetlosti. Ceo sistem prima ambijentalnu svetlost slabog intenziteta (pozadinsko zračenje od ostatka Vasione).
  • sistem može da ima proizvoljan broj planeta
  • svaka planeta može da ima proizvoljan broj prirodnih satelita
  • sva nebeska tela rotiraju oko sopstvene ose
  • zvezde i planete rotiraju oko centra mase sistema
  • sateliti rotiraju oko svojih planeta
  • smatrati da se sve rotacije vrše po kružnim putanjama, kao i da sve planete i svi sateliti kruže u istoj ravni
  • smatrati da sva nebeska tela imaju oblik lopte

Aplikacija treba da obezbedi sledeće funkcionalnosti:

  • biranje broja zvezda i planeta, a za svaku od planeta i broj satelita
  • biranje veličine (poluprečnika) nebeskih tela
  • biranje udaljenosti zvezda od centra mase, u slučaju sistema sa dve zvezde
  • biranje poluprečnika rotacije od centra mase za svaku planetu, odnosno od centra planete za svaki satelit. Na osnovu udaljenosti od centra mase, aplikacija sama proračunava brzinu kojom se nebeska tela rotiraju tako da brzina rotacije opada sa udaljenošću od centra mase
  • biranje tekstura za planete i njihove satelite
  • biranje boja zvezda: zvezde imaju specifičnu boju, koja je ujedno i boja svetla koje emituju
  • animiranje kretanja nebeskih tela uz mogućnost promene brzine protoka animacionog vremena
  • pozicioniranje posmatrača:
    • na pravoj koja prolazi kroz centar mase sistema a normalna je na ravan rotacije nebeskih tela. Posebnim komandama omogućiti približavanje odnosno udaljavanje od centra mase sistema
    • u centru bilo kog nebeskog tela (nebesko telo u čijem se centru posmatrač nalazi se ne prikazuje)
    • putovanje posmatrača od jednog nebeskog tela ka drugom, određenom brzinom
  • biranje tačke u koju posmatrač gleda:
    • centar mase sistema
    • bilo koje nebesko telo, sem onoga na kome se posmatrač trenutno nalazi

Uz aplikaciju dostaviti tri primera zvezdanih sistema od kojih jedan treba da bude Sunčev sistem. Smatrati da Sunčev sistem ima 9 planeta, odnosno da Pluton nema satelit Haron. Takodje smatrati da Jupiter, Saturn i Neptun nemaju »prstenje«.

(b) Napredne funkcionalnosti simulatora zvezdanih sistema

  • zadavanje nagiba ravni u kojoj nebeska tela rotiraju u odnosu na njihovu ravan revolucije
  • zadavanje smera rotacije satelita oko sopstvene ose i oko svoje planete
  • kreiranje posebnog tipa planete koja, kao na primer Saturn, ima jedan ili više prstenih pojasa
  • prikazivanje kretanja kometa. Rep komete je uvek okrenut suprotno od zvezda koje je obasjavaju
  • generisanje senki nebeskih tela, za svaki izvor svetla
  • detekcija sudara dva nebeska tela uz adekvatno upozorenje korisniku o tom događaju

Studentima se ostavlja sloboda da sve nedovoljno precizirane pojedinosti (kao što je na primer način zadavanja izgleda sistema ili brzina animacije) realizuju tako što donose profesionalno razumne pretpostavke.


Primeri uspešno realizovanog simulatora planetarnog sistema:
Autor: Milošević Vladimir

Autor: Milošević Aleksandar

Postavka zadatka 2

(a) Napraviti aplikaciju »Virtuelni muzej« koja omogućava korisniku da vrši interaktivni obilazak muzeja i razgleda izložene eksponate. Muzej realizovati kao prizemnu zgradu, čiji su zidovi, odnosno pod, popločani raznim vrstama mermera, sa 4 prostorije pravougaone osnove koje su raspoređene tako da postoji jedna centralna prostorija a ostale tri dele po jedan zid sa njom. Paralelno sa zidovima prostorija nalaze se crveni tepisi po kojima je predviđeno da posetioci hodaju. Po jedna vrata zatvaraju svaki prolaz između prostorija. Posetilac muzeja započinje svoju posetu u sredini centralne prostorije. Na zidovima svake prostorije se nalaze izložene slike, od kojih su neke uokvirene običnim ramovima a neke se nalaze iza staklenog zaklona. Ispod svake slike treba da stoji tabla na kojoj piše kratka informacija o umetničkom delu.

Program obavezno treba da podrži sledeće mogućnosti:

  • Kretanje posetioca korišćenjem tastature i/ili miša, slično kao u popularnoj igri »Quake«. Posetilac može da spušta i podiže pogled. Onemogućiti prolazak kroz zidove ili zatvorena vrata.
  • Otvaranje i zatvaranje vrata: kada priđe vratima, posetilac može da otvori zatvorena vrata, odnosno da zatvori otvorena vrata.
  • Paljenje i gašenje svetla: u svakoj prostoriji treba da postoji prekidač za svetlo u toj prostoriji. Svetlo iz jedne prostorije ne treba da ima uticaja na osveljenje drugih prostorija.
  • Posetilac sa sobom nosi baterijsku lampu koju može da uključi kada je u prostoriji ugašeno svetlo. Svetlo koje potiče od baterijske lampe treba da bude usmereno.
  • Uključivanje alarma: kada posetilac priđe suviše blizu nekom od eksponata, u celom muzeju se aktivira alarm u vidu crvenog svetla koje se pali i gasi, sve dok se posetilac ne udalji od eksponata

(b) Napredne funkcionalnosti »Virtuelnog muzeja«

  • Snimanje i reprodukcija putanje obilaska muzeja
  • Dodavanje jednog sprata muzeju, na koji korisnik može da se popne stepenicama iz centralne prostorije
  • Osim slika, kao eksponate prikazivati skulpture. Alarm se aktivira kada posetilac priđe suviše blizu nekoj skulpturi.

Studentima se ostavlja sloboda da sve nedovoljno precizirane pojedinosti realizuju tako što donose profesionalno razumne pretpostavke.


Primeri uspešno realizovanog Virtuelnog Muzeja:
Autor: Tasić Aleksandar

Autor: Stojiljković Nikola

Autor: Jagodić Marko

Autor: Spasojević Marko

Autor: Han Matija