[Enseignement] objet fractal à faire apparaître progressivement

Jean-François PIETRI pietri.jf at gmail.com
Sam 5 Juil 14:07:33 CEST 2014


Bonjour Monsieur Gougeon,

Tout d'abord, merci beaucoup d'avoir pris le temps de me répondre.
Je suis enseignant en mathématiques et je voudrais montrer aux élèves de TS
spécialité maths une application du calcul matriciel.

Pourriez-vous me dire si votre proposition est un arbre qui se construit
point par point grâce à la boucle FOR ?

En fait je pensais aussi à utiliser une boucle FOR de la façon suivante par
exemple :

nPoints = 6000

P = zeros(2,nPoints);

for i = 2:nPoints

tirage = rand();

if tirage < 0.5 then choix = 1;

else choix = 2;

end

P(:,i) = *transformation*(P(:,i-1),choix);*// P(:,i) est la colonne numéro i*

*plot*(P(1,i),P(2,i),"*b");

end



Mais il faut attendre longtemps pour avoir une belle figure.
Y aurait-il moyen de maîtriser le temps de construction de la figure, par
exemple 30 seconde pour les 6000 points choisis au départ?

Cordialement,

JF PIETRI


Le 4 juillet 2014 21:19, Samuel Gougeon <sgougeon at free.fr> a écrit :

>  Bonjour,
>
> Le 04/07/2014 12:18, Jean-François PIETRI a écrit :
>
> Bonjour,
>
>  Le programme ci-dessous permet d'obtenir le dragon de Heighway, mais je
> regrette qu'il arrive d'un bloc.
> Comme je me lance à peine avec scilab, quelqu'un pourrait-il me dire
> comment le modifier pour que le dragon apparaisse progressivement en 30
> secondes par exemple.
>
> Voici une possible mise en oeuvre :
>
> function point_image=transformation(point_antecedent, choix)
>     if choix == 1 then
>         A = [[0.5,-0.5];[0.5,0.5]] ; V=[0;0];
>     end
>     if choix == 2 then
>         A = [[-0.5,-0.5];[0.5,-0.5]] ; V=[1;0];
>     end
>
>     point_image = A * point_antecedent + V
> endfunction
> nPoints = 6000;P = zeros(2,nPoints);
> clfplot(0,0,"*b")c = gce();c.parent.data_bounds = [-0.4,-0.4;1.2 0.7];c = c.children;
> for i = 2:nPoints
>     tirage = rand();
>     if tirage < 0.5 then choix = 1;
>     else choix = 2;
>     end
>
>     tmp = transformation(P(:,i-1),choix);// P(:,i) est la colonne numéro i
>     c.data($+1,:) = tmp.';
>     P(:,i) = tmp;end
>
>
>
> _______________________________________________
> enseignement mailing list
> enseignement at lists.scilab.org
> http://lists.scilab.org/mailman/listinfo/enseignement
>
>
-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <https://lists.scilab.org/pipermail/enseignement/attachments/20140705/248fb81e/attachment.htm>


Plus d'informations sur la liste de diffusion enseignement