1. RASTERSKI PRIKAZIVAČI

Size: px
Start display at page:

Download "1. RASTERSKI PRIKAZIVAČI"

Transcription

1 RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG). RASTERSKI PRIKAZIVAČI Sledeća slika prikazuje izgled signala slike za vreme trajanja jedne horizontalne linije (t H ) t HFP : horizontal front porch time t HBP : horizontal back porch time t HB : horizontal blanking time t HA : horizontal active time t H : horizontal time Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA od 68

2 RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG). Zadatak Date su sledeće karakteristike monohromatskog monitora: - horizontalna frekvencija: f H =.7kHz - vertikalna frekvencija: f V = (43-5.7)Hz - minimalno vreme zamračenja (blanking): - horizontalnog: t HB(min) = 9µs - vertikalnog: t VB(min) = µs - tipično vreme zamračenja (blanking): - horizontalnog: t HB(typ) = µs - vertikalnog: t VB(typ) = µs - tipično trajanje prednje stepenice (front porch) zamračenja: - horizontalnog: t HFP(typ) = 4µs - vertikalnog: t VFP(typ) = 58µs - tipično trajanje sinhronizacije: - horizontalnog: t HS(typ) = µs - vertikalnog: t VS(typ) = 58µs - tipično trajanje zadnje stepenice (back porch) zamračenja: - horizontalnog: t HBP(typ) = 6µs - vertikalnog: t VBP(typ) = 56µs - tipitčno aktivno vreme horizontalne linije: HA(typ) t = 3µs i releventni podaci za kontroler grafičkog displeja (GDC): - širina reči W = 6 bita, - GDC generiše paran broj aktivnih reči po liniji, - ako je t WD vreme prikazivanja jedne reči, ograničenja kod horizontalnog zamračenja su sledeća: t HFP t WD; t HS 3 t WD; t HBP 3 t WD; Za odnos širina/visina ekrana (aspect ratio) A.R = 4/3, radnu vertikalnu učestanost f V = 5Hz i sliku (Frame) koja se generiše bez protkivanja (non-interlaced), odrediti: a) broj aktivnih linija AL i aktivnih piksela AP b) učestanost taktnog signala za prikazivanje piksela (pixel ili dot clock) f pix c) stvarne vrednosti za t HFP, t HS, t HBP, i t VFP, t VS, t VBP Literatura: 87/GDC Application Manual, Intel Corp. REŠENJE: a) Broj aktivnih linija (AL) slike jednak je razlici ukupnog broja linija (TL) i broja linija u vertikalnom zamra čenju (BL): AL = TL-BL Pošto se slika (frame) generiše bez protkivanja, ona se sastoji iz samo jednog video-polja (field) pa je ukupni broj linija: t FIELD fv TL = = = 454 t LINE f H Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA od 68

3 RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG) Broj linija u vertikalnom zamračenju je: BL = VFP + VS + VBP Pošto je perioda linije (sweep time): t LINE = = µ s f H broj linija u prednjoj stepenici vertikalnog zamračenja je: tvfp ( typ ) VFP = =.98 = tline (Uzima se veća celobrojna vrednost da bi tajming bio robusniji, tj. da vreme potrebno za vertikalni zamračeni povratak elektronskog malza ne bi bilo prekratko) Po analogiji: VS =, VBP = 4, pa je broj linija u zamračenju: BL = = 48, a broj aktivnih linija: AL = = 46 Da bi širina i visina pikela bili približne veličine, uzima se da je približan broj piksela po liniji: AP (approx) = A.R. AL = Broj aktivnih reči po liniji je: AW (approx) = AP (approx) / W = Prema uslovu zadatka, AW mora biti paran broj, pa se uzima najbliža parna vrednost: AW=34. Tačan broj piksela po liniji je: AP = AW W = 34 6 = 544 b) Učestanost taktnog signala za prikazivanje piksela je: Vreme prikazivanja reči izračunava se kao: gde je TW ukupan broj reči u liniji: f pix = = t t WD = pix tline TW W t WD TW = AW + BW Aktivan broj reči AW je određen u tački (a) i iznosi AW = 34, a broj reči u horizontalnom zamračenju BW se može proceniti na sledeći način: t HB( typ) BW = twd( approx) gde se približna vrednost vremena prikazivanja reči izračunava kao: t HA( typ) twd( approx) = = ns AW Sledi:.75 = 3 BW =, (BW > = 8) TW = = 47 t WD = ns f pix = MHz Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA 3 od 68

4 RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG) Naravoučenije:. Broj aktivnih linija (AL) koji određuje vertikalnu (Y) rezoluciju ekrana direktno je proporcionalan horizontalnoj učestanosti (f H ) za datu vertikalnu učestanost (f V ) prikazivača.. Broj aktivnih piksela (AP) koji određuje horizontalnu (X) rezoluciju ekrana direktno je proporcionalan učestanosti taktnog signala za prikazivanje piksela (f pix ) za datu horizontalnu učestanost (f H ) prikazivača c) Izračunavanje stvarnih vremenskih intervala u zamračenju: Horizontalno zamračenje Broj reči prednje stepenice: thfp HFP approx) = t ( typ) ( = Pošto je t HFP t WD => HFP = 4 => t HFP = 4 t WD = 3.75µs Broj reči sinhro-impulsa: t HS approx) = t Pošto je t HS 3 t WD => HS = 3 => t HS = 3 t WD =.8µs Broj reči zadnje stepenice: HBP WD HS ( typ) ( = t WD HBP( typ) ( approx) = = twd Pošto je t HBP 3 t WD => HBP = 6 => t HBP = 6 t WD = 5.6µs Vertikalno zamračenje t VFP = VFP t LINE = µs t VS = VS t LINE = µs t VBP = VBP t LINE = 57.7µs Zadatak Dužina reči video memorije iznosi 3 bita. Horizontalna učestanost slike na monitoru iznosi f H =5.54kHz, a vreme horizontalnog zamračenja mlaza t HB =6.5µs. Odrediti učestanost taktnog signala za pomerački registar video memorije (pixel ili dot clock) tako da rezolucija slike bude 4x REŠENJE: Perioda linije iznosi: tline = = 64.5 µ s f H Aktivno vreme horizontalne linije je: t = t t = 48 s HA LINE HB µ Pošto je horizontalna rezolucija (broj aktivnih piksela po liniji) AP = 4, vreme za ispisivanje jednog piksela na ekranu je: t HA t pix = = ns AP pa je tražena učestanost: f pix =.3MHZ PROVERA: broj piksela u zamračenju mora biti celobrojni umnožak dužine reči video memorije. thb 6.5µ s BP = = = 35 t ns pix PB 35 = = w 3 Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA 4 od 68

5 RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG) 3. Zadatak Rezoluciuja ekrana je 7x348, a učestanost slike f V = 5Hz. Slika se generiše bez protkivanja (non-interlaced). Ako je broj linija u zamreačenju za izmenu slike BL=, a broj piksela u zamračenju za povratak mlaza sa jedne na drugu liniju BP=6 odrediti učestanost taktnog signala pomeračkog registra video memorije f pix. REŠENJE: AL = 348 => TL = AL + BL = 368 AP = 7 => TP = AP + BP = 736 tfield = f v f pix = 3.544MHZ t LINE = t TL FIELD t pix tline = TP = f v TL TP 4. Zadatak Na jednom binarno-monohromatskom rasterskom prikazivaču slika se prikazuje bez protkivanja. Vertikalna učestanost slike je f V, horizontalna učestanost f H, a učestanost taktnog signala pomeračkog registra video memorije je f P. Horizontalno zamračenje elektronskog mlaza traje t HB, a vertikalno zamračenje t VB. Odrediti minimalan broj adresnih linija video memorije N Addr ako je adresibilna jedinica video memorije jedan bajt. REŠENJE: N Addr = log ( AL AP / 8) = log (AL AP) 3 AL = TL BL TL = t V / t H = f H / f V BL = t VB / t H = t VB f H AP = TP BP TP = t H / t P = f P / f H BP = t HB / t P = t HB f P N Addr = log [f H (/ f V - t VB ) f P (/ f H - t HB )] 3 5. Zadatak Vertikalna učestanost slike je f V = 5Hz, horizontalna f H =36.8KHz, a učestanost taktnog signala pomeračkog registra video memorije f pix = 7.848MHz. Slika se generiše bez protkivanja. Ako je broj linija u vertikalnom zamračenju BL =, a broj piksela u horizontalnom zamračenju BP = 6 odrediti horizontalnu i vertikalnu rezoluciju datog ekrana. REŠENJE: Horizontalna rezolucija je: AP = TP BP = t LINE / t pix BP = f pix /f H BP = = 7 Vertikalna rezolucija je: AL = TL BL = t FRAME / t LINE - BL = f H / f V BL = = 7 Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA 5 od 68

6 RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG). Mapiranje tačke iz koordinatnog sistema ekrana u video memoriju Pretpostavke: Levi koordinatni sistem sa početkom u levom gornjem uglu ekrana Koordinatni početak se mapira u MSB bajta sa najnižom adresom u video memoriji Binarno monohromatski prikaz (bit po pikselu) Vrednost u bitskoj lokaciji video memorije odgovara osvetljenom stanju pridruženog piksela Sekvencijalno mapiranje Ako je a adresa poslednjeg bajta video memorije koji pripada liniji i, onda ja a+ adrresa prvog bajta koji pripada liniji i+. Nesekvencijalno mapiranje Ako je a adresa poslednjeg bajta video memorije koji pripada liniji i, prvi bajt koji pripada liniji i+ nije na adresi a+. Unutar jedne linije, uobičajeno je da su bajtovi kojima pripadaju susednii pikseli na susednim adresama. PRIMER: Hercules grafika (7 x 348). Koordinatni početak (,) se mapira u MSB bajta na adresi B:h (segmentna adresa je Bh, adresa ofseta je ).. VM je organizovana u 4 banke kapaciteta po 8K. 3. Prvoj banci pripadaju linije,4,8,, drugoj,5,9,, trećoj,6,,, a četvrtoj 3,7,,. 4. Ako je poslednji bajt linije i na adresi a, tada je prvi bajt linije i+4 (koja pripada istoj banci) na adresi a+ y offset adrese bajtova h h (7/8)-=59h 4 5Ah 5Bh h h 5 5Ah 5Bh 4h 4h 6 45Ah 45Bh 3 6h 6h 7 65Ah 65Bh ByteAddr = LineAddr + ByteInLine = = VMStartAddr + BankStartAddr + LineInBank + ByteInLine = + h*(y mod 4) + (7 div 8)*(y div 4) + (x div 8) BitPosition = 7 (x mod 8) Da bi se smanjila kompleksnost izračunavanja adrese bajta kod nesekvencijalnog mapiranja koristi se tablica preslikavanja broja linije (y) u adresu početka te linije: tablica je niz čiji je indeks broj linije, a odgovarajući element adresa početka linije u VM Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA 6 od 68

7 RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG) 3. Primeri modernijih grafičkih adaptera i tehnologija za sintezu slika INTEL i74 GRAFIČKI AKCELERATOR Terminologija AGP Accelerated Graphics Port: koncept koji omogućava visok nivo performansi i realizma u prikazu nove generacije 3D grafičkih akceleratora. Principijelni benefit potiče od brzog R/W (read/write) pristupa opisima (teksturama) površina u glavnoj memoriji sistema. VGA Video Graphics Array SDRAM Synchronous DRAM SGRAM Synchronous Graphics RAM PPI Precise Pixel Interpolation: tehnika DME Direct Memory Execution: tehnika smeštanja i izvršenja tekstura iz sistemske memorije PDP Parallel Data Processing: tehnika izvršavanja naredbi paralelno u protočnoj obradi RAMDAC RAM-based Digital-to-Analog Converter BLT (BitBlT) Bit Block Transfer: hardverska implementacija za brzo kopiranje bitmapa STRBLT Stretch BLT: podrška za hardversko zumiranje bitmapa texel texture map pixel: piksel teksture sideband adresiranje: mogućnost da se izda više zahteva, a da se između ne čeka da stignu podaci Karakteristike Visoko integrisan grafički akcelerator projektovan za AGP Arhitektura: mašine koje rade paralelno da postignu performanse D i 3D grafike, i videa o 3D i D mašinama upravlja 3D/D protočni pretprocesor o pretprocesor omogućava značajan protok grafičkih podataka 3D mašina ima duboku protočnost i omogućava: o podršku za mapiranje teksture sa korektnom perspektivom o 4 vrste MIP-mapiranja o ravno i gouraud senčenje o alfa-mešanje (alpha-blending ) za postizanje efekta transparentnosti o stippling o smanjivanje efekta nazupčenosti (antialiasing ) o zamagljivanje (fogging) za postizanje efekta gustine atmosfere o Z-bafer (Z-buffering) za uklanjanje nevidljivih površina o bogat set 3D instrukcija koje dopuštaju da se pojedine funkcije omoguće ili onemoguće Teksture se lociraju u AGP memoriju (oslobađa se lokalna memorija za Z-bafer i bitmape) D mogućnosti obuhvataju: o BLT i STRBLT mašine o hardverski kursor o širok skup D registara i instrukcija 64-bitna BitBLT mašina obezbeđuje hardversku akceleraciju mnogih opštih prozorskih operacija Namenske video mašine za podršku video konferencija i drugih aplikacija o VMI (Video Module Interface) sa Host Port i Video Port koji čine interfejs prema DVD čipu o bidirekcionalni VMI Host Port se koristi za jeftino hardversko MPEGII DVD dekodovanje o Video Port interfejs obezbeđuje prihvat slike sa video ulaznih uređaja o Video Port uključuje podršku za full motion video, MPEGII/DVD, Intercast, VBI, NTSC, PAL TV izlaz Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA 7 od 68

8 Pregled arhitekture RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG) 3D mašina Postiže visoke performanse 3D grafike uz bogat skup 3D funkcija Konstantan visok nivo performansi se postiže hiper-protočnom 3D arhitekturom Korišćenjem DME tehnike postuže se potpuno iskorišćenje propusnog opsega AGP i memorije o DME tehnikom se postižu visoke performanse ali i neograničena veličina tekstura o sideband adresiranje daje mogućnost da se izda više zahteva bez čekanja na podatke o podrška za Type, Type i Type3 sideband cikluse => 533MB/s vršni transferi podataka o Type3 omogućava da teksture budu locirane bilo gde u 3-bitnom adresnom prostoru Grafička protočna obrada (pipeline) omogućava izvršenje više komandi u paraleli (PDP tehnika) Memorijska lokalnost trouglova koji se dohvataju ne zavisi od njihove veli čine ni orijentacije Memorijska lokalnost smanjuje stranične promašaje i povećava efikasnost keširanja Tehnika PPI doprinosi kvalitetu mašine tekstura preciznim interpolacijama vrednosti piksela o detaljno procesiranje piksela održava visok nivo kvaliteta slike Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA 8 od 68

9 RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG) Optimizacija za paketni režim obrade trouglova o paketna obrada oslobađa CPU inteligentnih i kompleksnih 3D geometrijskih obrada o CPU može pripremiti jedan paket trouglova i smestiti ih u memoriju, pa započeti rad na drugom paketu, bez komunikacije sa i74 grafičkim akceleratorom Direktnim izvršavanjem iz AGP memorije izbegava se trešing lokalne memorije (koji bi postojao u arhitekturi koja mora da puni lokalnu memoriju iz AGP memorije) Arbitrirani paralelni rendering iz lokalne memorije sa izvršavanjem teksture iz AGP memorije Arbitraža dopušta da vršni propusni opseg bude.3gb/s Mogućnost dve otvorene stranice lokalne memorije i jednog memorijskog kanala u AGP memoriji podržava 3D rendering model: boja, z i tekstura i74 podržava i D rendering kroz korišćenje tri rasterska operanda (izvor, odredište, uzorak) U arhitekturu su ugrađena i namenska poboljšanja 3D protočne obrade 3D protočna jedinica obrađuje 3D podatke sa visokim paralelizmom 3D rasterizer izračunava u ciklusu 4 senčena, zamagljena i Z-baferisana piksela sa teksturom Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA 9 od 68

10 RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG) D mašina 64-bitna BitBLT mašina obezbeđuje hardversku akceleraciju za mnoge opšte prozorske operacije Dve primarne BitBLT funkcije: fiksni BitBLT (BLT) i rastegljivi (Stretch) BitBLT (STRBLT) BitBLT blokovski transfer podataka piksela između dve memorisjke lokacije BLT mašina ubrzava grafički korisnički interfejs (GUI) operativnog sistema Microsoft Windows Hardverski su podržani svih 56 rasterskih operatora (ROP), uključujući transparentan BitBLT BLT mašina se koristi za različite namene koje uključuju: o prenos pravougaonih blokova podataka između memorisjkih lokacija o konverziju formata piksela o poravnavanje podataka o obavljanje logičkih operacija Displej funkcija sadrži RAM-based Digital-to-Analog Converter (RAMDAC) o transformiše digitalne podatke iz grafičkog i video podsistema u analogne podatke za monitor o tri 8-bitna D/A konvertora generišu R, G i B signale za monitor o integrisani MHz RAMDAC podržava rezoluciju do 6x o sinhronizacioni signali se pomeraju tako da odgovaraju kašnjenju D/A konverzije o svakom D/A konvertoru je pridružena paleta od 56 nijansi boje o RAMDAC može raditi u direktnom ili indeksiranom režimu o podržan je režim slike bez protkivanja (non-interlaced) 3D primitive 3D primitive su linije, trouglovi i promenljive stanja Sve primitive prikazane posle promene stanja u njihovoj promenljivoj stanja reflektuju novo stanje Slika prikazuje strukturu podataka trougla koju vide drajveri za i74 o slika prikazuje i kako se tekstura mapira iz koordinatnog sistema teksture (U,V) u normalizovani koordinatni sistem objekta (S,T) gde se na teksturu primenjuje korekcija perspektive kao i simulirana krivina pre nego što se mapira u koordinatni sistem ekrana (X,Y) o struktura trougla se prosleđuje i74 drajverima kroz DirectX ili OpenGL API Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA od 68

11 RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG) MIP mapiranje Podrška za nivoa detaljnosti (Levels-of-Details, LODs) Detaljnost mape teksture varira u rasponu od 4x4 do x teksela. Nije neophodno da teksture budu kvadratne. Mali keš ugrađen u procesor teksture obezbeđuje efikasno mip-mapiranje. Podrška za 4 tipa mip-mapiranja o Najbliže teksel sa koordinatama najbližim željenom pikselu se koristi (samo LOD) o Linearno težinski prosek površine x teksela koji okružuju željeni piksel se koristi (samo LOD) o Mip najbliže odgovarajući LOD se izabere i teksel sa koordinatama najbližim željenom pikselu se koristi o Mip linearno odgovarajući LOD se izabere i težinski prosek površine x teksela koji okružuju piksel se koristi (naziva se i bi-linearnim mip-mapiranjem) Blok dijagram sistema u kojem se koristi Intel74 grafički akcelerator Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA od 68

12 RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG) ATI RADEON 97 (kodno ime grafičkog procesora R3) Materijal preuzet sa Internet adrese Terminologija DX9 Direct X 9, grafički sistem, proizvod kompanije Microsoft DDR Double Data Rate Shader Program (realizacija može biti softverska ili hardverska) koji se primenjuje u toku obrade temena poligona ili crtanja pojedina čnih piksela o Vertex Shader program za obradu temena o Pixel Shader program za obradu piksela Termin "Shader" se takođe koristi i da se nazna či hardverska jedinica koja vrši odgovaraju ću obradu. Pregled arhitekture Karakteristike.5 µ technology 7 million transistors Core clock speed: 3 MHz (possibly 35/35) Memory bus: 56bit DDR (later DDR II) Local memory: up to 56 MB Memory clock speed: 3 DDR (6) MHz or more, GB/s bandwidth; Interface bus: AGP 8x, GB/s throughput; Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA od 68

13 RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG) Full support of basic DX9 capabilities: o Floating, 64 and 8bit data formats for textures and frame buffer (vectors of 4 components of F6 or F3); o Pixel shaders with floating arithmetic (4*F3 computation format); o Pixel Shaders.; o independent vertex pipelines; o Vertex Shaders.; Hardware tessellation of N-Patches with Displacement Mapping, and, optionally, adapting detail level; 8 independent pixel pipelines 8 texture units (one per pixel pipeline) able to fulfill trilinear filtering without speed losses and (at last) combine anisotropic and trilinear filtering. 4-channel (4 64bits channels) memory controller connected with the accelerator's core and AGP with a full crossbar; HyperZ III memory optimization technology (quick cleanup and compression of the Z buffer using 8x8 units, hierarchical Z buffer for quick visibility determination); Early Z test (pixel shader is used only for visible pixels); Hardware acceleration of MPEG / decompression and compression, possibility to process a video stream arbitrarily with pixel shaders (VIDEOSHADER technology); independent CRTC; integrated bit 4MHz RAMDACs with hardware gamma correction; Integrated TV-Out; Integrated DVI (TDMS transmitter) interface, up to 43*536. Integrated general-purpose digital interface for connection of an external RAMDAC or a DVI transmitter or coupling with a TV tuner. FC packaging (FlipChip). Memorijski kontroler 4-Kanalni memorijski kontroler i interni switch na čipu Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA 3 od 68

14 RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG) Tehnologija za optimizaciju Z-bafera i pristupa memoriji: HyperZ III Tehnologija omogućava brzu kompresiju i brisanje Z-bafera koristeći blokove 4x4 i 3 nivoa hijerarhijske prezentacije Z-bafera za rano određivanje vidljivosti većih blokova poligona. Na slici () je prikazan osenčen poligon, smešten blizu posmatrača. Dodaje se poligon, pozicioniran iza postojećeg poligona (slika ()), tako da je delimično vidljiv. Najpre se pretražuje najviši nivo hijerarhijskog Z bafera u kome su dubine smeštene po blokovima 4x4 i obeležava se ono polje koje ne treba sen čiti (slika (3)) time se eliminiše 6 piksela iz dalje obrade. Zatim se ista procedura primenjuje nad blokovima x (slika (4)), a potom nad blokovima x (slika (5)) odnosno pojedinačnim pikselima. Kao i kod svih modernih akceleratora, podržan je Early Z Test. Ideja ovog testa je jednostavna: stvarne boje piksela (tekstura, osvetljenje, itd.) se računaju samo za vidljive piksele, čime se značajno štedi na propusnom opsegu memorije. Na tipičnim test scenama, odbacuje se od 5 do 33% piksela, a u najboljem slučaju (sortirani objekti scene) i do 5%. Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA 4 od 68

15 Pajplajnovi za piksele i jedinice za teksture RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG) Postoji 8 pajplajnova za piksele, a svaki pajplajn ima svoj procesor za senčenje piksela (eng. pixel shader). Iz tog razloga što je duži program za senčenje, bolje je iskorišćenje procesora. Računske operacije se vrše u pokretnom zarezu (formati F3 i F6), a postoji i kompatibilnost sa starijim procesorima preko celobrojnih računskih radnji (format I). Konfiguracija na kojoj se bazira R3 je 8x svaki pajplajn za piksele spojen je sa samo jednom jedinicom za teksture. Na slici je prikazan izgled jednog od 8 pajplajnova. Pajplajnovi za temena i jezici visokog nivoa Jedinice za obradu temena (eng. vertex shaders) mogu da kontrolišu tok instrukcija i podržavaju potprograme, petlje, uslovne i bezuslovne skokove. Slede ća tabela prikazuje unapređenja u odnosu na prethodnu verziju (.) Verzija.. Max. instrukcija 8 56 Upravljanje tokom instrukcija No Yes Format podataka F3[4] F3[4] Broj registara za konstante Broj registara opšte namene 8 6 Između ostalog, povećao se maksimalan broj instrukcija kojima može da se programira jedinica. Očekuje se da će kompleksnost programa za obradu temena/piksela uskoro postati približna kompleksnosti programa koji se izvršavaju na konvencionalnim procesorima. Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA 5 od 68

16 Video obrada RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG) R3 uvodi VideoShader tehnologiju: koristi računske mogućnosti pajplajnova za piksele za obavljanje operacija kodovanja/dekodovanja MPEG/ video tokova, konverziju prostora boja, rasplitanje (eng. deinterlacing) i drugih operacija za obradu video tokova. Iako ova tehnologija u svom nazivu ima ime "Shader", radi se o neprogramabilnoj jedinici koja se nalazi unutar jedinice za obradu piksela. Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA 6 od 68

17 RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG) NVIDIA GEFORCE 68 Materijal preuzet sa Internet adrese Terminologija PCI Express (PCIe) moderan koncept interkonekcijske tehnologije koji omogućava visoku propusnu moć preko serijske veze sa niskim brojem pinova. Namenjen je da zameni AGP8X. GPU Graphics Processing Unit zaseban procesor na grafičkom adapteru čija je primarna funkcija obrada grafike i priprema za prikazivanje TMU Texture Management Unit jedinica za manipulisanje teksturama u okviru GPU GDI Graphics Device Interface softverska komponenta za komunikaciju između aplikacije i drajvera grafičkog adaptera Pregled arhitekture 6 nezavisnih procesora za temena 4 nezavisna procesora za piksele od kojih svaki radi nad fragmentima od x piksela stepena keša za teksture Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA 7 od 68

18 RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG) Karakteristike Chip codenamed NV4 3nm FSG (IBM) technology million transistors FC case (flip chip with no metallic cover) 56-bit memory interface Up to GB of DDR / GDDR -/ GDDR -3 memory Bus interface AGP 3. 8x A special APG 6x mode (both ways), for PCI Express of HSI bridge 6 pixel processors, each having a texture unit with an optional filtering of integer and float-point textures (anisotropy up to 6x). 6 vertex processors, each having one texture unit with no value filtration (discrete selection) Calculates, blends, and writes up to 6 full pixels (colour, depth, stencil buffer) per clock Calculates and writes up to 3 values of depth and stencil buffer per clock (if no operation with colour is executed) Supports a two-way stencil buffer Supports special optimisations of geometry rendering for acceleration of shadow algorithms based on the stencil buffer (the so-called Ultra Shadow II technology) Supports pixel and vertex shaders 3., including dynamic branchings in pixel and vertex processors, texture value selection from vertex processors, etc. Texture filtering in the floating-point format Supports framebuffer in the floating-point format (including blending operations) MRT (Multiple Render Targets - rendering into several buffers) x RAMDAC 4 MHz x DVI interfaces (require external chips) TV-Out and TV-In interface (requires separate chips) Programmable streaming GPU (for video compression, decompression and post-processing) D accelerator supporting all GDI+ functions Karakteristike referentne kartice 4 MHz core frequency. GHz (*55 MHz) effective memory frequency GDDR-3 memory type 56-MB memory size 35. GBps memory bandwidth Theoretical filling speed: 6.4 Gpps Theoretical texture selection speed: 6.4 Gtps DVI-I connectors TV-Out Up to W energy consumption (the card has two additional power connectors, the power sources are recommended to be no less than 48 W) Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA 8 od 68

19 Pregled arhitekture procesora za temena RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG) Postoji 6 nezavisnih procesora za temena. U jednom ciklusu takta, jedan NV4 procesor za temena može da izvrši: jednu vektorsku operaciju (do četiri FP3 komponenti) jednu skalarnu FP3 operacuju pristup jednoj teksturi Procesor podržava formate tekstura u pokretnom zarezu i celobrojne kao i mip mapiranje. Do četiri različite teksture se mogu upotrebiti u jednom programu za obradu temena, bez filtriranja Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA 9 od 68

20 RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG) Procesori za piksele i popunjavanje Postoji četiri nezavisna procesora za piksele koji obrađuju blokove od četiri (x) piksela. Svaki procesor ima svoj red za obradu piksela a za svaki od x piksela koje obrađuje ima posebnu jedinicu za teksture (TMU) što ukupno daje 6 TMU. Svaki TMU podržava anizotropno filtriranje sa maksimalnim odnosom 6:. Filtriranje tekstura zadatih formatom u pokretnom zarezu može da se vrši ako komponente imaju 6 bitnu (FP6) preciznost (ne može da radi sa FP3). Svaki procesor ima svoj L keš čime je redukovano sudaranje sa zahtevima od procesora temena. Takođe, svaki procesor sadrži dve ALU jedinice, svaka sposobna da izvrši dve različite FP3 operacije na različitom broju (do četiri) odabranih vektorskih komponenti u jednom koraku. ALU jedinice su sposobne da u jednoj operaciji izvrše normalizaciju vektora što ima značajan uticaj na performanse nekih algoritama. Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA od 68

21 RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG) ANIZOTROPNO FILTRIRANJE Materijal preuzet sa sajta korporacije NVidia Terminologija Piksel (pixel) : kovanica nastala od Picture Cell ili Picture Element. Označava najsitniji (nedeljivi) element slike prikazivača Teksel (texel): kovanica nastala od Texture Cell ili Texture Element, po uzoru na piksel. Označava najsitniji (nedeljivi) deo teksture, koja se često koristi kao sinonim za digitalnu sliku Mapiranje teksture (texture mapping): proces popunjavanja unutrašnjosti poligona teksturom. Tokom ovog procesa, jedan teksel može da se preslika na jedan ili više piksela, ali može i obrnuto da se više teksela preslika na jedan piksel mipmapiranje (mipmapping): potiče od reči MIP mapa (ili mipmapa), gde je MIP akronim sa latinskog jezika multum in parvo, što u slobodnom prevodu znači mnogo u malom. Tehnika kojom se ubrzava proces mapiranja tekstura kada se više teksela mapira na jedan piksel, uz izbegavanje neželjenih vizuelnih artefakata Filtriranje Filtriranje teksture je proces uzorkovanja teksture. Formalno, tekstura je funkcija (jednodimenziona, dvodimenziona, itd), a vrednost funkcije u datoj tački u prostoru je boja odgovarajućeg teksela. Filtriranje može biti složen proces jer učestanost uzorkovanja u prostoru teksture može biti sasvim drugačija od učestanosti uzorkovanja u prostoru sintetizovane slike. S obzirom na to da prostorne koordinate objekata variraju nezavisno od koordinata teksture, rešetka piksela, koja je u prostoru sintetizovane slike najčešće pravougaonog oblika, može imati različite projekcije (otiske footprint) u prostoru teksture. a) Najjednostavniji slučajevi filtriranja su:. više teksela se preslikava na jedan piksel (slika 3.b). više teksela se ne preslikava na jedan piksel (slika 3.c) Slučaj. predstavlja situaciju umanjenja teksture: u idealnom slučaju, rezultujuća boja piksela predstavlja kombinaciju boja teksela koje ovaj pokriva. Broj pokrivenih teksela može da naraste do te mere da vreme njihove obrade postane neprihvatljivo veliko. Tehnika koja se tada koristi je mipmapiranje: unapred se stvara niz pre-filtriranih (umanjenih x, 4x, itd) tekstura i prema potrebi koristi jedna od njih, tako da se najviše nekoliko teksela upotrebljene teksture preslikava na jedan piksel. U slučaj pod. spada i specijalan slučaj (relativno redak) prikazan na slici 3.a, na kojoj se jedan teksel preslikava približno u jedan piksel. Problem koji se u prethodnom slučaju pojavljivao ovde ne postoji. Ponekad se b) c) Slika 3.: primeri jednostavnih filtriranja. Rešetka piksela je predstavljena belo. Levi deo svake slike predstavlja detalj sintetizovane slike u prostoru ekrana, a desni detalj iz prostora teksture gde je prikazan odgovarajući otisak. Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA od 68

22 RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG) primenjuje interpolacija u prostoru teksela, tako da se dobije gladak prelaz boja u prostoru sintetizovane slike. Anizotropno Filtriranje Anizotropija je pojava kod koje se određen fenomen različito manifestuje u zavisnosti od pravca. Na primer, u elektrotehnici su poznati materijali čija dielektrična svojstva nisu ista u svim pravcima. Anizotrono filtriranje teksture je proces uzorkovanja (funkcije) teksture kada se rešetka piksela značajno deformiše prilikom projekcije u prostor teksture. Ovo je prikazano na slici 3.a: nakon projekcije, rešetka je do te mere deformisana da gornja vrsta rešetke pokriva nekoliko redova teksela, a krajnje donja vrsta rešetke samo jedan red teksela. Na slikama 3.b do 3.e je prikazan značaj anizotropnog filtriranja: bez anizotropnog filtriranja (3.b i 3.c) crni i beli kvadrati se stapaju u sivu i slika postaje mutna na relativno malom rastojanju od posmatrača. Kada se koristi anizotropno filtriranje, beli i crni kvadrati se jasno mogu razlikovati na značajno većem rastojanju od posmatrača. a) b) c) d) e) Slika 3.: anizotropno filtriranje; a) primer mogućeg načina deformacije rešetke piksela prilikom projekcije u prostor teksture; primeri prikazivanja teksture na kojoj su jasno vidljive razlike u načinima filtriranja. b) izotropno bilinearno; c) izotropno trilinearno; d) anizotropno bilinearno; e) anizotropno trilinearno Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA od 68

23 RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG) 4. Parametarske krive BEZJEOVE KRIVE Pjer Bezјe (Pierre Bézier), inženjer pri kompaniji Reno (Renault) i Pol d Kastelžo (Paul de Casteljau), inženjer pri kompaniji Sitroen (Citroën) su nezavisno jedan od drugog početkom 96. godina došli do otkrića o metodi predstavljanja krivih koje su danas izuzetno zastupljene u računarskoj grafici. Iako su neznatno prethodili Bezjeovim, Kastelžoovi istraživački izveštaji iz ove oblasti su ostali neobjavljeni do 975. godine, zbog čega su ove krive nazvane po Bezjeu. Bezjeove krive se formiraju nad nizom od n tačaka (n>) u oznaci P.. P n-, kod kojih prva tačka u nizu predstavlja početnu, a poslednja tačka u nizu krajnju tačku krive. Izgled krive određuje međusobni položaj tačaka, pa se one nazivaju kontrolne tačke. Kriva prolazi jedino kroz prvu (P ) i poslednju (P n- ) tačku u pomenutom nizu. Kriva ne prolazi kroz ostale tačke. Parametar t ( t [,] ), na osnovu kojeg se određuje pozicija svake tačke koja pripada krivoj, ima vrednost za tačku P i vrednost za tačku P n-. Bezjeove krive se mogu predstavljati u polinomijalnom ili matri čnom zapisu. Broj tačaka nad kojim se Bezjeove krive mogu definisati nije ograničen. U praksi se najčešće koriste kvadratna (n=3) i kubna (n=4), a svoja imena su dobila po stepenu polinoma kojim su predstavljene. Razvoj kvadratne Bezjeove krive Kvadratna Bezjeova kriva se formira nad nizom od tri tačke (P, P i P ). Na dužima PPi PP treba uočiti tačke P i P, kao što je prikazano na slici 4.. Slično tome, na duži PP treba uočiti tačku P kao što je prikazano na slici 4.. Tačka P pripada krivoj: promenom parametra t od do, dobija se niz tačaka koje pripadaju krivoj. Za t=, P =P, a za t=, P =P. Ovo je ilustrovano na slici 4.3 za nekoliko vrednosti parametra t. P = tp + ( tp ) P = tp + ( tp ) P = tp + ( tp ) Slika 4. Slika 4. Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA 3 od 68

24 RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG) Slika 4.3 Razvoj kvadratne Bezjeove krive se može jednostavno izvesti u analiti čkom obliku na osnovu slika 4. i 4.. Sa slike 4.. je poznato: P = tp+ ( tp ) () P = tp + ( tp ) Sa slike 4.. je poznato: P = tp+ ( tp ) () Zamenom () u () se dobija: P = ttp ( + ( tp ) ) + ( t)( tp + ( tp ) ) Odnosno: P = tp + tp tp+ tp tp+ ( t) P P = ( t) P + ( t tp ) + tp Pt () = ( t) P + ( t tp ) + tp, t [,] gde je P(t) tačka koja pripada krivoj, za datu vrednost parametra t. (3) Razvoj kubne Bezjeove krive Kubna Bezjeova kriva se formira nad skupom od četiri tačke (P, P, P i P 3 ). Slično kao i kod razvoja kvadratne krive, na dužima PP, PP i PP 3 treba uočiti tačke P, P i P, kao što je prikazano na slici 4.4. Uočene tačke se sada koriste da bi se nad njima formirala kvadratna Bezjeova kriva, na ranije opisan način. Na slici 4.5 je ilustrovano određivanje pozicije tačaka koje pripadaju krivoj, za nekoliko vrednosti parametra t. Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA 4 od 68

25 RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG) P = tp + ( tp ) P = tp + ( tp ) P = tp + ( tp ) 3 P = tp + ( tp ) P = tp + ( tp ) P = tp + ( tp ) 3 Slika 4.5 Slično razvoju kvadratne Bezjeove krive, razvoj kubne krive se može jednostavno izvesti u analiti čkom obliku na osnovu slike 4.4. P = tp + ( tp ) P = tp + ( tp ) P = tp + ( tp ) 3 (4) P = tp + ( tp ) P = tp + ( tp ) P = tp + ( tp ) (6) (5) 3 Zamenom (4) i (5) u (6) se dobija: Odnosno: P = ( t) P + 3( t t) P + 3 t ( tp ) + tp (7) Pt () = ( t) P + 3( t t) P + 3 t ( tp ) + tp, t [,] (8) gde je P(t) tačka koja pripada krivoj, za datu vrednost parametra t. Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA 5 od 68

26 RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG) Matrični zapis kubne Bezjeove krive Matrični zapis je značajan kada je na raspolaganju hardver koji je u stanju da brzo množi matrice. Polazeći od (8), može se dobiti odgovarajući matrični izraz: P 3 3 P Pt () = [( t) 3( t t) 3 t ( t) t ] P P3 Daljim razvojem prve matrice (vektora), dobija se: P P Pt () = [ t t t ] P 3 3 P 3 Razvoj Bezjeove krive proizvoljnog stepena Metoda koja je upotrebljena za razvoj kvadratne i kubne Bezjeove krive je sli čna metodi "podeli i osvoj" (eng. divide and conquer): počevši od ulaznog niza (kontrolnih) tačaka, u svakom koraku deljenja se dobijaju nove kontrolne tačke čiji je broj za jedan manji u odnosu na broj kontrolnih tačaka u prethodnom koraku. Procedura se zaustavlja kada ostane samo jedna kontrolna tačka ona pripada krivoj. Primenom opisane metode se može razviti Bezjeova kriva proizvoljnog reda. Analitički oblik krive proizvoljnog reda se može odrediti bez primene prethodno opisane metode, na slede ći način: neka je Pt (), t [,] tačka koja se nalazi na krivoj. Za niz tačaka (P, P,..., P n ) nad kojim se formira kriva, vrednost P(t) se može izraziti sledećom formulom: n Pt () = PB (), t t [,] gde je B, () t Bernštajnov (Bernstein) polinom: in i= i in, n i Bin, () t = t ( t) i Može se uočiti zanimljiva osobina Bernštajnovog polinoma: n i= in, ni B () t =, t [,] Osobine Bezjeovih krivih Bezjeove krive imaju nekoliko interesantnih osobina: početna i krajnja tačka (P i P n ) leže na krivoj; u opštem slučaju ostale tačke ne leže na krivoj kriva je neprekidna, diferencijabilna u svakoj tački proizvoljan broj puta u tački P, tangenta krive je duž PP, u tački P n, tangenta krive je duž Pn Pn kriva se nalazi unutar konveksnog omotača koji formiraju kontrolne tačke na izgled krive utiču sve tačke iz zadatog niza nad kojim se kriva formira: pomeranjem makar jedne tačke kriva menja svoj oblik Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA 6 od 68

27 KATMUL-ROMOVA KRIVA RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG) Katmul-Romova (E.Catmull, R.Rom, 974) kriva je objavljena desetak godina nakon Bezjeove [E. Catmull je jedan od osnivača studija Pixar; njemu se u velikoj meri pripisuje otkrivanje Z-bafer algoritma, mapiranja teksturom i bikubnih zakrpa]. Za razliku od Bezjeove, radi se o lokalnoj interpolativnoj krivoj: kriva prolazi kroz sve kontrolne tačke, a izgled krive lokalno zavisi samo od nekoliko susednih kontrolnih tačaka. Fergusonova parametarska kriva Razvoj Katmul-Romove krive se oslanja na Fergusonove (H. Ferguson) parametarske kubne krive. Fergusonova parametarska kubna kriva se zasniva na tačkama P i P, za koje su date pozicija i nagibi tangenta krive u tim tačkama (P ' i P ' respektivno). U zavisnosti od parametra t, pozicija neke tačke na krivoj se može opisati polinomom trećeg stepena: 3 Pt () = a + at+ at + at (4) 3 Parametar t uzima vrednost u opsegu [,]. Potrebno je odrediti koeficijente a do a 3 uz pretpostavku da P()=P i P()=P, što daje sledeće jednačine: P() = a P'() = a (5) P() = a + a + a + a P'() = a + a + 3a 3 3 Rešavanjem ovih jednačina, dobijaju se sledeće vrednosti: a = P() a = 3[ P() P()] P'() P'() a = P'() a = [ P() P()] + P'() + P'() 3 (6) Smenom (6) u (4) dobija se sledeći izraz : Pt () = ( 3t + t ) P() + (3t t ) P() + ( t t + t ) P'() + ( t + t ) P'() (7) Svaki od polinoma po promenljivoj t, koji u izrazu (7) figuriraju kao koeficijenti uz tačke ili njihove izvode, su u tzv. Ermitovom obliku (C. Hermite), pa se ova kriva još naziva kubna Ermitova kriva. Matrični zapis Fergusonove krive Kao i kod kubne Bezjeove krive, (7) se može predstaviti u matričnom zapisu: P() 3 P() Pt () = t t t 3 3 P'() P'() (8) Razvoj Katmul-Romove krive Katmul-Romova kriva se razvija nad nizom od n+ tačaka (u oznaci P do P n ). Kriva se lokalno definiše, deo po deo, nad lukom PP i i +. Nagib tangente u tačkama P i i P i+ se određuje na sledeći način: Pi+ Pi Pi+ Pi P' i =, P' i+ = (9) Treba napomenuti da je Katmul-Romova kriva specifičan slučaj opštije kardinalne krive (eng. cardinal spline), jer je za određivanje tangente krive u početnoj odnosno krajnjoj tački nekog luka uzet koeficijent.5. Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA 7 od 68

28 RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG) Slika 4.6 PP Na slici 4.6 je ilustrovana konstrukcija jednog dela krive, nad lukom i i +. Zamenom (9) u (8) dobija se konačan izraz za posmatrani deo krive (u matričnom obliku): Pi P 3 i Pt () = t t t 5 () P i+ P i+ 3 3 Izrazom () se definiše kubna kriva koja predstavlja deo željene krive između dve uzastopne tačke (Pi i Pi+). Izraz se može primeniti na sve delove krive sem za početni i krajnji luk gde se nagibi tangente (P' i P'n respektivno) moraju drugačije definisati. Osobine Katmul-Romove krive Kriva je interpolativna: kriva prolazi kroz sve kontrolne tačke. Kriva je lokalna: promenom pozicije jedne kontrolne tačke se lokalno menja oblik krive Kriva je neprekidna, diferencijabilna u svakoj tački proizvoljan broj puta Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA 8 od 68

29 RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG) 5. JavaD API za rad sa grafikom UVOD: ISTORIJA, ZAŠTO, KAKO Operativni sistemi su u poslednjoj deceniji pored upravljanja osnovnim resursima dobili zadatak da kontrolišu i ekran, odnosno grafički korisnički interfejs. S obzirom na činjenicu da su operativni sistemi 9-ih uglavnom multiprocesni, funkcionalni zahtev za kontrolu ekrana bio je: svaki proces, koji to želi i ako to korisnik želi, mora imati svoje mesto na ekranu, odnosno, interfejs ka korisniku. Prvi pokušaji zasnivali su se na switchovanju celog ekrana. Prednosti ovakvog pristupa su što u trenutku kada je proces prikazan ima ceo ekran samo za sebe, što je ranije i bio slučaj = kompatibilnost. Velika mana je nezgrapnost i teška iskoristljivost sistema. Današnje rešenje grafičkog dela operativnog sistema zasniva se na modelu prozora. Prozor je, naravno, pravougaono parče ekrana na kojoj jedna aplikacija može iscrtavati željene oblike, i preko koga aplikacija prima želje korisnika. Na taj način prozor postaje i jedinica interakcije aplikacije sa korisnikom. Aplikacija, naravno, može imati više prozora. Prozori su smešteni u 3D prostoru postoji preklapanje (zaklanjanje) prozora koji su dalji od korisnika prozorima koji su bliži. Operativni sistem kontroliše sve akcije sa prozorima: otvaranje, zatvaranje, pomeranje, aktiviranje, deaktiviranje, ikonifikaciju, zoom iranje, pozicija na Z osi, sakrivanje, prikazivanje, itd. Kao što OS održava liste FCBova ili PCBova, može se zamisliti i lista W(indow)CB-ova. Operativni sistem je takođe dužan da zaštiti aplikaciju od drugih aplikacija. Poznati su primeri zaštite memorije, disk prostora. Grafi čki gledano objekat zaštite za operativni sistem je opet prozor. Ni jedan proces ne može da crta u tuđ prozor. Prozor zbog toga, bar što se tiče operativnih sistema, postaje jedinica za dodelu ekranskog prostora. Ulaz i prozori miš kao pokazivački ulaz lak: na koji prozor miš pokazuje na taj prozor se akcija miša i odnosi. Šta sa tastaturom? Uveden pojam fokusiranog prozora prozora u koji se šalje ulaz sa tastature. Event driven programiranje dobija svoju punu afirmaciju upravo kroz sisteme prozora. Ceo event driven sistem zasniva se na porukama, svaki event u sistemu praćen je porukom. Postoje, naravno, event-i koje iniciraju korisnici pomoću ulaznih uređaja, i event-i koje inicira OS u nekim važnim trenucima. Tipična arhitektura: Prozor Prozor Prozor 3 Message Loop Message Queue Proces Proces event handler event handler event handler Prozor u sebi nema memoriju! Iscrtavanje se vrši kada je to potrebno. Kada se prozor prvi put prikaže, ili kada se neki njegov deo otkrije ili kada mu se promeni veličina, dakle u bilo kojoj situaciji u kojoj je neki njegov deo vidljiv a neiscrtan. O potrebi za iscrtavanje prozora račun vodi isključivo operativni sistem. U trenutku kada je prozor potrebno iscrtati OS štalje tzv. paint poruku kojom traži od programa da popuni sadržajem određeni deo prozora ili ceo prozor. Operativni sistemi, naravno, imaju zadatak da grafički sistem iznesu na što je moguće većem broju platformi (grafičkih karti, monitora, itd.) Aplikaciju sa druge strane ne bi trebalo da zanima da li sadržaj iscrtava na ekran Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA 9 od 68

30 RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG) jedne rezolucije ili druge sa x ili y boja ili možda sadržaj štampa ili sl. Naravno, aplikacija ne bi trebalo da bude i skroz nesvesna situacije u kojoj se štampa, ali samo u pojedinim detaljima i vrlo pažljivo. Rešenje je uvođenje DeviceContext-a. Device Context je apstraktni, virtuelni, univerzalni uređaj. Može se reći da se crtanje obavlja u device kontekstu! DeviceContext se može dalje proširiti kako bi se obezbedilo bogatije crtanje: doda se boja crtanja, boja ispunjavanja, oblici linija, itd, i tako zapravo nastaje PaintContext. Priča o grafici ima dva raspleta: - slobodna grafika podrazumeva odgovor na paint poruku, ulazne event-e. Pogodno za grafički orjentisane aplikacije - kontrole paint poruku i ulazne event-e obrađuje OS na bazi standardnih oblika izgleda i ponašanja kontrola. Pogodno za UI baza podataka, i drugih opštih aplikacija. OS HAL Aplikacija apstraktni GAPI Device Context Device drivers HARDWARE Simple.java Java ne može mnogo pobeći od OS, ali zato to može korektno objektno izmodelirati. U početku nam je dovoljno da koristimo jednostavan prozor u kome se može crtati. import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Simple extends JPanel { static JFrame frame; public Simple() { public void paint (Graphics g) { GraphicsD g = (GraphicsD) g; //... ovde se crta public static void main(string s[]) { Simple panel = new Simple(); frame = new JFrame("Simple"); frame.addwindowlistener(new WindowAdapter() { public void windowclosing(windowevent e) {System.exit(); ); frame.getcontentpane().add("center", panel); frame.setsize(new Dimension(,)); frame.setvisible(true); Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA 3 od 68

31 RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG) GraphicsD Rendering Context Skup atributa stanja pridružen GraphicsD objektu naziva se GraphicsD rendering context. Da bi se iscrtale primitive, tekst, ili slike potrebno je prethodno postaviti GraphicsD rendering context i onda pozvati neku od GraphicsD metoda kao što su draw i fill. GraphicsD rendering context sadrži nekoliko atributa: Stil olovke (pen style) se primenjuje na objekte koji se crtaju linijama. Stroke atribut This stroke omogućava da se linije crtaju proizvoljno debelom olovkom, sa određenim patternom i da se završeci linija mogu crtati sa proizvoljnom dekoracijom. Stil popunjavanja (fill style) se primenjuje na unutrašnjost objekata. Paint atribut omogućava da se oblici iscrtavaju u boji, gradijentu ili patternu. Stil kompozicije (compositing style) se koristi pri preklapanju objekata koji se iscrtavaju Transformacije se primenjuju tokom crtanja radi konverzije objekata iz korisni čkog u device koordinatni sistem. Transformacije koje postoje su translacija, rotacija, skaliranje i iskošivanje. Odsecanje onemogućava iscrtavanje u površinu izvan dozvoljenog clip path-a. Svaki Shape objekat odnosno oblik koji se iscrtava može da posluži i za definiciju odsecajućeg regiona. Font se koristi za iscrtavanje teksta. Rendering hints omogućavaju zadavanje atributa koji obezbeđuju kompromis između brzine i kvaliteta slike. Na primer, moguće je uključiti ili isključiti korišćenje antialiasing-a Da bi se postavio neki atribut GraphicsD rendering contexta mogu se koristiti metode: - void setstroke( Stroke s ) - void setpaint ( Paint p ) - setcomposite ( Composite c ) - settransform ( AffineTransform tx ) - clip ( Shape s ) - setfont ( Font f ) - setrenderinghints (RenderingHints.Key hintkey, Object hintvalue) Napr. gp = new GradientPaint(f,f,blue,f,3f,green); g.setpaint(gp); Ovo znači da je zadavanje atributa praktično prebačeno u odgovarajuće objekte i njihove hijerarhije. GraphicsD sadrži direktne reference na objekte-atribute i ne kopira ih. Međutim, posle izmene bilo koje osobine atributa za vreme za vreme iscrtavanja mora se pozvati set metod. Takođe, sama izmena atributa van konteksta u toku iscrtavanja može dovesti do nepredvidljivih crteža. Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA 3 od 68

32 GraphicsD Rendering Methods RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG) GraphicsD obezbeđuje sledeće opšte metode za iscrtavanje geometrijskih primitiva, teksta i slika. - void draw (Shape s ) - void fill (Shape s) - void drawstring(string s, float x, float y) - drawimage Koordinatni sistemi Java D sistem održava dva koordinatna prostora: - Korisnički prostor za specificiranje grafičkih primitiva - Device prostor za konkretni izlaz uređaj ekran, prozor, štampač. Korisnički prostor je nezavisan od device prostora i koristi se za tumačenje koordinata svih primitiva koje do sistema dođu putem Java D API-ja Ako se ne primenjuju transformacije, koordinatni početak nalazi se u gornjem levom uglu ekrana, a jedinica odgovara jednom pikselu. Shapes ArcD EllipseD QuadCurveD Area GeneralPath RectangleD CubicCurveD LineD RectangularShape DimensionD * PointD * RoundRectangleD Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA 3 od 68

33 RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG) Demonstracioni program: X-OX Napomena: program služi kao ilustracija jednostavnog crtanja primenom grafičkog paketa JavaD. Određeni delovi programa nisu napisani na najefikasniji način. Na primer, prilikom svakog crtanja nepotrebno se dinamički stvaraju novi objekti linija, poligona, itd. import java.awt.*; import java.awt.event.*; import java.awt.geom.*; import javax.swing.*; public class XoX extends JPanel implements KeyListener, MouseListener { private static final int IKS = ; private static final int OKS = ; private static final int NISTA = ; private int a[][]; private int n; public XoX() { a=new int[3][3]; n=3; clear(); protected void clear() { for(int i=;i<3;i++) for(int j=;j<3;j++) a[i][j]=nista; public void paint (Graphics g) { super.paint(g); GraphicsD g = (GraphicsD) g; Dimension d = getsize(); // draw grid g.setstroke(new BasicStroke(, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL)); g.setpaint(color.gray); for(int i=;i<n;i++) { LineD grid_horizontal = new LineD.Float(,i*d.height/n, d.width,i*d.height/n); LineD grid_vertical = new LineD.Float(i*d.width/n,,i*d.width/n, d.height); g.draw(grid_horizontal); g.draw(grid_vertical); //draw elements for(int i=;i<n;i++) for(int j=;j<n;j++) { AffineTransform tx=new AffineTransform(); tx.translate(i*d.width/n, j*d.height/n); tx.scale(d.width/n/, d.height/n/); g.settransform(tx); switch(a[i][j]) { case IKS: int xc[]={,5,8,9,6,9,8,5,,,4,; int yc[]={,4,,,5,8,9,6,9,8,5,; Polygon ox = new Polygon(xc,yc,); g.setstroke(new BasicStroke()); g.setpaint( new GradientPaint(,9,Color.white, 9,,Color.green)); g.fill(ox); break; case OKS: g.setstroke(new BasicStroke()); g.setpaint( new GradientPaint(,5, Color.white,,5,Color.red)); g.fill(new EllipseD.Float(,,6,6)); break; case NISTA: break; Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA 33 od 68

34 RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG) //KeyListener implementation public void keypressed(keyevent e) { public void keyreleased(keyevent e) { public void keytyped(keyevent e) { switch(e.getkeychar()) { case '7':a[][]=OKS; break; case '8':a[][]=OKS; break; case '9':a[][]=OKS; break; case '4':a[][]=OKS; break; case '5':a[][]=OKS; break; case '6':a[][]=OKS; break; case '':a[][]=oks; break; case '':a[][]=oks; break; case '3':a[][]=OKS; break; case '': clear(); break; repaint(); //MouseListener implementation public void mouseclicked(mouseevent e) { Dimension d=getsize(); int x=(int)((float)e.getx()/d.width*n); int y=(int)((float)e.gety()/d.height*n); a[x][y]=iks; repaint(); public void mousereleased(mouseevent e){ public void mouseexited(mouseevent e){ public void mousepressed(mouseevent e){ public void mouseentered(mouseevent e){ public static void main(string s[]) { XoX panel = new XoX(); panel.setopaque(true); JFrame frame = new JFrame("XoX"); frame.addwindowlistener(new WindowAdapter() { public void windowclosing(windowevent e) {System.exit(); ); frame.getcontentpane().add(panel); frame.setsize(new Dimension(,)); frame.setvisible(true); frame.addkeylistener(panel); frame.addmouselistener(panel); Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA 34 od 68

35 Pregled klasa paketa AWT.GEOM RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG) Class Summary: Package java.awt.geom AffineTransform ArcD ArcD.Double ArcD.Float Area CubicCurveD CubicCurveD.Double CubicCurveD.Float DimensionD EllipseD EllipseD.Double EllipseD.Float FlatteningPathIterator GeneralPath LineD LineD.Double LineD.Float PointD PointD.Double PointD.Float QuadCurveD QuadCurveD.Double QuadCurveD.Float RectangleD RectangleD.Double The AffineTransform class represents a D affine transform that performs a linear mapping from D coordinates to other D coordinates that preserves the "straightness" and "parallelness" of lines. ArcD is the abstract superclass for all objects that store a D arc defined by a bounding rectangle, start angle, angular extent (length of the arc), and a closure type (OPEN, CHORD, or PIE). An arc specified in double precision, An arc specified in float precision, The Area class is a device-independent specification of an arbitrarily-shaped area. The CubicCurveD class defines a cubic parametric curve segment in (x, y) coordinate space. A cubic parametric curve segment specified with double coordinates. A cubic parametric curve segment specified with float coordinates. The DimensionD class is to encapsulate a width and a height dimension. The EllipseD class describes an ellipse that is defined by a bounding rectangle. The Double class defines an ellipse specified in double precision. The Float class defines an ellipse specified in float precision. The FlatteningPathIterator class returns a flattened view of another PathIterator object. The GeneralPath class represents a geometric path constructed from straight lines, and quadratic and cubic (Bézier) curves. This LineD represents a line segment in (x, y) coordinate space. A line segment specified with double coordinates. A line segment specified with float coordinates. The PointD class defines a point representing a location in (x, y) coordinate space. The Double class defines a point specified in double precision. The Float class defines a point specified in float precision. The QuadCurveD class defines a quadratic parametric curve segment in (x, y) coordinate space. A quadratic parametric curve segment specified with double coordinates. A quadratic parametric curve segment specified with float coordinates. The RectangleD class describes a rectangle defined by a location (x, y) and dimension (w x h). The Double class defines a rectangle specified in double coordinates. Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA 35 od 68

36 RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG) Class Summary: Package java.awt.geom RectangleD.Float RectangularShape RoundRectangleD RoundRectangleD.Double RoundRectangleD.Float The Float class defines a rectangle specified in float coordinates. RectangularShape is the base class for a number of Shape objects whose geometry is defined by a rectangular frame. The RoundRectangleD class defines a rectangle with rounded corners defined by a location (x, y), a dimension (w x h), and the width and height of an arc with which to round the corners. The Double class defines a rectangle with rounded corners all specified in double coordinates. The Float class defines a rectangle with rounded corners all specified in float coordinates. GRAFPRIMER PRIMER JEDNOSTAVNOG ALATA ZA CRTANJE PRIMITIVA Figura javax.swing.jpanel <<interface>> java.awt.paint #x, y, x, y: integer #popunjena: boolean +sirina(): integer +visina(): integer +levo(): integer +desno(): integer +vrh(): integer +dno(): integer #crtajfiguru(graphicsd) +crtaj(graphicsd) GrafPrimer Linija Pravougaonik Elipsa Kvadrat Krug Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA 36 od 68

37 RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG) Program GrafPrimer primer programa za slobodno crtanje jednostavnih figura // Figura.java import java.awt.*; public abstract class Figura { protected boolean popunjena; protected Paint paint; protected int x, y, x, y; protected Shape oblik; public int sirina() { return Math.abs(x-x); public int visina() { return Math.abs(y-y); public Figura(boolean pop, int xx, int yy, int xx, int yy, Paint p) { popunjena = pop; paint = p; x = xx; x = xx; y = yy; y = yy; int vrh() { if( y < y ) return y-visina(); else return y; int dno() { if( y > y ) return y+visina(); else return y; int levo() { if( x < x ) return x-sirina(); else return x; int desno() { if( x > x ) return x+sirina(); else return x; protected void crtajfiguru(graphicsd gd) { if( popunjena ) gd.fill( oblik ); else gd.draw( oblik ); public void crtaj(graphicsd gd) { gd.setpaint(paint); crtajfiguru(gd); // Linija.java import java.awt.*; import java.awt.geom.*; public class Linija extends Figura { public Linija(int xx, int yy, int xx, int yy, Paint p) { super(false, xx, yy, xx, yy, p); oblik = new LineD.Float(x, y, x, y); Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA 37 od 68

38 RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG) // Pravougaonik.java import java.awt.*; public class Pravougaonik extends Figura { public Pravougaonik(boolean pop, int xx, int yy, int xx, int yy, Paint p) { super(pop, xx, yy, xx, yy, p); oblik = new Rectangle( levo(), vrh(), sirina(), visina() ); // Kvadrat.java import java.awt.*; public class Kvadrat extends Pravougaonik { public Kvadrat(boolean pop, int xx, int yy, int xx, int yy, Paint p) { super(pop, xx, yy, xx, yy, p); public int sirina() { return super.sirina() > super.visina()? super.sirina() : super.visina(); public int visina() { return sirina(); // Elipsa.java import java.awt.*; import java.awt.geom.*; public class Elipsa extends Figura { public Elipsa(boolean pop, int xx, int yy, int xx, int yy, Paint p) { super(pop, xx, yy, xx, yy, p); oblik = new EllipseD.Float(levo(), vrh(), sirina(), visina() ); // Krug.java import java.awt.*; public class Krug extends Elipsa { public Krug(boolean pop, int xx, int yy, int xx, int yy, Paint p) { super(pop, xx, yy, xx, yy, p); public int sirina() { return super.sirina() > super.visina()? super.sirina() : super.visina(); public int visina() { return sirina(); Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA 38 od 68

39 // GrafPrimer.java import java.awt.*; import java.awt.event.*; import java.awt.geom.*; import javax.swing.*; RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG) public class GrafPrimer extends JPanel implements KeyListener, MouseListener, MouseMotionListener { static JFrame frame; private static final int LINIJA =, PRAVOUGAONIK =, KVADRAT = 3; private static final int ELIPSA = 4, KRUG = 5; private static final String[] nazivifigura = { "Linija", "Pravougaonik", "Kvadrat", "Elipsa", "Krug" ; private int tip; private static final int JEDNOBOJNO =, NIJANSIRANO = ; private static final String[] nazivibojenja = { "Jednobojno", "Nijansirano" ; private int nacinbojenja; private Color primarnaboja, sekundarnaboja; private boolean popunjen; private Font font = new Font("Helvetica", Font.BOLD, 8); private int x, y, x, y; private int kursorx, kursory; private class ElementListe { Figura f; ElementListe sledeci; ElementListe(Figura ff) { f = ff; private ElementListe prvi, poslednji; private Figura radna; private Paint napravipaint(int x, int y, int x, int y) { Paint ret = null; switch( nacinbojenja ) { case JEDNOBOJNO: ret = primarnaboja; break; case NIJANSIRANO: ret = new GradientPaint(x, y, primarnaboja, x, y, sekundarnaboja); break; return ret; private Figura napravifiguru() { Figura ret = null; Paint paint = napravipaint(x, y, x, y); switch(tip) { case LINIJA: ret = new Linija(x, y, x, y, paint); break; case PRAVOUGAONIK: ret = new Pravougaonik(popunjen, x, y, x, y, paint); break; case KVADRAT: ret = new Kvadrat(popunjen, x, y, x, y, paint); break; case ELIPSA: ret = new Elipsa(popunjen, x, y, x, y, paint); break; case KRUG: ret = new Krug(popunjen, x, y, x, y, paint); break; return ret; Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA 39 od 68

40 RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG) private Color izborboje(string naslov, Color boja) { Color rezultat = JColorChooser.showDialog(this, naslov, boja); if( rezultat!= null ) return rezultat; else return boja; private void dodajfiguru(figura f) { ElementListe elem = new ElementListe(f); if( prvi!= null ) poslednji.sledeci = elem; else prvi = elem; poslednji = elem; private void isprazni() { prvi = poslednji = null; public GrafPrimer() { tip = LINIJA; nacinbojenja = JEDNOBOJNO; popunjen = false; x = y = x = y = -; primarnaboja = Color.black; sekundarnaboja = Color.red; prvi = poslednji = null; radna = null; addmouselistener(this); addmousemotionlistener(this); public void paint (Graphics g) { super.paint(g); GraphicsD g = (GraphicsD) g; ElementListe tekuci = prvi; while( tekuci!= null ) { tekuci.f.crtaj(g); tekuci = tekuci.sledeci; if( radna!= null ) radna.crtaj(g); g.setfont(font); g.setpaint( Color.black ); g.drawstring("x=" + x + " Y=" + y,, 3); if( tip >= LINIJA && tip <= KRUG ) g.drawstring("[-5]" + nazivifigura[tip-],, 3 + fm.getheight() ); else g.drawstring("[-5]" + "???",, 3 + fm.getheight() ); if( popunjen ) g.drawstring("[] Popunjen",, 3 + fm.getheight()*); else g.drawstring("[] Okvir",, 3 + fm.getheight()*); g.setpaint(primarnaboja); FontMetrics fm = g.getfontmetrics(); g.drawstring("[q] Primarna boja",, 3 + fm.getheight()*4); g.setpaint(sekundarnaboja); g.drawstring("[w] Sekundarna boja",, 3 + fm.getheight()*5); String s = nazivibojenja[nacinbojenja-]; int sirina = fm.stringwidth(s); g.setpaint( napravipaint(, (int)(3 + fm.getheight()*6.5), sirina, (int)(3 + fm.getheight()*6.5) ) ); g.drawstring("[e] " + s,, 3 + fm.getheight()*6 ); Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA 4 od 68

41 //KeyListener implementation public void keypressed(keyevent e) { public void keyreleased(keyevent e) { public void keytyped(keyevent e) { if( x == - ) { switch(e.getkeychar()) { case '': popunjen =! popunjen; repaint(); break; RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG) case 'q': case 'Q': primarnaboja = izborboje("primarna boja", primarnaboja); repaint(); break; case 'w': case 'W': sekundarnaboja = izborboje("sekundarna boja", sekundarnaboja); repaint(); break; case 'e': case 'E': if( nacinbojenja == JEDNOBOJNO ) else repaint(); break; nacinbojenja = NIJANSIRANO; nacinbojenja = JEDNOBOJNO; case ' ': isprazni(); repaint(); break; default: tip = e.getkeychar() - ''; repaint(); // MouseListener implementation public void mouseclicked(mouseevent e) { public void mousepressed(mouseevent e) { if( x == - ) { x = e.getx(); y = e.gety(); public void mousereleased(mouseevent e){ x = e.getx(); y = e.gety(); radna = null; Figura f = napravifiguru(); if( f!= null ) dodajfiguru(f); x = y = -; repaint(); Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA 4 od 68

42 RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG) public void mouseexited(mouseevent e){ public void mouseentered(mouseevent e){ public void mousemoved(mouseevent e) { kursorx = e.getx(); kursory = e.gety(); public void mousedragged(mouseevent e) { kursorx = e.getx(); kursory = e.gety(); x = e.getx(); y = e.gety(); radna = napravifiguru(); repaint(); public static void main(string s[]) { GrafPrimer gp = new GrafPrimer(); gp.setopaque(true); frame = new JFrame("Primer alata za crtanje u JavaD"); frame.addwindowlistener ( new WindowAdapter() { public void windowclosing(windowevent e) { System.exit(); ); frame.getcontentpane().add(gp); frame.setsize(new Dimension(8,6)); frame.setvisible(true); frame.addkeylistener(gp); Predlog modifikacija programa u okviru samostalne vežbe Tokom definisanja nove figure, kod svakog crtanja stvara se nov objekat. Prepraviti program da bi se ovo izbeglo Meni: pozicija svake stavke se računa u apsolutnim vrednostima, čineći meni nefleksibilnim (otežano dodavanje stavki, promena pozicije, itd). Meni treba rešiti novom objektno-orijentisanom implementacijom. Za pozicioniranje koristiti transformacije koordinatnog sistema. Osvežavanje: svako osvežavanje prozora podrazumeva crtanje svih prethodno definisanih figura. Prepraviti program tako da se slika koja sadrži prethodno definisane figure pamti u objektu Image pre crtanja na ekran. Objekat Image se ažurira kada se dodaje nova figura ili kada se menja veli čina prozora (tada se ponovo crtaju sve figure). Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA 4 od 68

43 RAČUNARSKA GRAFIKA (IR4RG,MSRG, SI4RG). Zadatak (Kolokvijum 8. godine) Napisati klasu sa potrebnim atributima i metodom paint() koja u prozoru crta klatno prikazano na slici. Dužina klatna je proporcionalna visini prozora u kojem se klatno prikazuje. Ugao pod kojim se klatno nalazi u odnosu na vertikalnu osu je dato atributom deklarisanim na sledeći način: double ugao; Smatrati da je izračunavanje ugla i obaveštavanje da je potrebno ažuriranje sadržaja prozora u pravilnim vremenskim intervalima realizovano metodom run(), koju ne treba pisati. Nije potrebno pisati niglavni program. REŠENJE import java.awt.*; import java.awt.event.*; import java.awt.geom.*; import javax.swing.*; public class K extends JPanel implements Runnable { double ugao; // deg AffineTransform tr = new AffineTransform(); RectangleD rect = new RectangleD.Double(); EllipseD ellipse=new EllipseD.Double(-5,-5,3,3); EllipseD ellipse=new EllipseD.Double(-5,-5,,); public void paint (Graphics g){ super.paint(g); GraphicsD gd = (GraphicsD) g; Dimension d = getsize(); tr.settoidentity(); tr.translate( d.width/, ); 3 tr.rotate( ugao*math.pi/8. ); gd.settransform(tr); gd.setpaint( Color.black ); 4 rect.setrect( -5,,, d.height*.8 ); gd.fill( rect ); 5 tr.translate(, d.height*.8); gd.settransform(tr); gd.setpaint( Color.red ); 6 gd.fill( ellipse ); gd.setpaint( Color.black ); gd.fill( ellipse ); y x y x y x y x d.width y x y x Đurđević Đorđe / MATERIJALI SA VEŽBI (V9-3-) STRANA 43 od 68

Računarska grafika-vežbe. 2 Parametarske krive Bezjeova kriva, Katmul-Rom splajn

Računarska grafika-vežbe. 2 Parametarske krive Bezjeova kriva, Katmul-Rom splajn Računarska grafika-vežbe 2 Parametarske krive Bezjeova kriva, Katmul-Rom splajn Kubna Bezjeova kriva P(t) = (1- t)p 0 + 3t(1- t)p 1 + 3t(1- t)p 2 + tp 3 za t [0,1] P t = t t t 2 3 ( ) [1 ] 1 0 0 0 P 0

More information

Mašinska vizija. Dr Nenad Jovičić tnt.etf.rs/~mv

Mašinska vizija. Dr Nenad Jovičić tnt.etf.rs/~mv Mašinska vizija Dr Nenad Jovičić 2017. tnt.etf.rs/~mv Linearne 2D geometrijske transformacije 2D geometrijske transformacije Pretpostavka: Objekti u 2D prostoru se sastoje iz tačaka i linija. Svaka tačka

More information

1 RASTERSKI PRIKAZIVAČI

1 RASTERSKI PRIKAZIVAČI RASTERSKI PRIKAZIVAČI Sledeća slika prikazuje izgled signala slike za vreme trajanja jedne horizontalne linije (t H ) t HFP : horizontal front porch time t HBP : horizontal back porch time t HB : horizontal

More information

Programiranje III razred

Programiranje III razred Tehnička škola 9. maj Bačka Palanka Programiranje III razred Naredbe ciklusa for petlja Naredbe ciklusa Veoma često se ukazuje potreba za ponavljanjem nekih naredbi više puta tj. za ponavljanjem nekog

More information

Osnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi

Osnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi Osnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi DELEGATI Bezbedni pokazivači na funkcije Jer garantuju vrednost deklarisanog tipa. Prevodilac prijavljuje grešku ako pokušate da povežete

More information

VHDLPrimeri Poglavlje5.doc

VHDLPrimeri Poglavlje5.doc 5. VHDL opis kola koja obavljaju osnovne aritmetičke funkcije Sabirači Jednobitni potpuni sabirač definisan je tablicom istinitosti iz Tabele 5.1. Tabela 5.1. cin a b sum cout 0 0 0 0 0 0 0 1 1 0 0 1 0

More information

Osnove programskog jezika C# Čas 4. Nasledjivanje 2. deo

Osnove programskog jezika C# Čas 4. Nasledjivanje 2. deo Osnove programskog jezika C# Čas 4. Nasledjivanje 2. deo Nasledjivanje klasa Modifikator new class A { public virtual void F() { Console.WriteLine("I am A"); } } class B : A { public override void F()

More information

Svi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući Java konstrukt

Svi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući Java konstrukt Funkcionalno programiranje Interoperabilnost jezika Scala i Java Prevođenje u Java bajt kod Svi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući

More information

Računarske osnove Interneta (SI3ROI, IR4ROI)

Računarske osnove Interneta (SI3ROI, IR4ROI) Računarske osnove terneta (SI3ROI, IR4ROI) Vežbe MPLS Predavač: 08.11.2011. Dražen Drašković, drazen.draskovic@etf.rs Autori: Dražen Drašković Naučili ste na predavanjima MPLS (Multi-Protocol Label Switching)

More information

Uputstvo za korišćenje logrotate funkcije

Uputstvo za korišćenje logrotate funkcije Copyright AMRES Sadržaj Uvod 3 Podešavanja logrotate konfiguracionog fajla 4 Strana 2 od 5 Uvod Ukoliko je aktivirano logovanje za RADIUS proces, može se desiti da posle određenog vremena server bude preopterećen

More information

UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET

UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET Katedra za elektroniku Računarska elektronika Grupa br. 11 Projekat br. 8 Studenti: Stefan Vukašinović 466/2013 Jelena Urošević 99/2013 Tekst projekta :

More information

x y = z Zadaci - procedure

x y = z Zadaci - procedure Zadaci - procedure Zad1. Data je kvadratna meta u koordinatnom sistemu sa koordinatama A(0,0), B(1,0), C(1,1), D(0,1). Sastaviti proceduru Gadjanje koja će odrediti broj poena na sledeći način: ako je

More information

VB komande. Programiranje 1

VB komande. Programiranje 1 VB komande Programiranje 1 Zadatak 1: Sastaviti program koji se sastoji iz jedne ListBox kontrole, jedne Textbox kontrole i dva komandna dugmeta. Klikom na prvo komandno dugme umeće se u ListBox sadržaj

More information

CSS CSS. selector { property: value; } 3/20/2018. CSS: Cascading Style Sheets

CSS CSS. selector { property: value; } 3/20/2018. CSS: Cascading Style Sheets CSS CSS CSS: Cascading Style Sheets - Opisuje izgled (appearance) i raspored (layout) stranice - Sastoji se od CSS pravila, koji defini[u skup stilova selector { property: value; 1 Font face: font-family

More information

Modbus TCP i dva PLC S7 1200

Modbus TCP i dva PLC S7 1200 Industrijski sistemi i protokoli Modbus TCP i dva PLC S7 1200 1 Modbus TCP i dva PLC S7 1200 Laboratorijski deo - obavezno: Detaljno proučiti i testirati već napravljeni projekat za PLC-ove, koji se nalazi

More information

GUI - događaji (Events) i izuzeci. Bojan Tomić

GUI - događaji (Events) i izuzeci. Bojan Tomić GUI - događaji (Events) i izuzeci Bojan Tomić Događaji GUI reaguje na događaje (events) Događaj je neka akcija koju korisnik programa ili neko drugi izvrši korišćenjem perifernih uređaja (uglavnom miša

More information

VDSL modem Zyxel VMG1312-B10A/B30A

VDSL modem Zyxel VMG1312-B10A/B30A VDSL modem Zyxel VMG1312-B10A/B30A Default Login Details LAN IP Address http://192.168.2.1 User Name user Password 1234 Funkcionalnost lampica Power lampica treperi kratko vrijeme nakon uključivanja modema,

More information

namespace spojneice { public partial class Form1 : Form { public Form1() { InitializeComponent(); }

namespace spojneice { public partial class Form1 : Form { public Form1() { InitializeComponent(); } Spojnice using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO;

More information

VRIJEDNOSTI ATRIBUTA

VRIJEDNOSTI ATRIBUTA VRIJEDNOSTI ATRIBUTA Svaki atribut (bilo da je primarni ključ, vanjski ključ ili običan atribut) može i ne mora imati ograničenja na svojim vrijednostima. Neka od ograničenja nad atributima: Null / Not

More information

b) program deljiv3; uses wincrt; var i:integer; begin i:=3; while i<100 do begin write(i:5); i:=i+3; end; end.

b) program deljiv3; uses wincrt; var i:integer; begin i:=3; while i<100 do begin write(i:5); i:=i+3; end; end. NAREDBA CIKLUSA SA PREDUSLOVOM WHILE 1.Odrediti vrednosti s i p nakon izvrsenja sledecih naredbi za dato a=43, a=34, a=105 program p1; var a,s,p:integer; write('unesite a:');readln(a); p:=a; s:=0; while

More information

Uvod u programiranje - vežbe. Kontrola toka izvršavanja programa

Uvod u programiranje - vežbe. Kontrola toka izvršavanja programa Uvod u programiranje - vežbe Kontrola toka izvršavanja programa Naredbe za kontrolu toka if, if-else, switch uslovni operator (?:) for, while, do-while break, continue, return if if (uslov) naredba; if

More information

pojedinačnom elementu niza se pristupa imeniza[indeks] indeks od 0 do n-1

pojedinačnom elementu niza se pristupa imeniza[indeks] indeks od 0 do n-1 NIZOVI Niz deklarišemo navođenjemtipa elemenata za kojim sledi par srednjih zagrada[] i naziv niza. Ako je niz višedimenzionalni između zagrada[] se navode zarezi, čiji je broj za jedan manji od dimenzija

More information

Besplatni softverski alati

Besplatni softverski alati Sadržaj Besplatni softverski alati GIMP 1 1. 2. 3. 4. 5. Zoltan Geller zoltang@ff.uns.ac.rs 2016 6. Potrebni alati - Kompresovanje fajlova i foldera - Potrebni alati - Dekompresovanje fajlova i foldera

More information

Izrada VI laboratorijske vježbe

Izrada VI laboratorijske vježbe Izrada VI laboratorijske vježbe 1. Programirati proceduru koja se aktivira sa Standard palete alatki klikom na button Fajlovi. Prilikom startovanja procedure prikazuje se forma koja sadrži jedan list box

More information

2. Linijska algoritamska struktura

2. Linijska algoritamska struktura Univerzitet u Nišu Građevinsko-arhitektonski fakultet Informatika 2 2. Linijska algoritamska struktura Milica Ćirić Blokovi za prikaz algoritma Algoritam se vizuelno može prikazati pomoću blok dijagrama,

More information

UPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a

UPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a UPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a Webmail sistem ima podršku za SSL (HTTPS). Korištenjem ovog protokola sva komunikacija između Webmail sistema i vašeg Web čitača je kriptovana. Prilikom pristupa

More information

VMware Workstation. VMwareWorkstation ESX ($) (vmotion, DRS, HA, Storage vmotion) vcenter Server ($) Server. Guest OS

VMware Workstation. VMwareWorkstation ESX ($) (vmotion, DRS, HA, Storage vmotion) vcenter Server ($) Server. Guest OS VMware Workstation ESX ($) vcenter Server ($) (license manager) Server hardware (vmotion, DRS, HA, Storage vmotion) ESXi (freeware) (ESXi freeware is managed by the Virtual Infrastructure (or vsphere)

More information

PREDMET. Osnove Java Programiranja. Čas JAVADOC

PREDMET. Osnove Java Programiranja. Čas JAVADOC PREDMET Osnove Java Programiranja JAVADOC Copyright 2010 UNIVERZITET METROPOLITAN, Beograd. Sva prava zadržana. Bez prethodne pismene dozvole od strane Univerziteta METROPOLITAN zabranjena je reprodukcija,

More information

Vežbe - XII nedelja PHP Doc

Vežbe - XII nedelja PHP Doc Vežbe - XII nedelja PHP Doc Dražen Drašković, asistent Elektrotehnički fakultet Univerziteta u Beogradu Verzija alata JavaDoc za programski jezik PHP Standard za komentarisanje PHP koda Omogućava generisanje

More information

Uputstvo za podešavanje mail klijenta

Uputstvo za podešavanje mail klijenta Uputstvo za podešavanje mail klijenta 1. Podešavanje Thunderbird mail klijenta 1.1 Dodavanje mail naloga Da biste podesili Vaš mail klijent (u ovom slučaju Thunderbird) da prima i šalje mail-ove potrebno

More information

Događaj koji se javlja u toku izvršenja programa i kvari normalno izvršenje. Kada se desi izuzetak, sistem pokušava da pronađe način da ga obradi.

Događaj koji se javlja u toku izvršenja programa i kvari normalno izvršenje. Kada se desi izuzetak, sistem pokušava da pronađe način da ga obradi. Obrada izuzetaka Šta je izuzetak? Događaj koji se javlja u toku izvršenja programa i kvari normalno izvršenje. Kada se desi izuzetak, sistem pokušava da pronađe način da ga obradi. Prosleđuje izuzetak,

More information

Uputstva za instaliranje čitača Datalogic Skorpio u operativnom sistemu Windows 7 i višim POM-NA-XX-46, V3.0

Uputstva za instaliranje čitača Datalogic Skorpio u operativnom sistemu Windows 7 i višim POM-NA-XX-46, V3.0 POM - Pomoć korisnicima Uputstva za instaliranje čitača Datalogic Skorpio u operativnom sistemu Windows 7 i višim POM-NA-XX-46, V3.0 IZUM, 2016 COBISS, COMARC, COBIB, COLIB, IZUM su zaštićeni znaci u posedu

More information

Sberbank Business Online na Mozilla FireFox

Sberbank Business Online na Mozilla FireFox Sberbank Business Online na Mozilla FireFox Verzija 1.6 Srpanj 2016. Sberbank d.d. Stranica 1 SADRŽAJ 1 INSTALACIJA... 2 2 POKRETANJE MOZILLE FIREFOX... 3 2.1 IMPORT SECURITY MODULA... 4 2.2 AUTOMATSKI

More information

KLASIFIKACIJA JELENA JOVANOVIĆ. Web:

KLASIFIKACIJA JELENA JOVANOVIĆ.   Web: KLASIFIKACIJA JELENA JOVANOVIĆ Email: jeljov@gmail.com Web: http://jelenajovanovic.net PREGLED PREDAVANJA Šta je klasifikacija? Binarna i više-klasna klasifikacija Algoritmi klasifikacije Mere uspešnosti

More information

PARALELNO PROGRAMIRANJE

PARALELNO PROGRAMIRANJE Predavanje 09 Odjel za matematiku 1 PARALELNO PROGRAMIRANJE POSIX threadovi za C++ Predavanje 09 Odjel za matematiku 2 Programske niti (thread) unutar procesa Danas ćemo se upoznati s POSIX thread bibliotekom

More information

Programiranje Internet aplikacija

Programiranje Internet aplikacija Programiranje Internet aplikacija Čas 8 - HTML 5 Dražen Drašković, Sanja Delčev Neka pravila HTML 5 Nove mogućnosti treba da se zasnivaju na HTML-u, CSS-u, DOM-u i JavaScript-u. Smanjiti potrebu za eksternim

More information

Programiranje Programski jezik C. Sadržaj. Datoteke. prof.dr.sc. Ivo Ipšić 2009/2010

Programiranje Programski jezik C. Sadržaj. Datoteke. prof.dr.sc. Ivo Ipšić 2009/2010 Programiranje Programski jezik C prof.dr.sc. Ivo Ipšić 2009/2010 Sadržaj Ulazno-izlazne funkcije Datoteke Formatirane datoteke Funkcije za rad s datotekama Primjeri Datoteke komunikacija između programa

More information

1. Introduction 2. Methods for I/O Operations 3. Buses 4. Liquid Crystal Displays 5. Other Types of Displays 6. Graphics Adapters 7.

1. Introduction 2. Methods for I/O Operations 3. Buses 4. Liquid Crystal Displays 5. Other Types of Displays 6. Graphics Adapters 7. 1. Introduction 2. Methods for I/O Operations 3. Buses 4. Liquid Crystal Displays 5. Other Types of Displays 6. Graphics Adapters 7. Optical Discs 1 Structure of a Graphics Adapter Video Memory Graphics

More information

NIZOVI.

NIZOVI. NIZOVI LINKOVI ZA KONZOLNI C# OSNOVNO http://www.mycity.rs/net/programiranje-u-c-za-osnovce-i-srednjoskolce.html http://milan.milanovic.org/skola/csharp-00.htm Niz deklarišemo navođenjem tipa elemenata

More information

Programske paradigme Funkcionalna paradigma

Programske paradigme Funkcionalna paradigma Programske paradigme Funkcionalna paradigma 1. čas: Uvod u funkcionalno programiranje. Programski jezik Haskel. Upoznavanje sa razvojnim okruženjem. Tipovi podataka. Funkcionalno programiranje Stil u programiranju

More information

Vidljivost TipPovratneVrednosti ImeFunkcije (NizParametara) { TeloFunkcije }

Vidljivost TipPovratneVrednosti ImeFunkcije (NizParametara) { TeloFunkcije } 1. FUNKCIJE I STRUKTRUE PROGRAMA Složeni problemi lakše se rašavaju ako se podele na manje celine koje mogu nezavisno da se rešavaju. Rešenje celokupnog složenog problema dobija se kombinovanjem rešenja

More information

Binarne hrpe. Strukture podataka i algoritmi VJEŽBE 26. siječnja / 133

Binarne hrpe. Strukture podataka i algoritmi VJEŽBE 26. siječnja / 133 Binarne hrpe Potpuno binarno stablo binarno stablo u kojem svaki čvor koji nije list ima točno 2 nasljednika. Binarna hrpa potpuno binarno stablo u kojem svaki čvor koji nije list ima veću ključnu vrijednost

More information

Programski jezici. leto

Programski jezici. leto Programski jezici leto 2010-11 Grafički programi Koriste grafičke mogućnosti: boje, fontove, geometrijske oblike, slike,... Komuniciraju sa korisnikom preko grafičkog korisničkog interfejsa koji se sastoji

More information

Učitati cio broj n i štampati njegovu recipročnu vrijednost. Ako je učitan broj 0, štampati 1/0.

Učitati cio broj n i štampati njegovu recipročnu vrijednost. Ako je učitan broj 0, štampati 1/0. Kontrolne naredbe Primjeri: Opšti oblik razgranate strukture (if sa ) if (uslov) Naredba 1 ili blok naredbi1 Naredba 2 ili blok naredbi2 Učitati broj x i štampati vrijednost double x, z; Scanner in=new

More information

Korisničko uputstvo za instalaciju i podešavanje securew2 programa za pristup eduroam servisu

Korisničko uputstvo za instalaciju i podešavanje securew2 programa za pristup eduroam servisu Korisničko uputstvo za instalaciju i podešavanje securew2 programa za pristup eduroam servisu Termin supplicant se koristi u IEEE 802.1X standardu. U širem značenju, ovaj termin predstavlja entitet (korisnik

More information

VHDLPrimeri Poglavlje3.doc. end process seq; Slika 3.1: Anatomija osnovne definicije test bench-a

VHDLPrimeri Poglavlje3.doc. end process seq; Slika 3.1: Anatomija osnovne definicije test bench-a 3. Verifikacija projekta - Test bench entity TestBench is end entity TestBench; architecture TB_Arhitektura of TestBench is component UUT (Arhitektura_UUT) port( end component UUT; prazan entitet -- deklarisanje

More information

Jezik Baze Podataka SQL. Jennifer Widom

Jezik Baze Podataka SQL. Jennifer Widom Jezik Baze Podataka SQL SQL o Jezik koji se koristi u radu sa relacionim bazama podataka o Nije programski jezik i manje je kompleksan. o Koristi se isključivo u radu za bazama podataka. o SQL nije case

More information

Programming Graphics Hardware

Programming Graphics Hardware Tutorial 5 Programming Graphics Hardware Randy Fernando, Mark Harris, Matthias Wloka, Cyril Zeller Overview of the Tutorial: Morning 8:30 9:30 10:15 10:45 Introduction to the Hardware Graphics Pipeline

More information

PKI Applet Desktop Application Uputa za instalaciju programske potpore

PKI Applet Desktop Application Uputa za instalaciju programske potpore 1 SADRŽAJ 1. UVOD 3 2. PODRŽANI OPERATIVNI SUSTAVI 3 3. PROGRAMSKI PREDUVJETI ZA INSTALACIJU PROGRAMSKE POTPORE 3 4. INSTALACIJA PROGRAMSKE POTPORE 3 5. DEINSTALACIJA PROGRAMSKE POTPORE 6 2 1. Uvod PKI

More information

Zadatci Small Basic za 7. Razred ( programa)

Zadatci Small Basic za 7. Razred (  programa) Zadatci Small Basic za 7. Razred (www.smallbasic.com-preuzimanje programa) 1. Nacrtaj slijedeći crtež pomoću naredbi u small basic-u. Boje odaberite po svojim željama. GraphicsWindow.Width = 600 Visina

More information

Uputa za instaliranje programske potpore za operativni sustav WINDOWS

Uputa za instaliranje programske potpore za operativni sustav WINDOWS ZABA SignErgy Desktop aplikacija Uputa za instaliranje programske potpore za operativni sustav WINDOWS SADRŽAJ 1. UVOD 3 2. PODRŽANI OPERATIVNI SUSTAVI 3 3. PROGRAMSKI PREDUVJETI ZA INSTALACIJU PROGRAMSKE

More information

... ; ako je a n parno. ; ako je a n neparno

... ; ako je a n parno. ; ako je a n neparno Zadaci vezani za ciklus sa preduslovom (WHILE) Zad. Napisati program za izračunavanje n_tog stepena broja a. Zad2. Napisati program za izračunavanje sume S kvadrata parnih i kubova neparnih prirodnih brojeva

More information

Univerzitet u Nišu Građevinsko-arhitektonski fakultet. 4. Ciklična algoritamska struktura 5. Jednodimenzionalno polje.

Univerzitet u Nišu Građevinsko-arhitektonski fakultet. 4. Ciklična algoritamska struktura 5. Jednodimenzionalno polje. Univerzitet u Nišu Građevinsko-arhitektonski fakultet Informatika 2 4. Ciklična algoritamska struktura 5. Jednodimenzionalno polje Milica Ćirić Ciklična algoritamska struktura Ciklična struktura (petlja)

More information

Microsoft Hyper-V Server 2016 radionica EDU IT Pro, Zagreb,

Microsoft Hyper-V Server 2016 radionica EDU IT Pro, Zagreb, Microsoft Hyper-V Server 2016 radionica EDU IT Pro, Zagreb, 13.04.2017. Podešavanje Hyper-V Servera 2016 za RSAT upravljanje Dario Štefek Lokacije za preuzimanje: Microsoft Hyper-V Server 2016 https://www.microsoft.com/en-us/evalcenter/evaluate-hyper-v-server-2016

More information

Sveučilište u Zagrebu PMF Matematički odsjek. Mreže računala. Vježbe 08. Zvonimir Bujanović Slaven Kožić Vinko Petričević

Sveučilište u Zagrebu PMF Matematički odsjek. Mreže računala. Vježbe 08. Zvonimir Bujanović Slaven Kožić Vinko Petričević Sveučilište u Zagrebu PMF Matematički odsjek Mreže računala Vježbe 08 Zvonimir Bujanović Slaven Kožić Vinko Petričević Uvod: (X)HTML i CSS Na ovim i idućim vježbama naučit ćemo osnove jezika za opisivanje

More information

Uvod u relacione baze podataka

Uvod u relacione baze podataka Uvod u relacione baze podataka Ana Spasić 5. čas 1 Podupiti, operatori exists i in 1. Izdvojiti imena i prezimena studenata koji su položili predmet čiji je identifikator 2001. Rešenje korišćenjem spajanja

More information

Prirodno-matematički fakultet u Nišu Departman za fiziku. dr Dejan S. Aleksić Programiranje u fizici

Prirodno-matematički fakultet u Nišu Departman za fiziku. dr Dejan S. Aleksić Programiranje u fizici Programiranje u fizici Prirodno-matematički fakultet u Nišu Departman za fiziku dr Dejan S. Aleksić Programiranje u fizici 7-8 Definicija, inicijalizacija promenljivih 2/21 u C-u Program napisan u programskog

More information

Windows Server 2012, VDI Licenciranje najprodavanijeg servera, što je novo, VDI licenciranje. Office 2013 / Office 365

Windows Server 2012, VDI Licenciranje najprodavanijeg servera, što je novo, VDI licenciranje. Office 2013 / Office 365 Windows 8 Licenciranje, razlike u verzijama Windows Server 2012, VDI Licenciranje najprodavanijeg servera, što je novo, VDI licenciranje Serverski proizvodi Server 2012, System centar 2012, SQL 2012, Sharepoint

More information

PRINCIPI SOFTVERSKOG INŽENJERSTVA TIM NAZIV_TIMA

PRINCIPI SOFTVERSKOG INŽENJERSTVA TIM NAZIV_TIMA PRINCIPI SOFTVERSKOG INŽENJERSTVA TIM NAZIV_TIMA SPECIFIKACIJA BAZE PODATAKA ZA PROJEKAT NAZIV_PROJEKTA Veb knjižara - Specifikacija baze podataka 1 10.04.2017. Verzija V 1.0 Datum: 20. mart 2017. Istorija

More information

Računarska grafika-vežbe. 3 JavaFX animacija i interakcija

Računarska grafika-vežbe. 3 JavaFX animacija i interakcija Računarska grafika-vežbe 3 JavaFX animacija i interakcija Zadatak1: Spirala+ Kolokvijum K1 09/10, zadatak prerađen za JavaFX Napisati klasu koja sastavlja graf scene za crtanje centralno simetrične figure

More information

PVC Eco. Eco Prozori i Balkonska Vrata Bela Boja Dezeni drveta su 40% skuplji

PVC Eco. Eco Prozori i Balkonska Vrata Bela Boja Dezeni drveta su 40% skuplji PVC Eco Eco Prozori i Balkonska Vrata Bela Boja Dezeni drveta su 40% skuplji PVC prozori i Balkonska vrata od 5-komornik profilanemačkog proizvođača Trocal 70.A5 Okovi za PVC stolariju nemačkog proizvođača

More information

Prva recenica. Druga recenica.

Prva recenica. Druga recenica. Algoritmi i programiranje Predavanje 4 METODE LOKALNE, GLOBALNE VARIJABLE I KONSTANTE METODA je imenovani izdvojeni slijed naredbi koji rješava određeni zadatak i po potrebi se poziva jednom ili više puta

More information

Marko Milošević.

Marko Milošević. Marko Milošević marko643@gmail.com marko.milosevic@pmf.edu.rs ESPB 8 Bodovanje Domaći Kolokvijumi 2x10 2x20 Završni ispit 40 Konsultacije sreda 13-14 četvrtak 16-17 Šabloni dizajna (Design Patterns) Metrika

More information

Cjenovnik usluga informacionog društva

Cjenovnik usluga informacionog društva Cjenovnik usluga informacionog društva Verzija: 01/2018 Sadržaj 1 Web hosting 3 2 Registracija domena 3 3 Internet marketing 3 4 E mail paketi 4 5 Virtuoz 4 6 Internet Security servis 5 7 Kolokacija servera

More information

var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin ListBox1.Items.LoadFromFile('d:\brojevi.

var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin ListBox1.Items.LoadFromFile('d:\brojevi. 1 PANEL komponenta kontejnerska, slična GropBox. Roditeljska komponenta za komp. postavljene na nju. Zajedno se pomeraju. Caption svojstvo za naziv; Alighment pomera svojstvo Caption levo i desno; Align

More information

JavaScript i HTML DOM

JavaScript i HTML DOM 4. vježbe iz WEB programiranja četvrtak, 22. ožujka 2012. JavaScript 1. dio JavaScript i Što je DOM? Kako JS koristi DOM? Pristup elementima dokumenta Promjena i učitavanje vrijednosti tagova Primjer 1.

More information

VEŽBA 5 do while petlja, switch case

VEŽBA 5 do while petlja, switch case VEŽBA do while petlja, switch case Petlja sa ulaznim uslovom do while U slučaju do while petlje obavezno izvršavanje bar jedne iteracije se postiže tako što je upravljački izraz petlje na samom dnu petlje.

More information

Dežurni nastavnik: Kolokvijum traje 1.5 sat, prvih sat vremena nije dozvoljeno napuštanje kolokvijuma. Upotreba literature nije dozvoljena.

Dežurni nastavnik: Kolokvijum traje 1.5 sat, prvih sat vremena nije dozvoljeno napuštanje kolokvijuma. Upotreba literature nije dozvoljena. Dežurni nastavnik: Elektrotehnički fakultet u Beogradu Katedra za računarsku tehniku i informatiku Predmet: Testiranje Softvera (SI3TS) Nastavnik: doc. dr Dragan Bojić Asistent: dipl. ing. Dražen Drašković

More information

12. Uskladištene procedure (Stored Procedures)

12. Uskladištene procedure (Stored Procedures) 12. Uskladištene procedure (Stored Procedures) Uskladištena procedura je skup SQL iskaza koji su kompajlirani i sačuvani u trenutku njenog kreiranja. Veoma su moćne i preko njih mogu da se izvršavaju sve

More information

Veliki računski zadaci mogu se razbiti u manje delove i time se omogućava ljudima da iskoriste ono što su neki drugi već uradili, umesto da počinju

Veliki računski zadaci mogu se razbiti u manje delove i time se omogućava ljudima da iskoriste ono što su neki drugi već uradili, umesto da počinju Staša Vujičić Čas 9 Veliki računski zadaci mogu se razbiti u manje delove i time se omogućava ljudima da iskoriste ono što su neki drugi već uradili, umesto da počinju sve od početka. Odgovarajuće funkcije

More information

Evolution of GPUs Chris Seitz

Evolution of GPUs Chris Seitz Evolution of GPUs Chris Seitz Overview Concepts: Real-time rendering Hardware graphics pipeline Evolution of the PC hardware graphics pipeline: 1995-1998: Texture mapping and z-buffer 1998: Multitexturing

More information

Sadržaj. Verzija 03/2017 Primjenjuje se od 20. novembra godine

Sadržaj. Verzija 03/2017 Primjenjuje se od 20. novembra godine Sadržaj 1 Web hosting 3 2 Registracija domena 3 3 Internet marketing 3 4 E mail paketi 4 5 Virtuoz 4 6 Internet Security servis 5 7 Kolokacija servera 6 8 Cloud usluge 6 9 Aktivni servisi koji nijesu u

More information

Upute za postavljanje Outlook Expressa

Upute za postavljanje Outlook Expressa Upute za postavljanje Outlook Expressa Prije postavljanja klijenata morate obavezno obaviti prvu prijavu na web mail kako bi aktivirali vaš račun na novom sustavu. Ukoliko niste obavili prvu prijavu, nećete

More information

Programiranje III razred

Programiranje III razred Tehnička škola 9. maj Bačka Palanka Programiranje III razred Konverzija tipova Konverzija tipova Prilikom komunikacije aplikacije sa korisnikom, korisnik najčešće unosi ulazne podatke koristeći tastaturu.

More information

ECE 571 Advanced Microprocessor-Based Design Lecture 20

ECE 571 Advanced Microprocessor-Based Design Lecture 20 ECE 571 Advanced Microprocessor-Based Design Lecture 20 Vince Weaver http://www.eece.maine.edu/~vweaver vincent.weaver@maine.edu 12 April 2016 Project/HW Reminder Homework #9 was posted 1 Raspberry Pi

More information

(non breaking space) kontrola horizontalnog rastojanja u tekstu

(non breaking space) kontrola horizontalnog rastojanja u tekstu Korišćeni elementi: h1, h2, h3, h4, h5, h6 obeležavanje naslova p obeležavanje pasusa blockquote veći citati BLOK ELEMENTI LINIJSKI ELEMENTI pre preformatiranje teksta tako da se zadržavaju sve beline

More information

Oracle Proprietary Joins Za upite nad više od jedne tabele korišćenjem Oracle proprietary sintakse koristiti join uslov u WHERE izrazu:

Oracle Proprietary Joins Za upite nad više od jedne tabele korišćenjem Oracle proprietary sintakse koristiti join uslov u WHERE izrazu: Database Programming with SQL kurs 2017 database design and programming with sql students slajdovi 7-1 Oracle Equijoin and Cartesian Product Prethodna sekcija se bavila upitima preko više od jedne tabele

More information

PROGRAMIRANJE. Amir Hajdar

PROGRAMIRANJE. Amir Hajdar PROGRAMIRANJE Amir Hajdar Teme 2 Klase i objekti u Javi Primjer kroz klasu Krug Atributi i metode Inicijalizacija objekata (konstruktori) Polymorphism Statičke varijable i metode This Klase i objekti u

More information

Razvoj hibridnih mobilnih aplikacija pomoću PhoneGap platforme

Razvoj hibridnih mobilnih aplikacija pomoću PhoneGap platforme INFOTEH-JAHORINA Vol. 12, March 2013. Razvoj hibridnih mobilnih aplikacija pomoću PhoneGap platforme Igor Dujlović Elektrotehnički fakultet Banja Luka Banja Luka, BiH dujlovic@gmail.com Zoran Đurić Elektrotehnički

More information

PRIMENA MIKROKONTROLERA- MS1PMK 8. deo. Nenad Jovičić

PRIMENA MIKROKONTROLERA- MS1PMK 8. deo. Nenad Jovičić PRIMENA MIKROKONTROLERA- MS1PMK 8. deo 2017 Nenad Jovičić STM32L476 A/D konvertor Osnovne karakteristike Trostruki 12-bitni A/D konvertor sa sukcesivnim aproksimacijama AD konvertori mogu da rade sinhronizovano

More information

Numerical Computation

Numerical Computation GNU Octave Numerical Computation vrlo često u tehnici retko stvarni problemi imaju closed-form solution čak i kad imaju, pitanje upotrebljivosti mnogo detalja numerički pristup u početku tretirano kao

More information

Sveučilište u Zagrebu Fakultet strojarstva i brodogradnje. WEB programiranje HTML & CSS

Sveučilište u Zagrebu Fakultet strojarstva i brodogradnje. WEB programiranje HTML & CSS Sveučilište u Zagrebu Fakultet strojarstva i brodogradnje WEB programiranje HTML & CSS Autor/i: Juraj Benić 2018 1. Zadatak Kreirati stranicu kojoj će naslov biti Zadatak 1. i veličina teksta 20px te staviti

More information

PVC Eco. Eco Prozori i Balkonska Vrata Bela Boja Dezeni drveta su 40% skuplji

PVC Eco. Eco Prozori i Balkonska Vrata Bela Boja Dezeni drveta su 40% skuplji PVC Eco Eco Prozori i Balkonska Vrata PVC prozori i Balkonska vrata od 5-komornik profilanemačkog proizvođača Trocal 70.A5 Niskoemisiono 2-slojno staklo 4+16+4mm, proizvođaća Guardian iz Luxemburga Profil:

More information

Graphics Hardware. Instructor Stephen J. Guy

Graphics Hardware. Instructor Stephen J. Guy Instructor Stephen J. Guy Overview What is a GPU Evolution of GPU GPU Design Modern Features Programmability! Programming Examples Overview What is a GPU Evolution of GPU GPU Design Modern Features Programmability!

More information

PROCENA UGROŽENOSTI METODOM INDEKSA POŽARA I EKSPLOZIJE (F&EI) DOW INDEKS

PROCENA UGROŽENOSTI METODOM INDEKSA POŽARA I EKSPLOZIJE (F&EI) DOW INDEKS PROCENA UGROŽENOSTI METODOM INDEKSA POŽARA I EKSPLOZIJE (F&EI) DOW INDEKS Risk Assessment with Fire and Explosion Index (F&EI) Method - DOW Index Miroslav Gojić d.o.o. Termoenergo inženjering, Beograd

More information

Rekurzivne metode. Posmatrajmo rekurzivan metod kojim u objektu listbox1 klase ListBox upisujemo sve prirodne brojeve od 1 do datog n.

Rekurzivne metode. Posmatrajmo rekurzivan metod kojim u objektu listbox1 klase ListBox upisujemo sve prirodne brojeve od 1 do datog n. Rekurzivne metode Rekurzivan metod je onaj metod koji u nekoj svojoj instrukciji sadrži poziv samog sebe. Svakako prilikom kreiranja rekurzivnog metoda moramo voditi računa da ne dodje do beskonačne rekurzije

More information

Variable Neighborhood Descent - VND (Metoda promenljivog spusta)

Variable Neighborhood Descent - VND (Metoda promenljivog spusta) Variable Neighborhood Descent - VND (Metoda promenljivog spusta) Izabrati skup okolina N k, k = 1,..., k max koje će se koristiti za pretragu; Na slučajan način izabrati početno rešenje x X i postaviti

More information

Računarska grafika-vežbe. 5 JavaFX 3D scena, objekti, kamera, svetlo

Računarska grafika-vežbe. 5 JavaFX 3D scena, objekti, kamera, svetlo Računarska grafika-vežbe 5 JavaFX 3D scena, objekti, kamera, svetlo Test 3D scene (1/2) Program za test 3D scene: import javafx.application.application; import javafx.application.conditionalfeature; import

More information

for i:=2 to n do if glasovi[i]>max then begin max:=glasovi[i]; k:=i {*promenljiva k ce cuvati indeks takmicara sa najvise glasova *} end;

for i:=2 to n do if glasovi[i]>max then begin max:=glasovi[i]; k:=i {*promenljiva k ce cuvati indeks takmicara sa najvise glasova *} end; {*Na Evroviziji je ucestvovalo n izvodjaca. Koji od njih je osvojio najvise glasova publike?*} program Evrovizija; glasovi:array[1..50] of integer; max,k:integer; writeln('unosi se broj izvodjaca:'); writeln('unose

More information

Spring 2009 Prof. Hyesoon Kim

Spring 2009 Prof. Hyesoon Kim Spring 2009 Prof. Hyesoon Kim Application Geometry Rasterizer CPU Each stage cane be also pipelined The slowest of the pipeline stage determines the rendering speed. Frames per second (fps) Executes on

More information

1/42 SQL DDL. CREATE ALTER DROP Schema Table Tablespace Index View Domain Constraint... DECLARE TABLE (DB2)

1/42 SQL DDL. CREATE ALTER DROP Schema Table Tablespace Index View Domain Constraint... DECLARE TABLE (DB2) 1/42 SQL DDL CREATE ALTER DROP Schema Table Tablespace Index View Domain Constraint... DECLARE TABLE (DB2) 2/42 SQL DDL: CREATE SCHEMA CREATE SCHEMA ime-sheme [ AUTHORIZATION ime-vlasnika-sheme] [ CREATE

More information

Graphics Processing Unit Architecture (GPU Arch)

Graphics Processing Unit Architecture (GPU Arch) Graphics Processing Unit Architecture (GPU Arch) With a focus on NVIDIA GeForce 6800 GPU 1 What is a GPU From Wikipedia : A specialized processor efficient at manipulating and displaying computer graphics

More information

ECE 571 Advanced Microprocessor-Based Design Lecture 18

ECE 571 Advanced Microprocessor-Based Design Lecture 18 ECE 571 Advanced Microprocessor-Based Design Lecture 18 Vince Weaver http://www.eece.maine.edu/ vweaver vincent.weaver@maine.edu 11 November 2014 Homework #4 comments Project/HW Reminder 1 Stuff from Last

More information

Spring 2010 Prof. Hyesoon Kim. AMD presentations from Richard Huddy and Michael Doggett

Spring 2010 Prof. Hyesoon Kim. AMD presentations from Richard Huddy and Michael Doggett Spring 2010 Prof. Hyesoon Kim AMD presentations from Richard Huddy and Michael Doggett Radeon 2900 2600 2400 Stream Processors 320 120 40 SIMDs 4 3 2 Pipelines 16 8 4 Texture Units 16 8 4 Render Backens

More information

Algoritmi i strukture podataka

Algoritmi i strukture podataka Algoritmi i strukture podataka vežbe 7 Mirko Stojadinović 20. decembar 2015 1 1 Kviksort Složenost ovog algoritma je u najgorem sluǎju O(n 2 ) (kada se za pivot bira uvek najmanji element što je slučaj

More information

Real - Time Rendering. Graphics pipeline. Michal Červeňanský Juraj Starinský

Real - Time Rendering. Graphics pipeline. Michal Červeňanský Juraj Starinský Real - Time Rendering Graphics pipeline Michal Červeňanský Juraj Starinský Overview History of Graphics HW Rendering pipeline Shaders Debugging 2 History of Graphics HW First generation Second generation

More information

Ugradjena promenljiva ans cuva poslednju vrednost koja nije dodeljena ni jednoj promenljivoj >> ans+3

Ugradjena promenljiva ans cuva poslednju vrednost koja nije dodeljena ni jednoj promenljivoj >> ans+3 Ugradjena promenljiva Pi >> pi 3.1416 Ugradjena promenljiva NaN (Not A Number) >> NaN NaN Beskonacno >> Inf Inf Ugradjena funkcija exp() za eksponencijalnu funkciju (npr. e na 3 stepen) >> exp(3) 20.0855

More information

Real-Time Rendering (Echtzeitgraphik) Michael Wimmer

Real-Time Rendering (Echtzeitgraphik) Michael Wimmer Real-Time Rendering (Echtzeitgraphik) Michael Wimmer wimmer@cg.tuwien.ac.at Walking down the graphics pipeline Application Geometry Rasterizer What for? Understanding the rendering pipeline is the key

More information

Integritet u relacionim bazama podataka

Integritet u relacionim bazama podataka Integritet u relacionim bazama podataka Nenad Mitić Matematički fakultet nenad@matf.bg.ac.rs a a - DATE-AIDB Pojam se u kontekstu baza podataka odnosi na preciznost, punovažnost i korektnost podataka u

More information

Upravljanje sistemom datoteka

Upravljanje sistemom datoteka Upravljanje sistemom datoteka Sistem datoteka Datoteka (file) predstavlja jedinicu smeštanja informacija na diskovima i ostalim spoljašnjim medijumima. Pri tome datoteka skriva detalje, od korisnika, o

More information