KRETANJE 3D OBJEKATA U PROCESSING-U
Da bi smo kreirali 3D objekte u processing-u možemo to uraditi na nekoliko načina:
- koristiti ugrađene metode processing-a za crtanje osnovnih 3d oblika:
- Koristiti klasu PShape
- Samostalno kreirati oblik koristeći: beginShape().....endShape()
Crtanje osnovnih 3D oblika pomoću Processingovih metoda
Na ovaj način možemo kreirati osnovne oblike: lopta, kocka:
Metode koje se koriste:
Metode koje se koriste:
Animacija 3D: Kretanje zemlje oko sunca - processing
Animacija kretanja Zemlje oko Sunca je prikazana ispod. Pri tome Zemlja vrši dve rotacije:
- rotacija Zemlje oko Sunca
- rotacija Zemlje oko svoje ose
Animacija3D: Rotacija Zemlje oko Sunca
Animacija ne radi? Učitajte stranicu ponovo(refresh)
← scroll horizontal →
Kretanje Zemlje oko Sunca animacija 3d - kod u processing-u
U animaciji rotacije Zemlje oko Sunca koristi se klasa PShape, kao što se može videti u kodu na slici 1. Da bi se kreirala tekstura slike, potrebno je ubaciti slike koje ćemo koristiti za teksturu zemlje i sunca i to u data folder, koji se nalazi u korenom folderu aplikacije. Unutar glavnog scatch-a definišu se objekti klase PImage, sunceIm i zemljaIm, koji će predstavljati slike za kreiranje teksture. Zatim se deklarišu konstante, koje redom predstavljaju poluprečnike Zemlje, Sunca i 2 poluose elipse, koja predstavlja putanju Zemlje oko Sunca. Takođe se definišu i promenljive koje se koriste za definisanje položaja kamere u x, y i z pravcu i uglovi rotacije
fiZ - ugao rotacije Zemlje oko svoje ose
fiS - ugao rotacije Zemlje oko Sunca
wiz- ugaona brzina rotacije Zemlje oko svoje ose
wis - ugaona brzina rotacije Zemlje oko Sunca
Brzina rotacije Zemlje je proizvoljna i ne odgovara stvarnim vrednostima, već je modifikovana da bi kretanje zemlje moglo da se uoči.
Unutar setup metode se kreiraju objekti Zemlje i Sunca, slike Zemlje i Sunca.
Tekstura se na objekat postavlja sa setTexture(slika) metodom, gde se slika prosleđuje metodi kao parametar.
fiZ - ugao rotacije Zemlje oko svoje ose
fiS - ugao rotacije Zemlje oko Sunca
wiz- ugaona brzina rotacije Zemlje oko svoje ose
wis - ugaona brzina rotacije Zemlje oko Sunca
Brzina rotacije Zemlje je proizvoljna i ne odgovara stvarnim vrednostima, već je modifikovana da bi kretanje zemlje moglo da se uoči.
Unutar setup metode se kreiraju objekti Zemlje i Sunca, slike Zemlje i Sunca.
Tekstura se na objekat postavlja sa setTexture(slika) metodom, gde se slika prosleđuje metodi kao parametar.
U draw() metodi prvo se postavi pozadinska slika, svemira u ovom primeru. Kordinatni sistem se translira na sredinu okvira, metodom translate(width/2,height/2,0). Vidimo da je z koordinata postavljena na nulu.
Kamera se zatim postavi na koordinate camX, camY i camZ, a fokus kamere je u centru koordinatnog sistema. Sa poslednja 3 parametra se definiše koja se koordinatna osa nalazi na vrhu prikaza i to je u ovom slučaju z osa.
Za lepši prikaz koristi se usmerena svetlost directionalLight(), približno bele boje i koja je usmerena između pravca x i z ose i to u negativnom smeru.
Kamera se zatim postavi na koordinate camX, camY i camZ, a fokus kamere je u centru koordinatnog sistema. Sa poslednja 3 parametra se definiše koja se koordinatna osa nalazi na vrhu prikaza i to je u ovom slučaju z osa.
Za lepši prikaz koristi se usmerena svetlost directionalLight(), približno bele boje i koja je usmerena između pravca x i z ose i to u negativnom smeru.
Unutar transliranog koordinatnog sistema koji je sada u centru prikaza, renderuje se Sunce, pozivom metode shape(sunce), kojoj se prosleđuje prethodno kreirani objekat koji predstavlja sunce i klase je PShape. Zatim se crta eliptična putanja koja se crta u ravni X0Y i koja se privremeno zarotira za ugao PI/2 oko X ose(rotateX(HALF_PI)). Posle iscrtavanja, tj. posle poziva popMatrix(), vidi liniju 46, slika 2, koordinatni sistem se vraća u položaj u kojem je bio pre poziva pushMatrix(), metode koja je pozvana u liniji 41, vidi sliku 2.
Pre nego što se iscrta objekat koji predstavlja planetu Zemlju, koordinatni sistem se rotira oko Y ose za ugao fis, koji zapravo predstavlja ugao rotacije Zemlje oko Sunca.
Pre nego što se iscrta objekat koji predstavlja planetu Zemlju, koordinatni sistem se rotira oko Y ose za ugao fis, koji zapravo predstavlja ugao rotacije Zemlje oko Sunca.
Pre crtanja Zemlje koordinatni sistem se translira za vrednost poluprečnika putanje Zemlje oko Sunca. Ovde je aproksimativno uzeto da je putanja kružna i ako je ona zapravo elipsa. Takođe se, dalje koordinatni sistem rotira za ugao fiz, tj. za ugao rotacije Zemlje oko svoje ose.
Na kraju draw() metode se uglovi rotacije fis i fiz povećaju za vrednosti ugaonih brzina, Zemlje oko Sunca i Zemlje oko svoje ose.
Na kraju draw() metode se uglovi rotacije fis i fiz povećaju za vrednosti ugaonih brzina, Zemlje oko Sunca i Zemlje oko svoje ose.
Prethodno
|< Uvod u 3D processing
|< Uvod u 3D processing