Menggambar Solar System atau Planet Tata Surya dengan menggunakan Java Applet - Sebenarnya ini bukanlah sebuah pembahasan yang rinci, namun disini saya akan sedikit berbagi snippet sintak pemrograman java applet, disini saya membuat sebuah gambar sederhana yaitu Tata Surya atau Solar System, yang mana terdiri dari 9 planet inti dan bintang-bintang kecil disekitarnya.
Kode yang saya buat cukuplah sederhana, hanya terdiri dari 2 pengulangan yang mana di pengulangan pertama bertujuan untuk menggambar planet yang ada, lalu di looping yang kedua bertujuan untuk menggambar bintang-bintang kecil dengan koordinat posisi yang teracak dan juga warna dari bintang-bintangnya saya buat teracak dengan menggunakan RGB.
Untuk hasilnya bisa dilihat pada gambar diatas, berikut adalah sintak lengkapnya :
package ComputerGraphics;
import java.awt.*;
import java.applet.*;
import java.util.Random;
public class SolarSystem extends Applet {
Dimension screen;
Random random;
public void init(){
// set size frame base on your resolution screen
screen = Toolkit.getDefaultToolkit().getScreenSize();
setSize(screen.width, screen.height);
setBackground(Color.decode("#424242"));
}
public void paint(Graphics g)
{
// draw sun
g.setColor(Color.decode("#FFEB3B"));
g.fillOval(-400, 200,600,600);
g.setColor(Color.decode("#FFF9C4"));
g.drawOval(-400, 200, 603, 603);
String[][] planet = {
{"#B0BEC5", "#F57F17", "#0D47A1", "#FFFFFF", "#FFFFFF", "#5D4037", "#FF5722", "#FFD700", "#4FC3F7", "#FFFFFF", "#80DEEA", "#BCAAA4", "#FFFFFF"}, //[0] fillColor Array
{"#ECEFF1", "#FBC02D", "#BBDEFB", "#FFFFFF", "#FFFFFF", "#BBDEFB", "#BBDEFB", "#FFF9C4", "#E1F5FE", "#FFFFFF", "#E0F7FA", "#EFEBE9", "#FFFFFF"}, //[1] drawColor Array
{"30", "40", "35", "7", "25", "45", "160", "130", "110", "40", "100", "15", "13"}, //[2] size Array
{"Mercury", "Venus", "Earth", "Moon", "Planet Namek", "Mars", "Jupiter", "Saturn", "Uranus", "Planet Vegeta", "Neptune", "Pluto", "Planet Dewa Emperor"}, //[3] planetName Array
{"250", "325", "400", "420", "430", "475", "550", "800", "1000", "1100", "1300", "1600", "1700"}, //[4] x array
{"600", "550", "500", "450", "150", "600", "450", "600", "450", "820", "350", "250", "850"} //[5] y array
};
// looping for draw planet
for(int p=0; p<planet[0].length; p++){
String fillC = planet[0][p];
String drawC = planet[1][p];
int size = Integer.parseInt(planet[2][p]);
int sizeOut = Integer.parseInt(planet[2][p])+1;
String pName = planet[3][p];
int x = Integer.parseInt(planet[4][p]);
int y = Integer.parseInt(planet[5][p]);
int yText = y+sizeOut+15;
g.setColor(Color.decode(fillC));
g.fillOval(x, y, size, size);
g.setColor(Color.decode(drawC));
g.drawOval(x, y, sizeOut, sizeOut);
g.drawString(pName, x, yText);
if(p == 7){
g.setColor(Color.white);
g.drawArc((x-5), (y+35),170,50,170,170);
g.setColor(Color.white);
g.drawArc((x-10), (y+40),170,50,170,170);
g.setColor(Color.white);
g.drawArc((x-15), (y+45),170,50,170,170);
}
}
// looping for draw litle star with random position and random color
for(int oval=0; oval<=5000;oval++){
random = new Random();
int y = random.nextInt((screen.height+1000));
int x = random.nextInt((screen.width+1000));
float xr = random.nextFloat();
float xg = random.nextFloat();
float xb = random.nextFloat();
if(oval%2 == 1){
int w = random.nextInt(7);
int h = random.nextInt(7);
g.setColor(new Color(xr, xg, xb));
g.drawOval(y, x, h, h); //ganjil is draw
} else {
random = new Random();
int w = random.nextInt(5);
int h = random.nextInt(5);
g.setColor(new Color(xr, xg, xb));
g.fillOval(y, x, h, h); //ganjil is draw
}
}
}
}
- https://gist.github.com/dyazincahya/69cde1f5820f0dda1efde38d1a08b723
- https://gist.github.com/dyazincahya/cbeafbb5e9875bb5b4021feb1526d3a2
Untuk nama package dan nama classnya bisa di sesuaikan dengan keinginan kamu. Mungkin tulisan ini saya cukupkan dulu sampai disini, bisa kirim pesan lewat komentar jika ada yang ingin ditanyakan, saya usahakan membalasnya dengan segera, semoga bermanfaat, terima kasih :)
Posting Komentar