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.
Zadatak
A je obimniji i, studentima koji ga urade u potpunosti, biće priznat kao
projekat ili semestralni rad, a urađene tačke a) i c) će se priznati kao
domaći zadatak.
Postoji
i mogućnost nadgradnje domaćih zadataka, sa ciljem da prerastu u projekat
(zadatak B) ili diplomski rad (zadatak A). 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,
- Java datoteke simulatora
- Word dokument uputstva za simulator
|
Postavka
zadatka A |
(a)
Potrebno je projektovati aplikaciju za grafički unos šeme kombinacione
mreže. Koristi se model mreže koji je opisan u postavci domaćeg
zadatka iz OOS (2002/03). Potrebno je realizovati sledeće funkcionalnosti:
- Centralni
panel za slaganje elemenata mreže;
-
Element mreže. Novi element se na panel slaže u dva koraka: 1
– izbor elementa iz liste raspoloživih (definisanih) elemenata,
2 – postavljanje elementa na panel (prethodno je moguće dati element
rotirati za 180); treba omogućiti i pomeranje/brisanje elemenata
koji se već nalaze na panelu (šemi);
-
Proširiv skup kombinacionih elemenata. Proširiv znači da je moguće
definisati nove elemente (jednostavne i složene) koji se naknadno
mogu koristiti u šemama na isti način kao već postojeci elementi;
-
Definisanje podmreže. U toku crtanja mreže, moguce je na neki
način izabrati podskup nacrtanih elemenata (opisivanjem pravougaonika
ili selektovanjem pojedinačnih elemenata) i na ovaj način definisati
podmrežu. Trenutno selektovani elementi treba da budu prikazani
drugom bojom. Kad se definiše podmreža unutar tekuće mreže, njeni
elementi se na glavnoj šemi zamenjuju blokom sa imenom mreže,
a interna struktura se pamti na posebnom dijagramu;
-
Veze izmedu elemenata. Veze se formiraju crtanjem linije izmedu
odgovarajucih pinova elemenata koji učestvuju u vezi. Nije potrebno
realizovati algoritme za rutiranje linija, one mogu inicijalno
da zauzimaju najkraću putanju između pinova koje povezuju. Ipak,
potrebno je obezbediti da korisnik može ručno optimizovati putanje
veza na sledeći način: klikom na jednu ili više tačaka veze, definišu
se temena ("tačke lomljenja") čime od linije nastaje
polilinija. Ovako definisana temena korisnik može pomerati i brisati
po želji. Osim toga, korisnik može izabrati segment polilinije
i zahtevati da taj segment bude vertikalan/horizontalan.
(b)
Simulacija – kad se definišu svi elementi mreže, pristupa se simulaciji
njenog rada:
-
Potrebno je na neki način prikazati trenutne vrednosti svih signala
u kolu (oznakom iznad odgovarajuće žice ili bojom žice), dovoljno
je koristiti tronivoski sistem (X01) za model električnog signala,
kako je uostalom definisano i u priloženom modelu
-
Realizovati "merne elektrode". Postavljanjem elektrode
na neku tačku kola, možemo pratiti vremenski oblik signala u toj
tački na posebnom grafiku u toku izvršavanja simulacije. Moguće
je postaviti više elektroda u mreži.
-
Osim prikazivanja na grafiku, rezultati simulacije za navedene
signale se upisuju u odgovarajuće datoteke sa nazivom <ime_signala>.txt.
Na ovaj način možemo da uporedimo vremenski oblik datog signala
pre i posle topoloških izmena mreže čije efekte je potrebno proveriti.
(c)
Naravno, potrebno je omogućiti učitavanje i snimanje elemenata i
šema u odgovarajuće tekstualne datoteke. Studentima se ostavlja
sloboda da definišu format koji im odgovara.
Napomena:
Kandidati
ne kreću "od nule", tj. biće im na raspolaganju već gotov
simulator kombinacione mreže, koji mogu da iskoriste kao jezgro
i da se koncentrišu na probleme vezane za grafički interfejs.
Grafički interfejs realizovanog simulatora (slika) je veoma primitivan
- koriste se samo high-level komponente, kao što su paneli,
oznake (labels), tasteri i radio-dugmad.
Slika 1: Izgled ekrana aplikacije simulatora
Slika 2: Primer izgleda aplikacije za grafički
unos šema
(za istu mrežu kao na sl. 1)
|
Primeri uspešno realizovanog domaćeg zadatka
|
Autor: Vasiljević Mihailo
|
Postavka
zadatka B |
(a)
Aplikacija za projektovanje proporcionalnih fontova pomocu ravnih
i (parametarskih) krivih linija.
-
Aplikacija treba da omogući projektovanje određenog znaka (slovo,
broj, ostali znakovi), i njegovo mapiranje tj. definisanje o kojem
znaku je reč.
-
Drugi deo aplikacije je namenjen demonstraciji ovako definisanih
fontova. Bira se font i veličina slova, a zatim se ona unose,
pritiskom na odgovarajuće tastere na tastaturi.
- Ako
karakter koji odgovara pritisnutom tasteru još nema definisanu
reprezentaciju, on se ignoriše.
-
Karakteri se predstavljaju kao popunjeni poligoni sa mogućim krivolinijskim
stranicama i sa eventualnim upisanim poligonima-"rupama"
(što zavisi od konkretnog znaka);
-
Ivice se interaktivno crtaju i definišu tako da ih je moguće naknadno
editovati (pomeranjem, dodavanjem ili brisanjem karakterističnih
tačaka);
-
Zadaje se boja popune karaktera, i iskošenje karaktera u pravcu
x-ose;
-
Ostavlja se mogućnost i jednostavnije realizacije fonta. Umesto
da se "krivolinijski" karakteri opišu parametarskim
krivim linijama, moguće je koristiti i obične poligone (naravno,
sa mnogo temena, da dobro aproksimiraju krivinu), ali tada je
potrebno omogućiti i da se karakteri mogu ispisivati pod nekim
zadatim uglom.
(b)
Potrebno je omogućiti učitavanje i snimanje fontova u odgovarajuće
tekstualne datoteke. Studentima se ostavlja sloboda da definišu
format datoteke koji im odgovara.
Slika
3: Aplikacija za projektovanje fontova
|
|
OpenGL |
Studentima
su ponuđena dva domaća zadatka, od kojih svako treba da samostalno uradi
jedan, po izboru. Postoji i mogućnost nadgradnje domaćih zadataka, sa
ciljem da prerastu u projekat ili 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 A |
(a)
Simulacija letenja i borbe. Igrač upravlja letelicom oblika piramide
(radi jednostavnosti, mogući su i komplikovaniji oblici), i bori
se protiv drugog igrača ili protiv kompjutera koji ima na raspolaganju
istu takvu letelicu. Arsenal oružja čine laser i nenavođena raketa,
slično kao u legendarnoj igri "Elite" iz 1984.
Program obavezno
treba da podrži sledeće mogućnosti:
- Teren. Teren
iznad kojeg se odvija borba je krajnje pojednostavljen i predstavljen
u vidu kvadratne mreže (širina X dužina).
- Kontrola
letelice. Letelica treba da ima sledeće kontrole: uspinjanje,
poniranje, rotacija oko ose u pravcu kretanja, u smeru kretanja
kazaljke na satu, i u suprotnom smeru. Takođe, moguće je menjati
brzinu letenja u intervalu [vmin, vmax].
- Kokpit letelice.
Na sredini ekrana treba da se nalazi nišan (? ili sličnog oblika).
Dejstvo lasera je trenutno i označava se sa četiri linije koje
polaze iz uglova ekrana i spajaju se u centru nišana. Raketa je
predstavljena kao kvadar. Posle ispaljivanja kreće se ka cilju
određenom brzinom (koja je veća od maksimalne brzine broda). Kad
izađe iz okvira bojnog polja, nestaje.
- Pogledi.
Jedna kamera treba da se nalazi unutar letelice (pogled iz kokpita).
Druga treba da se nalazi iza letelice i da gleda napred. Treća
kamera može slobodno da se kreće po terenu (x, y i z sloboda)
i da se fokusira na jednu ili drugu letelicu.
- Izgled letelice.
Spoljni izgled letelice treba da se bira između žičnog modela
(wireframe), modela neprozirnog monolitno obojenog tela (solid)
i modela neprozirnog tela sa teksturom (texture).
- Osvetljenje.
Tačkasti izvor svetlosti moguće je pomerati na jednu od pozicija
na uglovima bojnog polja na visini H ili na trenutnu poziciju
kamere (efekat "rudarske lampe"). Osim toga, postoji
i ambijentalno osvetljenje čiji je intenzitet moguće menjati.
Takođe, program
može da podrži i sledeće mogućnosti:
- Poboljšani
izgled terena (teksture, definisanje reljefa kao triangularne
mreže).
- Detekcija
kolizije-udara (collision detection) – detekcija pogotka lasera,
udara rakete/letelice u letelicu ili letelice u tle.
- Veštačka
inteligencija kompjuterskog pilota. U osnovnoj varijanti za jednog
igrača mogla bi mu se zadati neka definisana putanja sa slučajnim
odstupanjima, a u proširenjima zadatka (projekat/semestralni rad)
treba definisati neki algoritam za borbu.
- Treba omogućiti
da se opisi letelica mogu čitati iz tekstualnih (ili XML) datoteka.
(b)
Prilikom pokretanja aplikacije učitavaju se opisi letelica i dimenzije
terena.
|
Primeri uspešno realizovanog domaćeg zadatka
|
Autor: Vasiljević Mihailo
|
Postavka
zadatka B |
(a)
Aplikacija za demonstraciju mogućnosti trodimenzionalne grafike
i OpenGL-a. Aplikacija treba na ubedljiv način da prikaže elementarne
i kombinovane transformacije, da bi se mogla koristiti u nastavi.
Program
obavezno treba da podrži sledeće mogućnosti:
- Objekti. Modeli trodimenzionalnih objekata mogu biti žični (wireframe),
neprozirni (solid) ili sa nalepljenom teksturom. Opis objekta se
učitava iz datoteke.
- Transformacije. Moguće je zadati bilo koju od elementarnih transformacija,
ili proizvoljnu složenu 3D transformaciju. Tekuća matrica transformacije
objekta treba da bude prikazana na posebnom panelu na ekranu aplikacije.
- Lokalni koordinatni sistem objekta. Ose LKS objekta (desni pravougaoni
KS) mogu da se prikažu/uklone pritiskom na dugme.
- Izvođenje transformacije. Prilikom izvođenja transformacije,
"zatamnjeni" objekat (ili wireframe verzija objekta)
ostaje na starom položaju, a objekat se iscrtava na novom položaju.
- Kamera. Interaktivno se može menjati rastojanje kamere od objekta,
a kamera je uvek fokusirana na objekat.
- Osvetljenje. Tačkasti izvor svetlosti se nalazi na trenutnoj
poziciji kamere (efekat "rudarske lampe"). Osim toga,
postoji i ambijentalno osvetljenje čiji je intenzitet moguće menjati.
- Animacija. Da bi aplikacija imala što bolja edukativna svojstva,
transformacija ne treba da se izvrši trenutno (kao što je to uobičajeno),
već da se prikazuje animacija koja prevodi objekat iz stare u
novu poziciju.
Takođe,
program može da podrži i sledeće mogućnosti:
-
Interaktivno skaliranje objekta. Transformacija skaliranja se može
zadati i uključivanjem odgovarajućeg alata i zatim akcijama miša
nad objektom.
- Režim pokretnog objekta. Zadaje se brzina kretanja objekta duž
sve tri ose njegovog koordinatnog sistema, kao i brzina njegove
rotacije oko sve tri ose. Ove vrednosti mogu se menjati interaktivno
u toku izvršavanja aplikacije.
- Snimanje "filma". Pravi se dnevnik događaja kretanja
objekta koje se kasnije može učitati i reprodukovati.
(b)
Prilikom pokretanja aplikacije učitava se opis objekta i tekstura.
|
|