[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