Hello,
Quelqu'un sait-il comment s'y prendre pour tracer une étoile à 5 branches en AWT ?
Merci !
Toine
Hello,
Quelqu'un sait-il comment s'y prendre pour tracer une étoile à 5 branches en AWT ?
Merci !
Toine
Salut,
Sachant que tu viens du forum algo, le problème est plus sur la construction de l'étoile ou sur l'utilisation du dessin en AWT?
Si c'est sur la construction, tu calcules les cinq points de ton étoiles, et tu les joins comme il convient afin de dessiner ton étoile.
Si c'est sur l'utilisation d'AWT, je ne saurais trop te conseiller de trouver un bon tutoriel...
Un exemple pour tracer une droite: http://artis.imag.fr/Membres/Xavier....hing/LIFI/TP1/
Il ne te reste plus qu'à tracer les quatre autres côtés!
Il faut calculer plus de 5 points pour tracer l'étoile je pensetu calcules les cinq points de ton étoiles
C'est justement là dessus que j'ai besoin d'aide, comment déterminer les coordonnées des points ?
Toine
Ben je sais pas.Envoyé par onlytoine
C'est une étoile à cinq branches avec combien de sommets?
Envoyé par onlytoine
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 for (int i=0;i<5;i++){ x[i]=rayon*Math.cos(i*2*Math.PI/5); y[i]=rayon*Math.sin(i*2*Math.PI/5); }
Ok, ça marche ...
Maintenant, il faut que je trouve un moyen de la remplir !
Il faut probablement que je calcule les points intérieurs de l'étoile.
Toine
Il y a une méthode pour l'intersection de deux droites sur Line2D ... mais elle renvoie un boolean !!! Pas le point d'intersection ! Pffffff.......
Toine
Bah, il suffit de créer la Shape appropriée avec GeneralPath ou Polygon à partir du tableau de points initiaux sur le cercle. C'est pas dur y faut faire exactement comme quand on dessine à la main : on relie le point i au point i+2 modulo le nb de points, etc ... jusqu'à ce qu'on revienne au point de départ. Ensuite faire :
Note : comme c'est un figure qui se recouvre elle-même attention aux règles de remplissage (voir la méthode setWindindRule() dans la classe GeneralPath))
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Shape star = ... // créer l'étoile ici graphics.setColor(maCouleur); graphics.fill(star); // Remplissage.
Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.
suivez mon blog sur Développez.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook
Note que si tu fais :
cela te dessinera un pentagramme.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 graphics.setColor(maCouleurdeBordure); graphics.draw(star);
Si tu veux vraiment une "vraie" étoile à 5 branches il te faut un 2nd set de points situé sur un cercle plus petit que le 1er. Le 1er point sur le cercle interne est décalé 2*PI/10 par rapport au 1er point sur le cercle externe, ensuite les points sur le cercle interne sont tous espacés entre eux de 2*PI/5 comme les points du cercle externe.
L'algo pour dessiner la shape devient:
- relier cext[i] à cint[i]
- relier cint[i] à cext[i+1]
...
modulo le nb de points. On s'arrête quand on revient au nombre de départ.
Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.
suivez mon blog sur Développez.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook
Merci, c'est exactement ce que je cherchais. Cependant, es-tu sûr qu'il est décalé de 2*PI/10 ? Car en traçant, ça ne semble pas être tout à fait ça ...
Aussi, quel est le rayon du cercle contenant le pentacle interne ?
Merci !
Toine
Autant pour moi, c'est bien 2*PI/10 !
Par contre, je ne sais pas quel est exactement le rayon du cercle interne...
Toine
0 <= rint <= rext ...
Basiquement c'est toi qui voit pour faire des étoiles avec des branches plus ou moins pointues (genre étoile de Noel vs. étoile "grasse" dans Super Mario).
Pour avoir une étoile à 5 branche extactement similaire à l'étoile d'un pentagramme : une facon de faire est de resortir la règle, le compas et le rapporteur du cartable et de dessiner tout simplement un pentagramme à la main sur papier, puis de mesurer le rayon interne et le rayon externe et de faire le rapport des 2... et réutiliser ce rapport dans le code
Un peu d'initiative et d'imagination que diable (sans mauvais jeu de mot)
Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.
suivez mon blog sur Développez.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook
Si 2 sommets concécutifs d'une étoile à 5 branche sont espacés de 2*Pi/5 et que le point representant le creux est extactement entre 2 sommets... on peut en déduire que le point du creux est décalé par rapport au 1er sommet de (1/2) * (2*PI/5) = 2*PI/10...es-tu sûr qu'il est décalé de 2*PI/10
Tss je sais que y a des jours je me tape dessus car je n'ai pas toujours retenu toutes mes formules de trigo (et elle sont TOUTES fort utile quand on fait de la 2D) et ainsi que certaines équations de physique (utiles dans les animations et certains effets spéciaux), ... mais là quand même....
Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.
suivez mon blog sur Développez.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook
Merci beaucoup pour toutes les infos
Pour le cercle intérieur, j'avais déjà trouvé un rapport convenable mais je cherchais une solution rigoureuse... M'enfin le résultat est là ! Merci beaucoup !
Dis-moi, tu fais du dev de jeux vidéos ?
Toine
Hum je ne crois pas qu'y ai de normes stricte sur la maniere de faire des etoiles a 5 branches. Mais sait-on jamais, peut-etre y a t'il une norme CE, ISO ou IEEE qq part...
Non absolument pas je fais des interfaces de visu et de parametrage pour des scientifiques ; ce qui implique parfois de faire du rendu 2D et des graphes. Et a chaque fois que j'ai essaye de faire un jeu video (allez au hasard un scroller 2D genre... Sonic) j'ai vite laisse tombe devant l'ampleur de la tache pour une seule personne...
Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.
suivez mon blog sur Développez.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook
je parlais pas de norme mais comment obtenir le même rendu que quand tu la traces à la main... Le rapport est 2.5
Oui je sais ce que c'est pour l'ampleur des dev pour le jeu vidéo ... Je développe actuellement un jeu "dans mon garage"
Si tu veux voir : http://www.humana-studio.com
Toine
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager