Java: Dessiner des étoiles" Aléatoires"


J'essaie de prendre ce code, j'ai finalement travaillé pour dessiner une étoile et je suis confus sur la façon de le faire fonctionner pour dessiner 25 étoiles différentes (comme différents côtés et spikinness mais je ne sais pas comment s'y prendre exactement. Je suppose que je ferais une nouvelle variable aléatoire int randomStars = (int)(Math.random()*25+1); // Variable for 25 Random Stars pour générer aléatoirement les étoiles mais je suis un peu confus où la prendre à partir de là.

J'apprécierais l'aide.

Mon code (En utilisant DrawingPanel.java):

import java.awt.*;

public class StarSampler {

       public static void main(String[] args)
       {
           DrawingPanel panel = new DrawingPanel(500, 500);
           Graphics2D g = panel.getGraphics();
           g.setColor(Color.BLUE);
           panel.setBackground(new Color(250, 0, 0));

           fillStar(g, 250, 250, 150, 5, .3); // How to rotate it to start at center?
       }

       public static void fillStar(Graphics2D g, int ctrX, int ctrY, int radius, int nPoints, double spikiness)
       {
           double xDouble[] = new double[2*nPoints];
           double yDouble[] = new double[2*nPoints];

           int xPoint[] = new int[2*nPoints]; 
           int yPoint[] = new int[2*nPoints];

           nPoints = (int) (nPoints * 2);

           int randomStars = (int)(Math.random()*25+1); // Variable for 25 Random Stars

          // Would Nestest loop go here? for (randomStars++; randomStars < 25; randomStars++)
           for (int i = 0; i < nPoints; i++)
            {
                double iRadius = (i % 2 == 0) ? radius : (radius * spikiness);
                double angle = (270) + (i * 360.0) / (nPoints);

                xPoint[i] = (int) (ctrX + iRadius * Math.cos(Math.toRadians(angle)));
                yPoint[i] = (int) (ctrY + iRadius * Math.sin(Math.toRadians(angle)));
            }
                g.fillPolygon(xPoint, yPoint, nPoints); // Creates polygon
       }
}

Mon Sortie:

Courant De Sortie

Author: Aramza, 2016-11-20

1 answers

Construire lentement. Concentrez-vous d'abord sur le positionnement de deux étoiles, juste deux. Choisissez les coordonnées du centre des étoiles et placez-les. Ajustez pour faire les choses correctement (votre première tentative aura probablement des erreurs). Testez, corrigez, testez à nouveau, réparez à nouveau. Répéter.

Ensuite, jouez avec le piquant et d'autres changements pour que les étoiles ne soient pas identiques. Quand, et seulement quand, qui est testé et de travail passer à trois, quatre etc. étoile. Avec plus d'étoiles vous devrez faire plus attention à éviter chevauchement.

 0
Author: rossum, 2016-11-20 19:56:08