Avtor, Karlo Stovicek
RPK, 2000
Mentor, Janez Krek
The program calculates the illumination in the room. The user must provide some basic parameters to the program, which calculates the llumination for every point on the floor. The results are displayed with a help of a raster graphic library. The source code of the program is written in JavaScript.
Program služi za izris osvetlenosti tal v prostoru. Vhodni podatki so: velikost tal, velikost luči, razmak med lučmi, minimalni odmik luči od sten, moč ter izkoristek luči. Program je izdelan s skriptnim jezikom JavaScript (izris s pomočjo rastrske knjižnice).
Slika 2: Dimenzije tal in parametri luči
Program se zažene s klikom na gumb "Program", ki zažene povezavo s datoteko program.html. V datoteki sta vključeni tako HTML kot tudi JavaScript programska koda. Sam program je sestavljen iz več logičnih delov. Ob zagonu se najprej pojavi delovno okno programa. Sama HTML koda skrbi za vizualni prikaz programa, skriptna koda pa nadzira vsa ostala dogajanja v programu. Za delovanje je potrebno izpolniti zahtevana vnosna polja, iz katerih se potem preberejo sami parametri s klicanjem funkcije read_para1(). Za branje spremenljivk JavaScipta so uporabljeni dogodki (Events), ki kličejo funkcije branja parametrov. Polja, ki jih je potrebno izpolniti imajo prednastavljene vrednosti. Če želim določeno vrednost spremeniti, kliknem v polje te vrednosti in vpišem novo vrednost. S klikom miške izven tega polja (na drugo vnosno polje, gumb ali prazen prostor), se pokliče branje parametrov. Za vsako spremembo se berejo vsi parametri znova, saj samo branje ni počasno, tako da je klic nove funkcije za vsako spremenljivko posebaj nepotreben.
Za začetek izrisa je najprej potrebno klikniti na gumb "Lights", ki izračuna potrebno število luči po dolžini in širini glede na podane parametre. Ob kliku tega gumba, se v polju "Activated lights" pojavijo vse luči, ki so možne v tistem prostoru glede na podane parametre. Sedaj lahko s klikanjem posameznih luči le te prižigam ali ugašam. če je luč označena, potem to pomeni, da je vključena. Za izbiro več luči je potrebno držati tudi gumb "CTRL", ki omogoča posamično izbiranje, ali pa gumb "SHIFT", ki izbira od prve izbrane do kliknene luči. Razporeditev posameznih luči iz samega indeksa je razvidna iz slike 2, ki predstavlja porazdelitev luči po prostoru.
Ko imam izbrane vse luči, ki jih želim prižgati, lahko kliknem na gumb "Calculate", ki dejansko stanje osvetlitve tudi nariše. Za izris je potrebno upoštevati celotno matematiko iz poglavja Teoretičnih osnov, ki je kljub poenostavitvam precej zapletena.
Zgradba samega programa je sledeča:
S temi stopnjami je pojasnjena celotna struktura programa, posamezne funkcije pa se lahko ogledajo z desnim klikom miške na programskem polju in izbiro postavke "View source/Izvorna koda". Na sliki 3 je predstavljen izgled programa v delovanju za 3 krat 3 luči, pri vklopljenih [0,0], [0,2] in [1,1].
Slika 3: Izgled delovanja programa
V vaji je bilo potrebno izdelati program za predstavitev osvetlenosti tal prostora. Za izris se potrebuje ogromno matematike in tudi poznavanje osnov programiranja s programskim skriptnim jezikom JavaScript in uporabo HTML sintakse, kot osnovo za večpredstavno stran. Iz osnov poznavanja jezikov je bilo potrebno ustvariti program, ki ni namenjen samo prikazovanju, ampak je tudi primeren za nadaljno uporabo, saj je izris osvetlenosti popolnoma sledi podanim parametrom. V programu sem se trudil delati strukturo na način, ki bi omogočal čim hitrejše delo. Program bi ob majhnih spremembah dovoljeval veliko večje površine in visoko število luči, kar bi popolnoma ustrezalo realnim pogojem, bi pa se s tem hitrost izrisa precej upočasnila. Sam program bi postal precej bolj zahteven z dodatkom, ki bi omogočal spreminjanje parametrov posameznih luči, in bi tudi hkrati upošteval odbojne parametre samega prostora.
Vaja je kljub poenostavitvam, ki ne zajemajo realnosti objektov, izredno poučna in zanimiva in hkrati tudi težavna.