Bintang part I

Semudah apakah membuat garis yang membentuk bintang itu ? Mari kita perhatikan source code-nya.


- class sinTest sebagai kanvas untuk meletakkan grafik bintang.
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;

public class sinTest
{   public static void main(String[] args)
    {   SwingUtilities.invokeLater(new Runnable()
        {   public void run()
            {   JFrame frame = new JFrame("Sekarang pake Label");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                Bintang1 t = new Bintang1();
                t.setPreferredSize(new Dimension(300, 200));
                frame.getContentPane().add(t);
                frame.pack();
                frame.setVisible(true);
            }
        });
    }    
}



- class Bintang1 sebagai class yang menarik garis-garis sehingga membentuk sebuah bintang.
import javax.swing.JPanel;
import java.awt.*;
import java.util.Random;
class Bintang1 extends JPanel
{   static double degToRad(int deg) {
        return ((2*3.14)/360)*deg;
    }
    public void paintComponent(Graphics g)
    {   int[] x=new int[20];
        int[] y=new int[20];
        super.paintComponent(g);
        int r=100, x0=100, y0=100;
        int sudut=(int)360/5;
        for(int i=0;i<5;i++)
        {   x[i]=(int)Math.round(x0 + r * Math.cos(degToRad(sudut * i)));
            y[i]=(int)Math.round(y0 + r * Math.sin(degToRad(sudut * i)));
        }
        for(int i=0;i<5-1;i++)
            for(int j=i+2;j<5;j++){
                if(i==0 && j==4) continue;
                g.drawLine(x[i], y[i], x[j], y[j]);
            }
    }
}



Inilah output-nya.


Penjelasan...??? Silahkan ajukan pertanyaan jika merasa aneh dengan source code di atas.