SIMULASI HUJAN MENGGUNAKAN PROCESSING
Artikel ini adalah sambungan dari artkel tentang Animasi Simulasi Proses Terbentuknya Hujan Menggunakan Software Processing, untuk Tutorial Install Software nya, silahkan baca di Tutorial Install Software Processing Gratis.
Menggunakan processing untuk membuat animasi/simulasi adalah hal yang memungkinkan, di sini saya akan menjelaskan bagaimana menggunakan processing untuk membuat simulasi hujan yang sederhana.
Proses sederhana proses terbentuknya hujan adalah turun hujan, kemudian air mengalami penguapan oleh cahaya matahari dan menghasilkan uap yang kemudian membentuk kembali menjadi hujan.
Sebelumnya hal hal yang perlu di siapkan
1. IDE Processing
2. Gambar yang digunakan seperti pesawat, kapal, rumput
*Semua syntax di akhir penjelasan
Penjelasan syntax dan alur program
1. Membuat class hujan dan uap
dua class ini dibutuhkan untuk membuat objek hujan dan uap yang kemudian di panggil di class utama
Hujan hujan = new Hujan();
Uap uap = new Uap();
2. Setup
Potongan kode ini berfungsi untuk membuat panel, dan kita harus membuat variable waktu yang berguna untuk membuat objek bergerak
void setup()
{
size(800, 550);
}
void draw ()
{
background(25, 25, 112);
int d, e, f;
d=second();
e=minute();
f=hour();
int a;
int ulang;
3. full syntax class utama
Hujan hujan = new Hujan();
Uap uap = new Uap();
void setup()
{
size(800, 550);
}
void draw ()
{
background(25, 25, 112);
int d, e, f;
d=second();
e=minute();
f=hour();
int a;
int ulang;
//gunung
strokeWeight(0);
fill(0, 94, 0);
arc(130, 350, 400, 200, (180*PI)/180, (360*PI)/180);
fill(0, 132, 0);
arc(235, 350, 280, 190, (180*PI)/180, (360*PI)/180);
//bulan
fill(255, 255, 176);
ellipse(40+d*10, 90, 60, 60);
//awn
noStroke();
fill(95, 158, 160);
ellipse(100, 140, 30, 15);
ellipse(130, 140, 45, 35);
ellipse(145, 140, 30, 15);
fill(95, 158, 160);
ellipse(520, 140, 30, 10);
ellipse(550, 140, 40, 30);
ellipse(600, 140, 90, 60);
fill(95, 158, 160);
ellipse(230, 110, 30, 10);
ellipse(250, 110, 40, 30);
ellipse(280, 110, 20, 10);
fill(95, 158, 160);
ellipse(350, 150, 30, 10);
ellipse(380, 150, 40, 30);
ellipse(420, 150, 90, 60);
//jalan
//noStroke();
//fill(0);
//quad(0,380,380,380,380,440,0,440);
//strokeWeight(4);
//stroke(255);
//line(20,405,40,405);
//line(60,405,80,405);
//line(100,405,120,405);
//line(140,405,160,405);
//line(180,405,200,405);
//line(220,405,240,405);
//line(260,405,280,405);
//line(300,405,320,405);
//line(340,405,360,405);
//line(380,405,400,405);
//line(420,405,440,405);
//lahan
noStroke();
fill(80, 49, 33);
//quad(0,330,380,330,380,380,0,380); asli
quad(0, 350, 380, 350, 380, 600, 0, 600);
println(d);
//danau
//Rumah
//noStroke();
//fill(255,0,255);
//triangle(50,325,20,345,80,345);
//fill(20,100,200);
//rect(30,345,40,20);
//fill(200,100,0);
//triangle(120,320,90,340,150,340);
//fill(200,0,0);
//rect(100,340,40,20);
//mobil
//fill(0,255,0);
//rect(20+20*d,350,100,50);
//fill(124,202,0);
//rect(120+20*d,365,40,35);
//fill(255);
//rect(130+20*d,373,20,20);
//fill(65);
//ellipse(45+20*d,400,30,30);
//ellipse(120+20*d,400,30,30);
////hujan
// strokeWeight(5);
// noStroke();
// stroke(255);
// point(40,100+25*d);
// point(50,100+15*d);
// point(30,100+20*d);
// point(60,120+15*d);
// point(70,110+20*d);
// point(80,130+25*d);
// point(90,100+25*d);
// point(100,110+30*d);
// point(110,115+20*d);
// point(120,100+25*d);
// point(130,115+15*d);
// point(140,110+10*d);
// point(150,115+25*d);
// point(160,125+10*d);
// point(170,120+10*d);
// point(180,100+25*d);
// point(190,120+20*d);
// point(200,125+35*d);
// point(210,115+10*d);
// point(220,105+15*d);
// point(230,125+20*d);
// point(240,110+25*d);
// point(250,110+10*d);
// point(260,100+15*d);
// point(270,125+25*d);
// point(280,100+20*d);
// point(290,115+10*d);
// point(300,120+15*d);
// point(310,100+25*d);
// point(320,125+20*d);
// point(330,120+10*d);
// point(340,110+25*d);
// point(350,115+15*d);
// point(360,125+15*d);
// point(370,100+10*d);
// point(380,115+25*d);
// point(390,100+20*d);
// point(400,125+15*d);
////awan
fill(#0c4cb6);
quad(380, 500-d*2, 800, 500-d*2, 800, 600, 380, 600);
hujan.draw();
uap.draw();
println("ini d"+d);
a = 0;
noStroke();
fill(95, 158, 160);
ellipse(20+10*d, 150, 30, 15);
ellipse(50+10*d, 150, 45, 35);
ellipse(80+10*d, 150, 30, 15);
fill(95, 158, 160);
ellipse(40+30*d, 120, 30, 10);
ellipse(80+30*d, 120, 40, 30);
ellipse(100+30*d, 120, 20, 10);
fill(95, 158, 160);
ellipse(520-d*10, 140, 30, 10);
ellipse(550-d*10, 140, 40, 30);
ellipse(600-d*10, 140, 90, 60);
//dinding
//strokeWeight(0);
//noStroke();
//fill(187,221,255);
//quad(0,0,400,0,400,40,0,40);
//quad(370,0,800,0,800,450,370,450);
//quad(0,0,20,0,20,450,0,450);
//quad(0,440,380,440,380,450,0,450);
//lantai
//fill(98,98,98);
//quad(0,450,800,450,800,550,0,550);
//stroke(0);
//line(0,450,800,450);
//line(0,500,800,500);
//line(10,450,-50,550);
//line(100,450,50,550);
//line(200,450,150,550);
//line(300,450,250,550);
//line(400,450,350,550);
//line(500,450,450,550);
//line(600,450,550,550);
//line(700,450,650,550);
//line(800,450,750,550);
//list
stroke(0);
strokeWeight(2);
fill(255);
quad(0, 0, 800, 0, 800, 30, 0, 30);
line(0, 25, 800, 25);
//jendela
//strokeWeight(0);
//fill(185,122,87);
//quad(10,40,380,40,380,70,10,70);
//quad(10,440,380,440,380,430,10,430);
//line(10,50,380,50);
//line(10,60,380,60);
//quad(10,40,20,40,20,440,10,440);
//quad(370,40,380,40,380,440,370,440);
//quad(190,40,200,40,200,440,190,440);
//meja
//strokeWeight(0);
//stroke(0,0,0);
//fill(159,80,0);
//quad(430,305,780,305,780,320,430,320);
//rect(550,320,230,100);
//quad(430,300,440,300,440,450,430,450);
//quad(780,300,790,300,790,450,780,450);
//strokeWeight(0);
//stroke(0);
//line(665,320,665,420);
//fill(0);
//strokeWeight(9);
//point(655,370);
//point(675,370);
//buku
//strokeWeight(0);
//fill(255,255,255);
//quad(690,290,770,290,770,305,690,305);
//line(691,293,770,293);
//line(691,296,770,296);
//line(691,299,770,299);
//line(691,301,770,301);
//strokeWeight(3);
//stroke(0,79,0);
//line(691,290,691,303);
//line(691,290,771,290);
//line(691,303,771,303);
//strokeWeight(0);
//fill(255);
//quad(695,270,765,270,765,288,695,288);
//line(695,275,765,275);
//line(695,278,765,278);
//line(695,281,765,281);
//strokeWeight(4);
//stroke(3,20,141);
//line(694,286,694,270);
//line(694,286,765,286);
//line(694,270,765,270);
//komputer
//strokeWeight(5);
//stroke(192,192,192);
//fill(0);
//beginShape(QUADS);
// vertex (450,210);
// vertex (550,210);
// vertex (550,280);
// vertex (450,280);
// endShape();
//fill(192,192,192);
//quad(480,300,520,300,520,302,480,302);
//quad(495,280,505,280,505,300,495,300);
//strokeWeight(0);
//quad(450,350,500,350,500,450,450,450);
//stroke(0);
//line(455,355,495,355);
//line(455,365,495,365);
//line(455,355,455,365);
//line(495,355,495,365);
//line(455,370,495,370);
//ellipse(475,405,3,3);
//ellipse(475,415,3,3);
//fill(255-15*d,255-15*d,0+15*d);
//ellipse(475,390,15,15);
//line(455,425,495,425);
//line(455,435,495,435);
//line(455,445,495,445);
//lampu
//fill(254,108,46);
//quad(631,240,639,240,639,300,631,300);
//quad(615,298,655,298,655,305,615,305);
//ellipse(635,215,35,25);
//ellipse(635,230,65,45);
//fill(211,64,1);
//ellipse(635,230,50,35);
//fill(255,255,0);
//ellipse(635,230,15,15);
//jam
//strokeWeight(3);
//stroke(0);
//fill(255);
//ellipse(600,90,75,75);
//strokeWeight(3);
//point(600,90);
//line(600,55,600,57);
//line(600,125,600,123);
//line(563,90,566,90);
//line(637,90,633,90);
//stroke(255,0,0);
// line(600,90,cos(d)*30+600,sin (d)*30+90);
// stroke(0);
// line(600,90,cos(e)*25+600,sin (e)*30+90);
// line(600,90,cos(f)*20+600,sin (f)*20+90);
}
public class Uap
{
public void draw()
{
int d, e, f;
d=second();
strokeWeight(5);
noStroke();
stroke(255);
//point(100, 110+30);
point(410, 400-d*5);
point(400, 400-d*10);
point(420, 300-d*10);
point(420, 300-d*8);
point(380, 410-d*5);
point(480, 470-d*5);
point(430, 450-d*10);
point(520, 450-d*10);
point(550, 410-d*5);
point(530, 420-d*10);
point(540, 440-d*10);
point(580, 410-d*5);
point(620, 440-d*5);
point(650, 460-d*5);
point(660, 400-d*5);
point(680, 380-d*5);
point(700, 350-d*10);
point(690, 440-d*5);
point(690, 480-d*5);
point(700, 400-d*5);
}
}
5. Class hujan
public class Hujan
{
public void draw()
{
int d,e,f;
d=second();
strokeWeight(5);
noStroke();
stroke(255);
//point(100, 110+30);
point(40, 100+5*d);
point(50, 100+15*d);
point(30, 100+20*d);
point(60, 120+15*d);
point(70, 110+20*d);
point(80, 130+5*d);
point(90, 100+5*d);
point(100, 110+30*d);
point(110, 115+20*d);
point(120, 100+25*d);
point(130, 115+15*d);
point(140, 110+10*d);
point(150, 115+25*d);
point(160, 125+10*d);
point(170, 120+10*d);
point(180, 100+25*d);
point(190, 120+20*d);
point(200, 125+35*d);
point(210, 115+10*d);
point(220, 105+15*d);
point(230, 125+20*d);
point(240, 110+25*d);
point(250, 110+10*d);
point(260, 100+15*d);
point(270, 125+25*d);
point(280, 100+20*d);
point(290, 115+10*d);
point(300, 120+15*d);
point(310, 100+25*d);
point(320, 125+20*d);
point(330, 120+10*d);
point(340, 110+25*d);
point(350, 115+15*d);
point(360, 125+15*d);
point(370, 100+10*d);
point(380, 115+25*d);
point(390, 100+20*d);
point(400, 125+15*d);
}
}
Kelompok
1. Ahmad Sukabul
2. Syachrodi
3. Tondi putra
Mata Kuliah Grafika Komputer ...
Terima kasih...
6 Comment for "Simulasi Hujan Menggunakan Processing"
kalau gerakannya menggunakan jam apakah bisa dilakukan?
Harusnya bisa, cuma nanti animasinya jadi lambat geraknya, saran pake aja yg detik biar cepat
processing bisa buat game juga ndak gan?
bisa juga, soalya processing udah dukung keyboard handler jadi bisa aja kalau mau bikin game
oh ya processing bisa oop juga ya?
bisa bg