Membuat Animasi 3D Bola Dalam Kotak Menggunakan Processing
Assalamu'alaikum Wr.Wb Teman Mahasiswa ,
Hai teman mahasiswa apa kabar semua ? semoga sehat selalu yaa dan selalu dilindungi oleh Allah SWT, amiinn :)
Kali ini kita akan membuat sebuah Animasi Bola Dalam Box 3D menggunakan Processing.
Untuk memberikan kesan 3D, animasi kali ini bisa kita putar-putar dengan mouse.
Baca juga :( Membuat Animasi Bergerak Perkotaan serta Lalu Lintas Menggunakan Processing )
Tanpa berlama-lama, berikut koding membuat animasi bola dalam box 3d menggunakan processing ;)
//Membuat Animasi Bola Dalam Kotak 3D Menggunakan Processing
//Catatans Mahasiswa :)
float frame = 0, speed = 1 / .0125, range = .125;
float rx = PI / 6, ry = -PI / 6, rmax = PI / 240;
void setup () {
size (256, 256, P3D);
}
void draw () {
if (!mousePressed) {
speed = constrain (dist (128, 128, mouseX, mouseY) /
128, 0, 1) * .02;
range = pow (constrain (dist (128, 128, mouseX, mouseY)
/ 128, 0, 1), 2) * .65;
} else {
rx = rx + (mouseX - pmouseX) * PI / width;
ry = constrain (ry - (mouseY - pmouseY) * PI / height, - HALF_PI, HALF_PI);
}
background (255);
translate (128, 128, -192);
rotateX (ry);
rotateY (rx);
noFill ();
stroke (0, 0, 0, 31);
box (256, 256, 256);
sphere(75);
frame += speed;
}
float cycle (float modifier, float displacement) { return cos ((frame * modifier + displacement) * TWO_PI) / 2; }
class sphere {
// constants
int maxchildren = 0;
// variables
float x, y, z, a, b ,c;
int len; sphere[] children;
// methods
sphere (float x, float y, float z) { this.x = x; this.y = y;
this.z = z; a = b = c; len = 0; children = new sphere[maxchildren]; }
sphere rotate (float a, float b, float c) { this.a = a;
this.b = b; this.c = c; return this; }
sphere link (sphere child) { children[len++] = child; return
this; }
sphere link (int which) { return children[which]; }
void draw (sphere parent) {
pushMatrix ();
rotateX (a); rotateY (b); rotateZ (c); translate (x, y,
z);
if (parent != null) { stroke (0); line (0, 0, 0, -x, -y,
-z); }
fill (159, 0, 191, 191); noStroke (); sphere (4);
for (int i = 0; i < len; ++i) children[i].draw (this);
popMatrix ();
}
}
//Catatans Mahasiswa :)
float frame = 0, speed = 1 / .0125, range = .125;
float rx = PI / 6, ry = -PI / 6, rmax = PI / 240;
void setup () {
size (256, 256, P3D);
}
void draw () {
if (!mousePressed) {
speed = constrain (dist (128, 128, mouseX, mouseY) /
128, 0, 1) * .02;
range = pow (constrain (dist (128, 128, mouseX, mouseY)
/ 128, 0, 1), 2) * .65;
} else {
rx = rx + (mouseX - pmouseX) * PI / width;
ry = constrain (ry - (mouseY - pmouseY) * PI / height, - HALF_PI, HALF_PI);
}
background (255);
translate (128, 128, -192);
rotateX (ry);
rotateY (rx);
noFill ();
stroke (0, 0, 0, 31);
box (256, 256, 256);
sphere(75);
frame += speed;
}
float cycle (float modifier, float displacement) { return cos ((frame * modifier + displacement) * TWO_PI) / 2; }
class sphere {
// constants
int maxchildren = 0;
// variables
float x, y, z, a, b ,c;
int len; sphere[] children;
// methods
sphere (float x, float y, float z) { this.x = x; this.y = y;
this.z = z; a = b = c; len = 0; children = new sphere[maxchildren]; }
sphere rotate (float a, float b, float c) { this.a = a;
this.b = b; this.c = c; return this; }
sphere link (sphere child) { children[len++] = child; return
this; }
sphere link (int which) { return children[which]; }
void draw (sphere parent) {
pushMatrix ();
rotateX (a); rotateY (b); rotateZ (c); translate (x, y,
z);
if (parent != null) { stroke (0); line (0, 0, 0, -x, -y,
-z); }
fill (159, 0, 191, 191); noStroke (); sphere (4);
for (int i = 0; i < len; ++i) children[i].draw (this);
popMatrix ();
}
}
Jangan lupa semua koding nya di copy-paste dan silahkan "Run" . :)
Jika ada kesalahan atau kekurangan dalam penyampaian tutorial maupun perkataan yang kurang jelas, kami mohon maaf sebesar-besarnya.
Jika ada kekurangan, jangan sungkan untuk berkomentar yaa.
Komentar kalian sangat berarti bagi perkembangan Blog ini , Terima kasih .. :)
Jangan lupa di share yaa :D wkwk
#Salam Teman Mahasiswa
Selamat mencoba dan semoga berhasil ;)
Disini saya menggunakan Processing 2.2.1 .
Untuk Aplikasi Processing nya bisa di ( Download Disini :) )
Untuk Aplikasi Processing nya bisa di ( Download Disini :) )
Wassalamu'alaikum wr.wb
ConversionConversion EmoticonEmoticon