Fractal 3 branches
Résolu
mopadi
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
mopadi Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
mopadi Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Fractal 3 branches
- Ai suite 3 - Télécharger - Optimisation
- Picasa 3 - Télécharger - Albums photo
- Photorecit 3 - Télécharger - Visionnage & Diaporama
- Imagen 3 - Accueil - Applications & Logiciels
- Zelda 3 - Accueil - Guide jeu vidéo
3 réponses
Je ne connais pas trop JavaScript, et encore moins l'outil Canevas, alors je ne sais pas trop ce qu'il est possible de faire, en particulier ce serait bien de pouvoir copier le dessin actuel pour le coller plusieurs fois à des endroits différents et avec des translations, mais comme je ne sais pas si c'est possible je vais me contenter de dessiner les branches une par une, ce qui est nettement plus long, mais ce sera un début.
Remarque : j'ai fait ça de tête, il faudrait vérifier que ça dessine bien la bonne chose...
À vue de nez, il faudrait prendre n=8 ou 9, pour avoir les mêmes détails que sur l'image.
function fractale_aux(n,x,y,sx,sy) { // Tracer une ligne entre les points (x,y) et (x+sx/2,y+sy/2) if (n>0) { fractale_aux(n-1,x+sx/2,y+y/2, sx/2,sy/2); fractale_aux(n-1,x+sx/2,y+y/2,-sy/2,sx/2); fractale_aux(n-1,x+sx/2,y+y/2, sy/2,sx/2); } } function fractale(n,size) { fractale_aux(n,sz/2,0,0,sz); }
Remarque : j'ai fait ça de tête, il faudrait vérifier que ça dessine bien la bonne chose...
À vue de nez, il faudrait prendre n=8 ou 9, pour avoir les mêmes détails que sur l'image.
d'abord merci d'avoir repondu.
L'outil canevas permet de dessiner, dans notre ca, je pense qu'on doit dessiner des segment, et pour ca il faut une coordonnée de depart de de fin du segment.
Je ne comprend malheureusement pas votre code, donc si il était possible de plus le détailler, ou d'expliquer la logique de votre code.
En faite il est la mon principale proleme, je n'arrive pas à imaginé d'imbrication de condition et boucle pour faire ce dessin. Je suis à la recher plus du concept, je me debrouillerai ensuite pour le codé de manière a que ca marche :)
merci
L'outil canevas permet de dessiner, dans notre ca, je pense qu'on doit dessiner des segment, et pour ca il faut une coordonnée de depart de de fin du segment.
Je ne comprend malheureusement pas votre code, donc si il était possible de plus le détailler, ou d'expliquer la logique de votre code.
En faite il est la mon principale proleme, je n'arrive pas à imaginé d'imbrication de condition et boucle pour faire ce dessin. Je suis à la recher plus du concept, je me debrouillerai ensuite pour le codé de manière a que ca marche :)
merci
"pour ca il faut une coordonnée de depart de de fin du segment."
Ça tombe bien parce que je les ai, il faut juste remplacer mon commentaire par le code qui va bien.
Après comme c'est une fractale je fais juste un appel récursif, plus exactement trois appels récursifs vu la forme de ta fractale.
// (x,y) est la base de la zone de dessin
// (sx,sy) est le sens d'orientation du dessin
// si (sx>0,s=0) : on dessine vers le haut à partir de (x,y)
// si (sx<0, s=0) : on dessine vers le bas à partir de (x,y)
// si (sx=0, sy>0) : on dessine vers la drotie à partir de (x,y)
// si (sx=0, sy<0) : on dessine vers la gauche à partir de (x,y)
function fractale_aux(n,x,y,sx,sy)
{
// Tu traces une ligne droite sur ton canevas, à partie de la base, et en suivant l'orientation
 // Tracer une ligne entre les points (x,y) et (x+sx/2,y+sy/2)
 // si n==0 le traitement est terminé, sinon on découpe le dessin en trois parties
 if (n>0)
 {
   // La base des dessins suivants est celle où s'arrête la ligne droite tracée (x+sx/2,y+sy/2)
   fractale_aux(n-1,x+sx/2,y+y/2, sx/2,sy/2); // on conserve l'orientation
   fractale_aux(n-1,x+sx/2,y+y/2,-sy/2,sx/2); // on tourne l'orientation vers la gauche
   fractale_aux(n-1,x+sx/2,y+y/2, sy/2,sx/2); // on tourne l'orientation vers la droite
 }
}
// Fonction principale, dessine un carré de taille "size", avec "n" degrés de récursivité
function fractale(n,size)
{
 // La base du premier segment est au milieu en bas, orientation vers le haut
 fractale_aux(n,sz/2,0,0,sz);
}
Ça tombe bien parce que je les ai, il faut juste remplacer mon commentaire par le code qui va bien.
Après comme c'est une fractale je fais juste un appel récursif, plus exactement trois appels récursifs vu la forme de ta fractale.
// (x,y) est la base de la zone de dessin
// (sx,sy) est le sens d'orientation du dessin
// si (sx>0,s=0) : on dessine vers le haut à partir de (x,y)
// si (sx<0, s=0) : on dessine vers le bas à partir de (x,y)
// si (sx=0, sy>0) : on dessine vers la drotie à partir de (x,y)
// si (sx=0, sy<0) : on dessine vers la gauche à partir de (x,y)
function fractale_aux(n,x,y,sx,sy)
{
// Tu traces une ligne droite sur ton canevas, à partie de la base, et en suivant l'orientation
 // Tracer une ligne entre les points (x,y) et (x+sx/2,y+sy/2)
 // si n==0 le traitement est terminé, sinon on découpe le dessin en trois parties
 if (n>0)
 {
   // La base des dessins suivants est celle où s'arrête la ligne droite tracée (x+sx/2,y+sy/2)
   fractale_aux(n-1,x+sx/2,y+y/2, sx/2,sy/2); // on conserve l'orientation
   fractale_aux(n-1,x+sx/2,y+y/2,-sy/2,sx/2); // on tourne l'orientation vers la gauche
   fractale_aux(n-1,x+sx/2,y+y/2, sy/2,sx/2); // on tourne l'orientation vers la droite
 }
}
// Fonction principale, dessine un carré de taille "size", avec "n" degrés de récursivité
function fractale(n,size)
{
 // La base du premier segment est au milieu en bas, orientation vers le haut
 fractale_aux(n,sz/2,0,0,sz);
}
J'ai une question, il vous a fallu combien de temps pour trouver ce code dans votre tête? Comme dit précedement j'y avait passé une aprem... Il y a quelque faute, mais la logique est la, vous m'aurez appris quelque chose aujourd hui :p merci