Déterminer le nombre de bras d'une spirale - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : Déterminer le nombre de bras d'une spirale (/showthread.php?tid=6850) Pages :
1
2
|
RE: Déterminer le nombre de bras d'une spirale - Pio154 - 06-12-2013 Voilà ce que j'obtiens pour respectivement pour 157 et 314, donc non les images ne sont pas les mêmes. Sinon, je pense que tu as raison Xenos, il n'y a qu'un seul bras, et je ne les définis pas du tout comme tu l'as implicitement souligné. Voilà, j'ai trouvé comment faire, mais il faut juste rentrer un paramètre manuellement : le nombre de bras. Code : if ( (i+1) % configSpiral.numberBranch === 0 && configSpiral.branch[0] == 1 && 1 <= configSpiral.numberBranch ) spirale3-157.PNG (Taille : 53,96 Ko / Téléchargements : 11) spirale4-314.PNG (Taille : 58,22 Ko / Téléchargements : 11) RE: Déterminer le nombre de bras d'une spirale - Xenos - 06-12-2013 Pour Pi et Pi/2, c'est normal de ne pas avoir la même image: si la valeur P1*P2 est un sous-multiple de Pi, de la forme (Pi/k), alors le nombre de branches sera 2*k (k un entier positif strictement). Par exemple, pour P1*P2=Pi=Pi/1 (1er cas, 3.14), tu as 2 branches (2*1). Pour P1*P2=Pi/2 (2e cas, 1.57), tu as 4 branches (2*2). J'ai pris 3.14 et 1.57 dans mes calculs, et non 314 et 157 comme demandé. Pourquoi? Parce que le facteur 100 n'influence pas le nombre de branches: il influence seulement la dilatation de la spirale. Pour 3.14, la spirale est de petite taille, pour 314, la spirale est de grande taille (100x plus grande). Je ne comprends absolument pas le code proposé O.o Pourquoi des tas de "if" avec la même commande? Pourquoi des modulo jusqu'à i+13? RE: Déterminer le nombre de bras d'une spirale - Pio154 - 06-12-2013 Voilà ce que ça donne : http://xavier-lewandowski.fr/2www/galaxy/ RE: Déterminer le nombre de bras d'une spirale - Xenos - 06-12-2013 Si tu veux faire une ensemble de spirales, tu peux très bien ajouter un offset à la valeur de l'angle: au lieu de faire Code : angle = P1*P2*i Tu fais Code : angle=P1*P2*i+offset Avec Code : offset=2*Pi*(indiceBrancheCourante/nombreBranchesTotal) Code : offset=360*(indiceBrancheCourante/nombreBranchesTotal) Ainsi, tu auras une superposition de spirales mono-branches: Les points d'une branche numéro k, dans une spirale de N branches issue de ton code, sont tout simplement les points dont (i+k) est divisible par N (autrement dit, dont (i+k)%N == 0, équivalent à (i%N) == (k%N), (k%N) pouvant être simplifié par k tout seul si 0 <= k < N ). Le flatras de if précédents se simplifie donc: Code : if (configSpiral.branch[ (i%configSpiral.numberBranch) ]) RE: Déterminer le nombre de bras d'une spirale - Xenos - 06-12-2013 Et la formule de calcul du nombre de branches risque d'être vraiment complexe... D'ailleurs, dans cet exemple (dont j'ai oublié les valeurs de paramètres >.<), il n'y a plus vraiment de notion de "branche": RE: Déterminer le nombre de bras d'une spirale - Pio154 - 10-12-2013 Pour moi il y a 21 branches, dommage que tu n’aies pas retenu les paramètres |