Posté le 21/01/2015 10:40
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 125 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd
Citer : Posté le 21/01/2015 11:10 | #
Peux tu uploader une image d'étoile ratée à 8 branches ?
Citer : Posté le 21/01/2015 17:47 | #
voila : à droite c'est une image à 8 branches mais pour que tu vois mieux le décalage j'en ai fait une à 16
le problème est donc que c'est à chaque fois trop décalé vers la droite
-Mon Fall Down
-Mon jeu de mains
-Mon starwars
-Mon dessinatout
-Mon niaiseux version 2.0
-Mon niaiseux version 3.0
-Inferno
-Mon super labyrinthe (en cours)
-Mon call of duty en 3D
-Casion (avec Az)
Citer : Posté le 21/01/2015 23:09 | #
Problème dans ton décalage?
Citer : Posté le 21/01/2015 23:12 | #
Tout a fait
Et je crois avoir découvert quelque chose : déjà j'ai la confirmation que l'erreur se trouve sur les forward() lignes 28 et 33.
Alors pour un étoile à 6 branches pour qu'il n'y ai aucun décalage c'est bien longueur/3 mais pour une étoile à 8 branche c'est Longueur/24*7 omg
Je cherche un algorithme afin de faire correspondre les deux mais bon
-Mon Fall Down
-Mon jeu de mains
-Mon starwars
-Mon dessinatout
-Mon niaiseux version 2.0
-Mon niaiseux version 3.0
-Inferno
-Mon super labyrinthe (en cours)
-Mon call of duty en 3D
-Casion (avec Az)
Citer : Posté le 21/01/2015 23:13 | #
T'es sûr que c'est bien avancer d'un tiers ?
Si oui, alors l'erreur n'est pas de là. Fais gaffe, parce que si l'erreur était sur l'angle tu pourrais la corriger en modifiant une valeur de longueur.
Citer : Posté le 21/01/2015 23:22 | #
Bah non justement pour moi l'erreur est de là sinon j'ai trouvé là un topic qui en parle mais ne dis pas la solution pour les etoiles à nombre pair de branches (à moins d'avoir mal lu )
Ajouté le 21/01/2015 à 23:30 :
Aha ! La recherche se précise : pour 10 étoiles il faudrait faire forward(longueur/24*6.5) mais ATTENTION ceci est une valeur inexacte (on voit encore un petit décalage ) mais au moins ca s'affine
-Mon Fall Down
-Mon jeu de mains
-Mon starwars
-Mon dessinatout
-Mon niaiseux version 2.0
-Mon niaiseux version 3.0
-Inferno
-Mon super labyrinthe (en cours)
-Mon call of duty en 3D
-Casion (avec Az)
Citer : Posté le 22/01/2015 08:37 | #
Je pense que c'est la méthode qui n'est pas bonne. Tu trace un triangle et tu fais pivoter d'un angle de (360 / branches).
Citer : Posté le 22/01/2015 16:17 | #
Ou as-tu vu écrit qu'il fallait avancer d'un tiers ? Est-ce que ce ne serait pas un tiers d'une longueur variable (ou à l'inverse, constante) ?
Citer : Posté le 22/01/2015 16:19 | #
Ce ne serait pas 1/3 de rotation ?
Citer : Posté le 22/01/2015 17:41 | #
En fait j'ai pris 1/3 parceque ca marchait avec 6 côtés mais tout a fait lephe
et fab je ne pense pas
-Mon Fall Down
-Mon jeu de mains
-Mon starwars
-Mon dessinatout
-Mon niaiseux version 2.0
-Mon niaiseux version 3.0
-Inferno
-Mon super labyrinthe (en cours)
-Mon call of duty en 3D
-Casion (avec Az)
Citer : Posté le 22/01/2015 17:47 | #
Ah mais c'est pas une formule générale alors.
J'ai pas exactement compris ce que tu veux faire, tu saurais m'expliquer quel doit être le rendu final pour expliquer le dessin de plusieurs polygones en rotation ?
Citer : Posté le 22/01/2015 17:54 | #
En fait lorsque que le programme fini de tracer le premier polygone (quand c'est une étoile à nombre de branches pair bien sur ), je dis au "curseur" d'avancer d'une certaine longueur (qui correspond pour 6 branches à longueur/3 et pour 8 branches à longueur*7/24 ). Il faudrait changer cela et mettre une formule à la place en fait car du coup ca marche pas pour tout .
Après avoir avancé de cette longueur, je demande au curseur de tourner de 180/nb_de_pointes ° vers la gauche puis de ré-avancer de la même longueur que précedemment. Ensuite il ne reste plus qu'a tracer le 2nd polygone. Toute cette maneuvre a donc pour seul but de trouver le point de départ du 2nd polygone .
En fait regarde l'image explicative dans le post tu verras
-Mon Fall Down
-Mon jeu de mains
-Mon starwars
-Mon dessinatout
-Mon niaiseux version 2.0
-Mon niaiseux version 3.0
-Inferno
-Mon super labyrinthe (en cours)
-Mon call of duty en 3D
-Casion (avec Az)
Citer : Posté le 22/01/2015 18:04 | #
Je te conseille bien plus simple.
Tu mets un cercle qui a pour centre le centre de la fenêtre. Tu prends le point à la verticale en haut du cercle et tu dessines un polygone depuis ce point.
Ensuite, tu prends le point à, par exemple, 45° sur la droite du premier et tu redessines un polygone.
L'angle entre chaque polygone dépend :
→ Du nombre n de côtés ;
→ Du nombre p de polygones ;
Et si je raconte pas de conneries, sa valeur est de 360/(n*p).
Citer : Posté le 22/01/2015 18:09 | #
Aha en effet mais j'ai quelques questions :
-comment trouver le rayon du cercle sachant que ca trace le polygone en fonction de la longueur de son cote (si jamais c'est pas grave on peu prendre une valeur pas defaut hein )
-comment trouver ce deuxieme point ?
a partir de la je pense que ca pourrai le faire
-Mon Fall Down
-Mon jeu de mains
-Mon starwars
-Mon dessinatout
-Mon niaiseux version 2.0
-Mon niaiseux version 3.0
-Inferno
-Mon super labyrinthe (en cours)
-Mon call of duty en 3D
-Casion (avec Az)
Citer : Posté le 22/01/2015 18:16 | #
Si t'as fait un peu de trigo (1S), tu sais déjà tout ça, mais au cas où :
→ L'angle 0 est au milieu à droite du cercle. Si tu prends une graphique avec une cercle de centre O et de rayon 1, le point correspondant à l'angle 0 est aux coordonnées (1;0).
→ Les angles augmentent dans le sens trigonométrique = anti-horaire.
→ La position d'un point sur un cercle selon son angle (décrit ci-dessus) est (x_centre + rayon * cos(angle) ; y_centre + rayon * sin(angle)).
→ Les angles sont toujours exprimés en radians (2π radians = 360°).
Pour le rayon du cercle, c'est toi que le choisis. Il te suffit d'avoir trois variables, par exemple x_centre, y_centre et rayon.
Pour trouver le deuxième point il suffit d'appliquer la formule ci-dessus à partir de l'angle.
Au passage ton angle va diminuer dans les exemples que tu nous a présentés
Citer : Posté le 22/01/2015 18:25 | #
Alors je suis en 2nd donc ce "rappel" est bienvenue
Si les angles sont exprimés en radians, me faut-il faire ( 360/(n*p) /2π) pour convertir ? pasque j'ai jamais étudié les radians non plus ...
D'accord j'essaie ca le plus tot possible (ce qui n'est pas se soir car j'ai un exposé à faire pour...demain )
-Mon Fall Down
-Mon jeu de mains
-Mon starwars
-Mon dessinatout
-Mon niaiseux version 2.0
-Mon niaiseux version 3.0
-Inferno
-Mon super labyrinthe (en cours)
-Mon call of duty en 3D
-Casion (avec Az)
Citer : Posté le 22/01/2015 18:32 | #
Pour la conversion radians/degrés, rien de bien compliqué.
Pour aller de degrés en radians on ramène à une unité de « 1 » (donc entre 0 et 1, comme une échelle universelle), puis on multiplie par 2π (équivalent de 360°), ce qui nous donne :
Je ne sais plus comment on note pi en Python, mais t'as compris le principe.
Dans une optique de complétude, on ne peut pas faire ça en C car si l'angle est un entier (courant), alors le ramener entre 0 et 1 implique qu'il soit tronqué, donc on a toujours 0... pour cette raison, et dans tous les cas de conversion, on multiplie avant de diviser. Ça augmente aussi la précision.
Je te conseille de toujours prendre cette habitude.
Si t'as compris tout le reste, tu verras que c'est très utile (c'est la base de la trigonométrie ), et puis ça t'avance un peu sur l'année prochaine si tu veux aller en S