Professional Documents
Culture Documents
Prirodno-matematiki fakultet
Departman za matematiku i
informatiku
Mentor:
dr ore Herceg
Student:
Vesna Rvovi
br. indeksa 70m/11
Novi Sad, 2014.
Sadraj:
1. Uvod .......................................................................................................................................................... 1
2.Obrazovni softver i vizualizacija geometrijskih objekata ........................................................................... 2
3. Matematike osnove ................................................................................................................................. 5
3.1.Triangulacija poligona ......................................................................................................................... 5
3.2. Generisanje triangulacija na sferi ....................................................................................................... 8
3.3. Parametrizacija ................................................................................................................................. 12
3.3.1. Cilindar....................................................................................................................................... 13
3.3.2. Konus ......................................................................................................................................... 14
3.3.4. Sfera........................................................................................................................................... 16
3.4. Matrice rotacije ................................................................................................................................ 18
3.4.1. Rotacija take oko ,
i ose................................................................................................... 18
3.4.2. Rotacija oko proizvoljne ose koja sadri koordinatni poetak .................................................. 19
3.4.3. Ojlerovi uglovi............................................................................................................................ 21
4. Koriena tehnologija .............................................................................................................................. 23
5. Kreiranje Silverlight 3D aplikacije ............................................................................................................ 25
5.1. Poetak ............................................................................................................................................. 26
5.2. Crtanje grafikih primitiva (engl. Draw Primitive) ............................................................................ 27
5.3. Vertex Buffer .................................................................................................................................... 27
5.4. GraphicsDevice klasa ........................................................................................................................ 27
5.5. Efekti (engl. Effects).......................................................................................................................... 28
5.6. Tekstura ............................................................................................................................................ 28
5.7. Matrice i 3D transformacije.............................................................................................................. 28
5.8. Dodavanje efekata i tehnike (engl. Effect Passes and Techniques) ................................................. 31
5. . mog avanje razmere Drawing rface-a ...................................................................................... 31
5.10. Invalidate ........................................................................................................................................ 31
5.11. Bezbednosna ogranienja .............................................................................................................. 32
5.12. ptimizacija Draw dogaaja........................................................................................................... 32
6. Klase koje predstavljaju 3D geometrijske objekte .................................................................................. 33
6.1. Valjak ................................................................................................................................................ 34
1. Uvod
Nastavna sredstva su didaktiki oblikovana izvorna stvarnost [7] (modeli tela, udbenici,
slike...), a nastavna pomagala su orua za rad (pano, projektor, kalkulator...), koje nastavnik
koristi prilikom poduavanja. Uenje je uspenije ako se zasniva na vie komponenti za primanje
informacija. Psiholoka istraivanja pokazuju da se 80% informacija prima vizualnom
komponentom, pa je za uenje matematike ona najvanija [23]. Uenje 3D geometrije, pogotovo
u osnovnoj koli, za uenike je nemogue bez vizualizacije. Koristei raunare i specijalizovane
programe, olakava se prikazivanje preciznih slika, modela, atraktivnih prezentacija...
Predava treba da se koristi razliitim nastavnim sredstvima i pomagalima kako bi
nastavu odrao ivom, zanimljivom. Od nastavnika se oekuje da nastavu prilagodi uenicima i
savremenom dobu. U dananje vreme, kada smo zahvaeni vrtlogom tehnolokih inovacija, koje
velikom brzinom postaju neizbean deo svakodnevnice, teko je odrati korak. Na neki nain,
ovaj rad je moj pokuaj da, kao budui nastavnik matematike, kreiram softver koji bi
osavremenio nastavu, uinio je zanimljivijom, pristupanijom i razumljivijom.
Zadatak ovog master rada je razvoj aplikacije za vizualizaciju geometrijskih tela u
Silverlight tehnologiji. U radu se razmatraju matematike osnove triangulacije poligona,
predstavljanje povri u trodimenzionalnom prostoru i algoritmi za generisanje mree tela. Na
platformi Silverlight, verzija 5, implementirana je aplikacija koja omoguava kreiranje, prikaz i
izmenu trodimenzionalnih geometrijskih tela. U radu je implementiran i netrivijalan algoritam za
generisanje sfere.
Rad [16] koji se bavi optimalnom triangulacijom sfere, imao je najvei uticaj pri
kreiranju algoritma triangulacije sfere, koji e biti prikazan u ovom radu. Knjiga [17] je
neophodna za razumevanje rada [16]. U njoj su, izmeu ostalog, definisane krivine povri i dat je
dokaz o konstantnim krivinama sfere. Sa stanovita programiranja, od najveeg znaaja za mene
prilikom istraivanja za potrebe ovog rada bila je knjiga [14], jer nisam imala iskustva u
programiranju i bez nje ne bih uspela da sva steena znanja primenim, to je i bio cilj.
Implementacija softvera za generisanje i prikaz trodimenzionalnih tela, opisana u ovom
radu, moe da poslui kao vodi nastavnicima koji ele i sami da se oprobaju u razvoju
geometrijskog softvera.
Ako se ve toliko zaklinjemo da nam je od svega vanije aktivno uee dece u nastavi, ako
nam je zaista iskrena ta naa elja da deca misle, da vie razumevaju, a manje pamte, moramo
traiti konkretne i efikasne naine da decu pokrenemo, zainteresujemo i aktiviramo.
Duko Radovi - Na ostrvu pisaeg stola.
Osim telefoniranja, mobilni telefoni esto nude i dodatne servise kao to su SMS, e-mail, pristup
Internetu, pregled multimedije, itd.
Ovo opravdava razvoj geometrijskog softvera za Windows i Windows Phone, jer je oigledno da
je koristan i potreban. Web pregledai, Windows Phone i Windows 8 tableti i raunari prirodno
rade na Silverlight-u, i iz tog razloga, za potrebe ovog rada, razvijen je program na ovoj
platformi. Geometrijski programi su uglavnom samostojei proizvodi koji se ne mogu integrisati
u neki drugi obrazovni softver, za razliku od kreiranog programa. Za 3D je koriena XNA
tehnologija, koja omoguava pristup 3D hardveru i podrana je na nabrojanim platformama.
Razvijene klase slue za generisanje geometrijskih objekata u zavisnosti od zadatih parametara
(visina i poluprenik osnove kod valjka i kupe, poluprenik kod lopte). Kreirana Silverlight
aplikacija predstavlja demonstraciju upotrebe tih klasa. Konani rezultat rada jesu razvijene
fleksibilne softverske komponente koje se mogu ugraivati u druge obrazovne programe i
program koji demonstrira kako se mogu koristiti.
3. Matematike osnove
Za programiranje je neophodno poznavanje matematike, pa tako i za generisanje i prikazivanje
trodimenzionalnih mrea. Potrebno je vladati i sposobnou apstrakcije, algoritamskog miljenja,
struktuiranjem modela problema i algoritma. U tekstu koji sledi bie obraeni matematiki
pojmovi koji bi trebalo da dovedu do razumevanja kreiranih algoritama.
3.1.Triangulacija poligona
Definicija 1. Triangulacija poligona je razbijanje unutranjosti poligona (u smislu da se on
prikazuje kao unija svojih delova pri emu svaka dva imaju disjunktne unutranjosti) na
trouglove unutranjim dijagonalama koje, ako imaju zajednikih taaka, one mogu biti samo
temena poligona.
Lema 1. Svaki poligon, sem trougla, ima unutranju dijagonalu.
Dokaz. Neka je dat poligon
i neka je
teme poligona sa najmanjom prvom
koordinatom u zadatom desnom Dekartovom pravouglom sistemu, a ako takvih ima vie,
odreenosti radi, uzimamo ono teme sa najmanjom drugom koordinatom. Unutranji ugao kod
tako izabranog temena je konveksan. Njegova susedna temena poligona oznaimo sa
i
. Ako je dijagonala
unutranja, dokazali smo, a ako nije, onda postoji jedno ili
vie temena poligona unutar trougla
ili na dijagonali
. Neka je
takvo
teme poligona koje je najdalje od dijagonale
. Dijagonala
ne see ni jednu
stranicu poligona. U suprotnom, takva stranica bi imala teme unutar trougla
koje je
dalje od dijagonale
nego
. Da je dijagonala
unutranja sledi iz pretpostavke
da je unutranji ugao poligona kod temena
konveksan.
Teorema 1. Svaki poligon ima triangulaciju. Svaka triangulacija poligona sa
trougla.
,
po
Dokaz. Za
, poligon je trougao, pa je
. etvorougao se moe triangulisati samo na
dva naina, jer ima samo dve dijagonale i obe razbijaju etvorougao na dva trougla, tj.
(Slika 1).
Primetimo da je svaka stranica proizvoljnog konveksnog poligona stranica tano jednog trougla
triangulacije. Oznaimo temena poligona brojevima
(Slika 2) i fiksirajmo stranicu .
Tada se poligon
sa dijagonalama
i
razbija na tri dela:
1. trougao
iji je broj triangulacija jedan;
2. konveksan poligon sa
temena ija su temena vea ili jednaka (koji se moe
triangulirati na
naina) ;
3. konveksan poligon sa temena ija su temena manja ili jednaka ( naina).
Poto su izbori triangulacije prethodna tri poligona meusobno nezavisni, vai princip proizvoda,
pa je za izabrano -to teme broj triangulacija
.
(1)
Za
, poligon se stranicom
razbija na trougao
(
) i konveksan poligon
sa
temena (koji se moe triangulirati na
naina), a za
se stranicom
razbija na trougao
(
) i konveksan poligon
sa
temena (koji se moe triangulirati na
naina). Stoga, sledi da i za ovako izabrano
vai (1).
Izbor -tog temena moemo uiniti na vie nezavisnih naina, pa preostaje sumiranje po svim
moguim vrednostima
.
, gde su
, gde je
Triangulacija se koristi u dokazima nekih teorema kombinatorne geometrije kao to su: razloiva
jednakost poligona i Pikova teorema [15].
Pod triangulacijom poliedra podrazumevamo triagulacije svih poligona koji predstavljaju strane
tog poliedra.
Slika 3. Sluaj
Sluaj
U ovom sluaju triangulacija ima formu prikazanu na Slici 4. Na osnovu
ordanove teoreme (Q se nalazi u jednoj od dve moguce oblasti) i nisu susedni ili i
nisu susedni vorovi. Bez umanjenja optosti, neka i nisu susedni. Tada se odstranjivanjem
vora
i grana
i dodavanjem grane
dobija triangulacija
sa
vorova.
Obrnutim procesom od se dobija .
Slika 4. Sluaj
Sluaj
Tvrdimo da postoji neko
sa Slike 5. koje nije susedno ni sa jednim drugim
osim sa ona dva prikazana na toj slici .
U suprotnom, to bi vailo i za , pa bi bio susedan sa ili sa . Recimo da je susedan sa
(grana bi pripadala oblasti koja je odredjena sa krivom
u kojoj nije ). Ali tada ne bi
isto moglo da vazi i za , tj. ne bi moglo biti susedno ni sa ni sa . Kontradikcija.
Stoga, moemo pretpostaviti da
i dodavanjem
i
procesom od se dobija .
Slika 5. Sluaj
Na taj nain dobijamo tri operacije koje, kada se primene na sve mogue naine na sve
triangulacije od
vorova, e dati sve mogue triangulacije od
vorova. Postoji
mogunost da su neke od dobijenih triangulacija izomorfne, te se u nastavku rada objanjava
kako se prepoznaju izomorfne triangulacije da bi se dolo do traenog broja triangulacija.
Sada pretpostavimo da su i dve triangulacije sa po vorova. Trouglove triangulacije
poreamo redom po najveem stepenu vora trougla, zatim po stepenu drugog najveeg i na kraju
po stepenu treeg vora. Sa
obeleimo skup maksimalnih trouglova triangulacije . Ako je
i
izomorfizam, tada izomorfizam mora sadrati
za neko
.
Pretpostavimo da
preslikava
u ,
i elimo da proirimo
na izomorfizam
. Kreui se u pravcu kazaljke na satu od , neka je
prvi sledei vor susedan sa .
Poto se radi o triangulaciji, mora postojati grana koja spaja
sa . Neka je vor razliit od
tako da je
. Ako je izomorfizam dobijen proirenjem funkcije , onda je
i
je susedno sa
i
, pa mora biti
.
Nastavljajui postupak, na ovaj nain uoavamo da je definisana na svim vorovima koji su
susedni sa . Ponavljajui ovaj postupak za vorove susedne sa
definie se za sva temena
na udaljenosti 2 od . Indukcijom ovaj metod odreuje izomorfizam proirujui , ako
uopte postoji. Primenjujui ovaj algoritam na sve mogue
i proveravajui svaku funkciju
da li je izomorfizam, dobijamo odgovor na pitanje da li su triangulacije i izomorfne.
Ne primenjujemo treu operaciju algoritma generisanja ako dovodi do triangulacije sa vorom
stepena 3 ili 4, a drugu operaciju ne koristimo ako dovodi do triangulacije sa vorom stepena 3.
Takve triangulacije e se dobiti primenom prethodnih operacija na drugim triangulacijama.
U Tabeli 1. predstavljen je broj neizomorfnih triangulacija
stepena 3
gde je broj vorova triangulacije .
Tabela 1.
6
2
1
7
5
1
8
14
2
9
50
5
10
233
12
11
1249
34
12
7595
130
Slika 7. Triangulacije sa 5 vorova, dobijena dodavanjem take Q i odgovarajuih grana na prethodnu triangulaciju
10
11
3.3. Parametrizacija
Povri u prostoru se parametrizuju korienjem dva parametra, koji se najee oznaavaju sa
12
i ,
Slika 12:
linije povri
3.3.1. Cilindar
Slika 13.
linije cilindra
gde je
i
.
-linije su prave, a -linije su podudarne krunice poluprenika .
13
gde je
i poluprenik baze i
visina valjka.
3. Konstruiu se pravougaonici koji aproksimiraju omota valjka
odgovarajuih taaka gornje i donje baze na sledei nain:
,
,...,
.
4. Za zadate take baza konstruiu se n-touglovi
i
.
3.3.2. Konus
Slika 14.
linije konusa
14
,i
povezivanjem
Kod konusa, kao i kod cilindra, -linije su prave, a -linije su krunice. Razlika je u tome to su
krunice -linije sve veeg obima kako se udaljavaju od take
.
Ako je potreba za aproksimacijom kupe takva da greke krivina (razlika izmeu krivine i
aproksimacije krivine) to manje zavise od udaljenosti -linije od vrha kupe, onda se to moe
postii na sledei nain. Podeli se omota kupe -linijama, tako to se podeli visina na jednake
delove. Trake omeene
-linijama se aproksimiraju etvorouglovima, tako da broj
etvorouglova bude srazmeran udaljenosti trake od vrha kupe, a sam vrh kupe (od vrha kupe do
najblie -linije) se aproksimira podudarnim jednakokrakim trouglovima. to se vie traka
napravi, to e greke krivina manje zavisiti od udaljenosti od vrha kupe. Meutim, problem kod
ovog naina predstavljanja kupe je to se mrea pravi iz delova koji nisu spojeni, pa se javljaju
rupe koje dovode do loeg izgleda kupe (videti Sliku 15).
Slika 15.
Ako je jedini uslov aproksimacije izgled kupe, onda je dovoljno da se omota kupe predstavi
preko podudarnih jednakokrakih trouglova sa temenom u vrhu kupe, odnosno, da se aproksimira
-tostranom piramidom. Baza kupe se aproksimira kao i baza valjka.
Algoritam:
1. Neka je
15
3.3.4. Sfera
Slika 16.
linije sfere
je poluprenik.
Ukoliko se triangulacija sfere vri preko njenih i linija (tradicionalna mrea preko geografske
irine i duine), i linije nee odstupati od mree jednako na svim njenim delovima. Ova vrsta
nepravilnosti se moe umanjiti poveavanjem broja i linija kako se pribliavaju ekvatoru, ali
kao i kod kupe, triangulacija e biti iz delova koji nisu spojeni, pa izgled sfere nee biti
zadovoljavajui.
16
Algoritam:
1. Kreira se niz taaka ikosaedra upisanog u jedininu krunicu, koordinate preuzete iz izvora
[27]:
=
=
=(0.724, 0.526, -0.447);
2.Zatim se kreiraju strane ikosaedra, to je niz ureenih trojki:
17
za svako
broj trouglova.
je oznaka za
to
teme
tog trougla , a oznaka
podrazumeva da je svaka koordinata tacke
jednaka aritmetikoj sredini odgovarajuih koordinata taaka i .
4. Take
,
broj trouglova, projektuju se na sferu mnoei koordinate recipronom
vrednou kvadratnog korena zbira kvadrata koordinata. Neka su te nove take
i .
5. Kreiraju se trouglovi
,
,
i
koji su lanovi novog niza
trouglova, odnosno ine telo koje bolje aproksimira sferu od prethodnog.
6. Nakon napravljenog novog tela, vraa se na 3. korak i tako dok se ne dobije eljeni izgled
sfere.
i ose
18
ravan
Neka je
taaka redom
,
na
,
ravan. Tada je
, gde su
projekcije
,
,
,
gde je
rastojanje take
od
ose. Sledi
,
,
,
ose za ugao
.
oko
ose.
.
Matrica rotacije oko
-ose za ugao
je
.
ose za ugao
19
Slika 20.
Rotacijom oko
dobija se vektor
Neka je
, gde je
ravni
, tada vai:
i
3. Vektor iz
kao osa.
ose za ugao
Slika 21.
20
Rotacijom vektora
, gde je
. Tada vai:
i
.
4. Vri se rotacija oko ose za zadati ugao
.
5. Primenjuju se inverzne transformacije redom
Rezultat je matrica
Ako su
i
dva pravougla Dekartova sistema iste (desne) orjentacije sa istim koordinatnim
poetkom , onda se iz jednog sistema transformacijama moe prei u drugi sistem [20].
,
prava preseka ravni
i
,
predstavlja proizvod tri matrice rotacije
, a transformacija
gde je
, pa je
21
Uglovi
22
4. Koriena tehnologija
Microsoft .NET Framework je softverska platforma koja moe biti instalirana na
raunarima koje pokree Microsoft Windows operativni sistem. On ukljuuje veliki broj gotovih
biblioteka za uobiajene primene u programiranju i virtuelnu mainu koja upravlja izvravanjem
programa pisanih specijalno za .NET Framework. .NET podrava vie programskih jezika
(VB.NET, C#...). Za razvoj aplikacija koje rade na .NET Frameworku, potreban je i Microsoft
SDK (engl. Microsoft Software Development Kit) i Visual Studio.
Bazne klase pruaju irok spektar mogunosti, ukljuujui korisniki interfejs, pristup podacima,
bazama, razvoj web aplikacija,... Biblioteke klasa se koriste od strane programera, koji ih
kombinuju sa svojim kodom u toku izrade aplikacija.
Programi pisani za .NET Framework izvrava se u specifinom softverskom okruenju. Naime,
ovo okruenje je poznato kao Common Language Runtime (CLR). CLR obezbeuje da
programeri ne treba da razmatraju mogunosti specifinih procesora koji e izvriti program. On
takoe prua druge vane usluge kao to su bezbednost, upravljanje memorijom, a i rukovanje
izuzecima. Biblioteke klasa (Framework Class Library) i CLR zajedno ine .NET Framework. Za
potrebe ovog rada korien je Microsoft .NET Framework 4.5.
XAML (Extensible Application Markup Language) predstavlja deklarativni jezik koji se
koristi za inicijalizaciju .NET objekata. Drugim reima, XAML dokumenti definiu raspored
panela, dugmadi i drugih kontrola koje ine UI (user interface) aplikacije.
Iako je takav sluaj mogu, XAML se ne pie runo. Postoji niz alata ija uloga je generisanje
XAML koda. Koji alat e biti korien, zavisi od uloge korisnika u razvojnom procesu aplikacije.
Programeri e, naravno, koristiti Visual Studio, dok e se grafiki dizajneri puno bolje snai u
Microsoft Expression Blend-u. Upravo u toj injenici lei i jedna od najveih prednosti XAML-a
on predstavlja tehnologiju koju e deliti programeri i dizajneri korisnikog interfejsa. Pre
pojave XAML-a proces kreiranja korisnikog interfejsa, koji bi ukljuivao dizajnere i
programere, bio je frustrirajui za obe strane i na kraju se obino svodio na sledee: grafiki
dizajner bi pripremio model korisnikog interfejsa, koji bi programeri kasnije morali da prevode
u kod. Upotrebom XAML-a proces moe izgledati ovako: programer kreira osnovni korisniki
interfejs i potom ga predaje dizajn timu koji dalje radi na njemu.
I pored saradnje sa grafikim dizajnerima postoji mnogo drugih razloga za koricenje XAML-a:
23
Slika 24. Poloaj koordinatnog sistema u odnosu na ravan ekrana (xy ravan ekrana)
U narednom delu bie objanjeni osnovni principi i klase koje se koriste za kreiranje Silverlight
3D aplikacije.
25
5.1. Poetak
Nakon kreiranja Silverlight projekta, automatski su dodate dve XAML datoteke sa
pozadinskim kodom: App.xaml (App.xaml.cs) i MainPage.xaml (MainPage.xaml.cs). App.xaml
klasa predstavlja ulaznu taku aplikacije i sadri dogaaje Startup, Exit i UnhandledException.
U okviru metoda Application_Startup postavlja se poetna stranica MainPage.xaml. MainPage
klasa predstavlja Silverlight korisniku kontrolu (user control), tj. nasleuje klasu UserControl.
Dakle, sam izgled aplikacije se definie u okviru MainPage.xaml datoteke, dok se obrada
dogaaja definie u MainPage.xaml.cs.
26
27
5.6. Tekstura
U XNA, 3D scena se sastoji od mrea trouglova obloenih teksturama. Teksture su
jednostavno 2D slike (engl. bitmap)-XNA klasa je Texture2D. alju se GraphicsDevice klasi
koristei Effect klasu i svakom temenu trougla dodeljuju se koordinate unutar svoje 2D teksture.
texture = new Texture2D(g, 1, 1, false, SurfaceFormat.Color);
texture.SetData<Color>(new Color[1] { color });
be.Texture = texture;
be.TextureEnabled = true;
definie gde je i kako je orijentisan model u virtuelnom 3D svetu. Ako 3D scena sadri vie
modela, ili vie delova istog modela, svaki e imati vlastite svetske transformacije.
Slika 26.
Prvo se zadaje poloaj kamere, zatim centralna taka onoga to se gleda i pogled na gore.
29
Prvo se zadaje ugao soiva, zatim odnos visine i irine projekcijske ravni, pa udaljenost prednje
projekcijske ravni od kamere i na kraju udaljenost zadnje projekcijske ravni od kamere. Objekti
koji treba da se vide se moraju nalaziti izmeu projekcijskih ravni.
Nakon postavljanja ovih transformacija, BasicEffect klasa brine o postavljanju GraphicsDevice-a
da renderuje 3D scenu na 2D ekran.
be.World = world;
be.View = view;
be.Projection = projection;
30
5.10. Invalidate
Na samom kraju Draw dogaaja poslednja linija koda je
e.InvalidateSurface();
Stavljanje ovog poziva na kraju Draw dogaaja dovodi do konstantnog uitavanja. Za 3D scenu
koja se stalno menja, to omoguava glatke operacije. Ako je scena statina, ova linija koda je
nepotrebna.
31
5.12. ptimizacija ra
dogaaja
Sve animacije zasnivaju se na osobini ljudskog oka da registruje promenu u intervalu 2-3 stota
dela sekunde. Iz tog razloga Draw dogaaj se izvrava konstantno, pa je poeljno da u njemu
bude samo neophodan deo koda, a to je sve ono to utie na stanje GraphicsDevice-a. Kreiranjem
Loaded dogaaja u DrawingSurface-u i prebacivanjem svega iz Draw dogaaja to se izvrava
samo jednom i ne utie na stanje GraphicsDevice-a, ovaj problem se reava, kao i kreiranjem
promenljivih za klase Texture2D, Vertex Buffer i BasicEffect.
32
Postupci generisanja valjka, kupe i sfere ve je objanjen u poglavlju 2.6. Ovde e biti
predstavljene klase u programu kreiranom za potrebe ovog rada, deo u kome se definiu take i
strane kojima se aproksimiraju ova tela, pri emu se zna da je ravan ekrana u stvari
ravan i
pozitivni deo ose je blii kameri.
33
6.1. Valjak
Ovde e biti prikazana primena algoritma kojim se uzorkuje i aproksimira valjak. Valjak
se aproksimira praviln om -tostranom prizmom. Kreira se valjak visine 1 i poluprenika 1, ija
osnova lei u
ravni. Koristei ovu klasu, mogue je konstruisati valjak razliitih dimenzija.
Menjanje visine se vri mnoenjem koordinate taaka gornje baze, a poluprenik osnove
mnoenjem i koordinata svih uzorkovanih taaka eljenom veliinom. Poloaj valjka na
ravan ekrana se moe menjati transformacijama i rotacijama, koristei Matrix klasu kao to je ve
objanjeno u poglavlju 4.7.
for (int i = 0; i < n; i++)
{
upperBase.Add(new Vector3((float)Math.Cos(i * 2 * Math.PI / n), 1, (float)Math.Sin(i * 2 * Math.PI / n)));
}
for (int i = n-1; i >= 0; i--)
{
lowerBase.Add(new Vector3((float)Math.Cos(i * 2 * Math.PI / n), 0f, (float)Math.Sin(i * 2 * Math.PI / n)));
}
unitVertices.AddRange(upperBase);
unitVertices.AddRange(lowerBase);
int[] upperFace = new int[upperBase.Count];
int[] lowerFace = new int[lowerBase.Count];
int lowerBaseIndexPos = upperBase.Count;
int vertexCount = unitVertices.Count;
for (int i = 0; i < upperBase.Count; i++)
{
upperFace[i] = i;
lowerFace[i] = i + lowerBaseIndexPos;
int nextI = (i + 1) % lowerBaseIndexPos;
faces.Add(new int[4] { i, vertexCount - i - 1, vertexCount - nextI - 1, nextI });
}
faces.Add(upperFace);
faces.Add(lowerFace);
unitVertices predstavlja listu svih taaka uzorkovanih iz valjka kojima se valjak aproksimira.
faces je lista nizova, svaki niz odgovara takama koje obrazuju jednu stranu, lanovi niza su
brojevi mesta take u unitVertices listi.
upperBase je lista taaka gornje baze valjka, a lowerBase donje.
U prvoj for petlji se kreiraju take kojima se aproksimira gornja baza, analogno, u drugoj donja.
U faces se pored nizova koji predstavljaju baze dodaju i nizovi od etiri lana koji predstavljaju
pravougaonike kojima se aproksimira omota valjka.
Za
dobija se pravilna trostrana prizma, za
dobijamo valjak.
34
6.2. Kupa
Za namenu ovog projekta od vanosti je samo izgled tela, pa je klasa kojom se generie
kupa veoma jednostavna. Kupa se aproksimira pravilnom -tostranom piramidom.
for (int i = 0; i < n; i++)
{
unitVertices.Add(new Vector3( (float)Math.Cos(i * 2 * Math.PI / n), 0,
(float)Math.Sin(i * 2 * Math.PI / n)));
}
unitVertices.Add(new Vector3(0, 1, 0));
int[] Base = new int[n];
for (int i = 0; i < n; i++)
{
faces.Add(new int[3] { i, (i + 1) % n,n });
Base[i] = i;
}
faces.Add(Base);
}
U for petlji se u listu prvo ubacuju take baze, a zatim se dodaje taka vrha kupe.
Niz Base definie mesta taaka u unitVertices listi kojima se aproksimira baza kupe.
faces predstavlja listu nizova, svaki lan niza je mesto take u unitVertices listi, ovde se
Za
dobija se pravilna trostrana piramida,
menjati mnoenjem koordinate take vrha
koordinata taaka baze sa eljenom veliinom.
6.3. Sfera
Kao to je i bilo rei, aproksimaciju sfere mreom trouglova, gde je inicijalna
triangulacija ikosaedar, optimalna je triangulacija sfere. U listu taaka se prvo ubacuju temena
ikosaedra kojih ima dvanaest, a zatim se oni povezuju u 20 trouglova. Bitno je voditi rauna da se
poveu odgovarajua temena. Zatim se rauna poluprenik sfere kao kvadratni koren iz zbira
kvadrata koordinata proizvoljne take iz liste taaka. Zatim ikosaedar ulazi u drugu for petlju gde
se raunaju sredinje take svake ivice svakog trougla (midPointA, midPointB, midPointC).
35
36
Datim kodom je generisana jedinina sfera. Promena poluprenika vri se mnoenjem svih
koordinata svih taaka u listi unitVertices eljenom veliinom.
37
7. Silverlight 3D aplikacije
Na osnovu ranije opisanih teorijskih osnova i programerskih tehnika, razvijena je Silverlight 3D
aplikacija koja omoguava :
38
Slika 33. Aplikacija prikazuje mreu trouglova koja odreuje estostranu piramidu
39
Drugi deo ove aplikacije napravljen je kao primer primene u nastavi matematike.
Upotrebom ovog edukativnog softvera koji koristi 3D geometriju, nastavnik bi lake objasnio
koja tela se dobijaju rotacijom pravougaonika, trougla i polovine kruga. Omoguena je promena
brzine rotacije figura, kao i promena ugla gledanja. Slajderom se vri i translacija figure i tela u
koordinatni poetak, ime se uoava da telo u potpunosti prekriva rotirajuu figuru. Postoje i
slajderi kojima se mogu menjati dimenzije figura i tela. Iznad slajdera prikazuje se vrednost
zapremine i povrine posmatranih tela, naravno, ove vrednosti se menjaju pri promeni dimenzija
tela.
Slika 35. Aplikacija prikazuje rotirajui trougao i kupu koja nastaje rotacijom trougla
Slika 36. Aplikacija prikazuje rotirajui pravougaonik i valjak koji nastaje rotacijom pravougaonika
40
Slika 37. Aplikacija prikazuje rotirajui polukrug i loptu koja nastaje rotacijom polukruga
Korienjem ove aplikacije nastava e uenicima biti prihvatljivija, razumljivija, a samim tim to
je neto novo i drugaije, bie im sigurno i interesantija. Ukoliko se neko od uenika zainteresuje
vie, mogue je i na sekciji matematike praviti aplikacije koje e se koristiti u nastavi.
U vreme kada gotovo svaka kua ima kompjuter i pristup internetu i kada deca bolje i bre rade
na raunarima i mobilnim ureajima od svojih roditelja i veliki deo slobodnog vremena provode
na istom, kada su itanje knjiga zamenili fejsbukom, igranje loptom zamenili igricama na
raunaru, zato im onda ne bismo omoguili i pristup nastavnim materijalima putem interneta?
Naini za ovo su mnogobrojni: pravljenje blogova od strane nastavnika, grupa na fejsbuk
drutvenoj mrei i moda najzahtevnije, pravljenje web sajta. Za postavljanje kreirane aplikacije
u korienoj tehnologiji na web sajt koriste se fajlovi TestPage.html, Silverlight.js i ClientBin.
Postavljanjem kreirane aplikacije na web sajt, uenicima je omogueno da u bilo koje vreme i na
bilo kom mestu gde imaju pristup internetu samostalno uoavaju matematike zakonitosti,
eksperimentiu i ue na kreativan, samostalan i njima zanimljiviji nain.
41
8. Zaklj ak
Matematike osnove aproksimacije datih tela mreom trouglova, kao i transformacije tela
primenjena u projektu je jasno predstavljena u prvom delu rada, bez njenog shvatanja nemogue
je kreirati eljene objekte.
Velika i glavna prednost kreirane biblioteke jeste ta to su mogua dodavanja novih
objekata na jednostavan nain, dodavanjem nove klase u kojoj bi se definisala samo lista temena
objekta i lista nizova koji obrazuju stranice objekta, ak nije neophodno ni razumevanje
programa u celosti, dovoljno je koristiti analogiju pri kreiranju novih 3D tela.
to se tie primene u nastavi matematike, dat je samo primer, ali mogunosti
nadograivanja i pravljenja slinih aplikacija zavisi samo od elje i mate pojedinca. Ja u
sigurno u budunosti raditi na kreiranju novih, jer se na ovaj nain budi vee interesovanje kod
uenika i pribliava im se gradivo matematike.
Ovaj rad je napisan na jednostavan nain, kao uputstvo za kreiranje Silverlight 3D
aplikacije uz detaljna objanjenja za one bez iskustva u 3D programiranju. Razmatrana su samo
znanja potrebna za kreiranje aplikacije koja prikazuje 3D geometrijska tela koja se moe
primenjivati u nastavi matematike, to je i bio cilj. Zainteresovani mogu pogledati aplikaciju
napravljenu za potrebe ovog rada i koristiti je u razne svrhe, moda i poboljati. Za potpuno
razumevanje rada neophodno je koristiti i rad i dostupnu aplikaciju na
vesnarvovic.wordpress.com na SkyDrive-u.
42
Literatura:
Nadrljanski ., Obrazovni softver Hipermedijalni sistemi, Univerzitet u Novom Sadu,
Tehniki fakultet Mihajlo Pupin u Zrenjaninu, Zrenjanin, 2000, str. 106.
[1]
[2] Radosav D., Obrazovni raunarski softver i autorski sistemi, Univerzitet u Novom Sadu,
Tehniki fakultet Mihajlo Pupin u Zrenjaninu, Zrenjanin, 2005, str. 10.
[3] G. D. Glejzer, Geometrija u koli, Prvi septembar 34, 1995, str. 3-4
[4] Dubravka Glasnovi Gracin, Raunalo u nastavi matematike: Teorijska podloga i metodike
smjernice (1. dio: Potencijali primjene raunala u nastavi), Matematika i kola 46 (2008); 10-15
[5] E. N. Wiebe, The Taxonomy of Geometry and Graphics, JGG, Vol. 2, (1998) 189-196.
[6] Lester, J., Designing interactive mathematics
http://oldweb.cecm.sfu.ca/~jalester/DesignIntMath.pdf
[7] Vladimir Poljak, Didaktika, kolska knjiga 1984.
[8] Robert Bowen and Stephen Fisk, Generation of Triangulations of the Sphere, Mathematics of
Computation, Vol. 21, No. 98 (1967), pp. 250-252
[9] Mea Bombardelli, Eulerova formula, Matematika i kola 19 ,2003, str. 179-182
[10] O'Rourke, J. 2.3 in Computational Geometry in C, 2nd ed. Cambridge, England:
Cambridge University Press, 1998.
[11] Wickham-Jones, T. Mathematica Graphics: Techniques and Applications. New York:
Springer-Verlag, pp. 406 and 448, 1994.
[12] Amato, N. M.; Goodrich, M. T.; and Ramos, E. A. A Randomized Algorithm for
Triangulating a Simple Polygon in Linear Time. Discr. Comput. Geom. 26, 245-265, 2001.
[13] Jovan Keki, Matematika 3 sa zbirkom zadataka za optu gimnaziju i gimnaziju prirodno
matematikog smera, Zavod za udbenike i nastavna sredstva, Beograd
[14] Pete Brown, Silverlight in action, Manning Publications Co, 2010, | ISBN-13: 9781935182375
[15] Olga Bodroa-Panti, Kombinatorna geometrija, Novi Sad: Univerzitet u Novom SaduPMF, 2000
43
[16] Guoliang Xu, Discrete Laplace-Beltrami Operator on Sphere and Optimal Spherical
Triangulations, The Institute of Computational Mathematics, Chinese Academy of Sciences,
Beijing, China
[17] Wolfang Khnel; trensleted by Bruce Hunt, Differential Geometry: Curves-SurfacesManifolds, Second Edition, American Mathematical Society, 2006.
[18] Dragan Maulovi, Odabrane teme diskretne matematike, Novi Sad: Prirodno-matematiki
fakultet, 2007.
[19] Krunislav Mihailovi, Krsta Vraari, Geodetska merenja i raunanja (praktikum): za II, III
i IV razred geodetske kole, Zavod za udbenike i nastavna sredstva, Beograd
[20] . . b, , b
, 1974.
[21] http://www.wolfram.com/products/webmathematica/examples/
[22] http://www.wolframalpha.com/examples/
[23]http://marul.ffst.hr/odsjeci/uciteljski/nastava/metodika%20nastave%20matematike/MNM%201%2020
13_2014/NASTAVNA%20SREDSTVA%20I%20POMAGALA.pdf
[24] www.geogebra.org
[25] www.wikipedia.org
[26] http://inside.mines.edu/fs_home/gmurray/ArbitraryAxisRotation/
[27] http://www.csee.umbc.edu/~squire/reference/polyhedra.shtml#icosahedron
44
Biografija
Vesna Rvovi roena je 11.3.1989. u Kikindi. Osnovnu
kolu arko Zrenjanin zavrila je u Kikindi sa
prosenom ocenom 5. Nakon osnovnog obrazovanja
upisala je Gimnaziju Duan Vasiljev u Kikindi,
prirodno-matematiki smer. U toku kolovanja u svom
rodnom gradu uestvovala je na brojnim takmienja iz
matematike, fizike i iz srpskog jezika i osvajala prva
mesta na optinskim i okrunim takmienjima, a iz
matematike stizala je i do republikih takmienja. Od
svoje osme godine trenirala je koarku, sve dok nije
napustila Kikindu kako bi nastavila kolovanje na Prirodno-matematikom fakultetu u Novom
Sadu 2008. godine. Osnovne studije u trajanju od tri godine na smeru primenjena matematika
(matematika finansija) zavrila je u roku sa prosenom ocenom 8,32 i osvojenim 190 ESPB
bodova. U junu 2011. je stekla zvanje matematiar-primenjena matematika, a u septembru
poloila razliku ispita i upisala akademske-master studije na smeru matematika (profesor
matematike) u trajanju od dve godine na istom fakultetu. Sve ispite predviene studijskim
programom poloila je do juna 2013. godine sa prosenom ocenom 8,76. Od septembra do
decembra 2013. radila je u Osnovnoj koli Sveti Kirilo i Metodije u Novom Sadu kao
nastavnik matematike. Od 15.1.2014. zaposlena je u Gimnaziji Duan Vasiljev u Kikindi kao
profesor matematike.
45
Monografska dokumentacija
Tekstualni tampani materijal
Master rad
Vesna Rvovi
Prof. dr ore Herceg
Primena Silverlight-a za prikazivanje geometrijskih tela
Srpski (Latinica)
Srpski
Srbija
Vojvodina
2014.
Autorski reprint
Mentor:
lanovi komisije:
47