x[i] = x0+R.cos(2i.pi/N+a)
y[i] = y0+R.sin(2i.pi/N+a)
import java.awt.Color; import java.awt.Component; import java.awt.Graphics; public class Polygone extends Component { private static final long serialVersionUID = 1L; private final Color color; private final int[] x; private final int[] y; public Polygone(int[] x, int[] y, Color color) { this.x = x; this.y = y; this.color = color; } public void paint(Graphics g) { g.setColor(color); g.fillPolygon(x, y, x.length); } }
import java.awt.Color; import java.awt.geom.Point2D; import java.util.function.Function; public class PolygoneRegulier extends Polygone { private static final long serialVersionUID = 1L; private static final int[] compute(double coord0, double rayon, int nbCotes, double rotation, Function<Double, Double> trigo) { int[] coord = new int[nbCotes]; for (int i = 0; i < nbCotes; i++) coord[i] = (int) (coord0 + rayon * trigo.apply(2 * i * Math.PI / nbCotes + rotation)); return coord; } public PolygoneRegulier(Point2D centre, double rayon, int nbCotes, double rotation, Color color) { super(compute(centre.getX(), rayon, nbCotes, rotation, Math::cos), compute(centre.getY(), rayon, nbCotes, rotation, Math::sin), color); } }
import java.awt.Color; import java.awt.geom.Point2D; public class Hexagone extends PolygoneRegulier { private static final long serialVersionUID = 1L; public Hexagone(Point2D.Double centre, double rayon, double rotation, Color color) { super(centre, rayon, 6, rotation, color); } }
Hexagone hex = new Hexagone(new Point2D.Double(100, 100), 100, 0, Color.GRAY);
Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire
117 internautes nous ont dit merci ce mois-ci
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.
Cependant ces petits bouts de codes me génèrent des erreurs.
Classe polygoneRegulier:
L'erreur pour cette ligne est donc la suivante:
"The import java.util.function cannot be resolved"
Du coup, cela engendre des erreurs sur les bouts de codes suivants:
et
Dans la classe Fenetre
Cette erreur stipule que ce constructeur n'est pas défini. Pourtant il est bel et bien defini.
Voici une alternative :
Mais seulement l'erreur de la classe Fenetre persiste:
Et la suggestion qui m'est faite est de:
- soit modifier le constructeur en ceci...
- soit de créer plutôt le constructeur...
Est-ce que tu as bien les import java.awt.geom.Point2D ?
Parce que Point2D.Double c'est super standard (depuis Java 2 !)
En alternative, tu peux faire new Point(100, 100) avec un java.awt.Point, mais le centre du cercle sera du coup de coordonnées de type int (au lieu de double avec Point2D.Double)
Sinon, tu peux aussi décomposer l'objet Point, en deux paramètres x et y, comme ceci :
Mais bon, tout ça c'est du détail, la vraie réponse à ta question est là :
Je pense pouvoir m'en sortir maintenant!!!