JFallz JFallz - 2 months ago 19
Java Question

How to make star shape in Java?

I'm trying to make some shapes with java. I created two rectangles with two different colors but I want to create a star shape and I can't find useful source to help me doing this.

Here is my code:

import java.awt.*;
import javax.swing.*;

public class shapes extends JPanel{
public void paintComponent(Graphics GPHCS){
super.paintComponent(GPHCS);
this.setBackground(Color.WHITE);

GPHCS.setColor(Color.BLUE);
GPHCS.fillRect(25,25,100,30);

GPHCS.setColor(Color.GRAY);
GPHCS.fillRect(25,65,100,30);

GPHCS.setColor(new Color(190,81,215));
GPHCS.drawString("This is my text", 25, 120);
}
}


Please help me to make a star shape.

Thank you..

Answer

You could try using a polygon and some basic math:

    int midX = 500;
    int midY = 340;
    int radius[] = {118,40,90,40};
    int nPoints = 16;
    int[] X = new int[nPoints];
    int[] Y = new int[nPoints];

    for (double current=0.0; current<nPoints; current++)
    {
        int i = (int) current;
        double x = Math.cos(current*((2*Math.PI)/max))*radius[i % 4];
        double y = Math.sin(current*((2*Math.PI)/max))*radius[i % 4];

        X[i] = (int) x+midX;
        Y[i] = (int) y+midY;
    }

    g.setColor(Color.WHITE);
    g.fillPolygon(X, Y, nPoints);
Comments