Courbe de Peano - Scilab

Discutez d'informatique ici !
Arno.R
Messages: 2
Enregistré le: 12 Nov 2009, 16:51

Courbe de Peano - Scilab

par Arno.R » 12 Nov 2009, 16:57

Bonjour,

Je suis nouveau, je vais essayer d'être le plus clair possible quant'à mon problème.

Dans le cadre d'un cours de maths, je dois programmer un labyrinthe fractal basé sur la courbe de peano:

http://fr.wikipedia.org/wiki/Courbe_de_Peano Pour ceux qui ne connaissent pas.

Je peine à finir ma courbe, le motif de base est là, la fractal aussi, il me faut maintenant relier les différents motifs, pour que la courbe ne soit plus faite de segments.


Si quelqu'un s'y connait un peu en scilab ou simplement en la programmation de la courbe de peano: un algorithme ou une aide serait la bienvenue.


Voilà ou j'en suis (le programme marche sou SCILAB: téléchargable gratuitement):


Code: Tout sélectionner
/////////////////////////
/// Labyrinth fractal ///
/////////////////////////

// Initialisation
clear;clf;

//Fonctions
function FINAL(iteration)
  drawlater;
  x_coordonnee = 0;
  y_coordonnee = 0;
  Longueur     = 1;
  compteur     = 0;
  alpha        = 0;

  function [X,Y]=ArnoN(x_coordonnee,y_coordonnee,iteration,Longueur,compteur,alpha)   
    X($+1) = x_coordonnee-Longueur/3;
    X($+1) = X($);
    X($+1) = X($);
    X($+1) = X($)+Longueur/3;
    X($+1) = X($);
    X($+1) = X($);
    X($+1) = X($)+Longueur/3;
    X($+1) = X($);
    X($+1) = X($);

    Y($+1) = y_coordonnee-Longueur/3;
    Y($+1) = Y($)+Longueur/3;
    Y($+1) = Y($)+Longueur/3;
    Y($+1) = Y($);
    Y($+1) = Y($)-Longueur/3;
    Y($+1) = Y($)-Longueur/3;
    Y($+1) = Y($);
    Y($+1) = Y($)+Longueur/3;
    Y($+1) = Y($)+Longueur/3;
   
    if iteration == 1
      plot(X,Y)
    else
      Longueur = Longueur/3;
      if iteration > (compteur+1)
        compteur = compteur+1;
        for i = 1:9
          [x_fin,y_fin]=ArnoN(X(i),Y(i),iteration,Longueur,compteur,alpha);
          alpha = alpha+%pi/2;
          y_fin = abs(sin(alpha))*y_fin+abs(cos(alpha))*(-y_fin);
          if (compteur+1) == iteration
            plot(x_fin,y_fin);
          end       
        end     
      end
    end
  endfunction
 
  ArnoN(x_coordonnee,y_coordonnee,iteration,Longueur,compteur,alpha)
  drawnow;
endfunction

FINAL(3)



Un grand merci pour l'attention que vous porterez à ma requête.



Arno.R
Messages: 2
Enregistré le: 12 Nov 2009, 16:51

par Arno.R » 17 Nov 2009, 17:47

Bonjour,

Personne n'aurait ne serait-ce qu'un indice pour m'aider?


Merci



Bonne journée

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 13:00

par fatal_error » 17 Nov 2009, 23:57

salut,

Si le but c'est de tracer QUE des segments qui retracent la courbe de peano, (ca doit etre le but :o), alors on peut faire comme ca :

je crois ( je connais pas scilab mais chui tombé sur le man ) que xsegs repond a ce dont tu as besoin.
Lorsque t'as un motif[X,Y].Faut que tu constitues tous les segments a tracer.
ici qqch du style
X=[
x_1,x_2;
x_2;x_3;
...
x_8;x_9]
Au final, tu fais ca pour tous les motifs.

Pis apres t'as plus qu'a faire une concaténation en ligne de chacune des matrices représentant les segments a tracer.
jor
Xs_1
Xs_2
...
Xt
avec Xs_1 représentant la matrice definissant pour le motif 1, les segments sur les x.
Xt est la nouvelle matrice obtenue.
Pareil pour les Y.
Puis un appel a xsegs(Xt,Yt)

J'espère que je reponds a ta question
la vie est une fête :)

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 11 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite