Voilà le principe, je suis parti d'un triangle équilatéral ABC, je place un point M en son centre puis j'effectue un tirage aléatoire qui donne un entier entre 1 et 3. En fonction du résultat du tirage, je place le point N1 au milieu de [AM], ou au milieu de [BM] ou au milieu de [CM] et j'effectue un autre tirage aléatoire qui donne naissance au milieu de [AN1], ou au milieu de [BN1] ou au milieu de [CN1], et ainsi de suite...
J'ai galéré comme un débutant pour pouvoir afficher les points dans le triangle mais j'ai trouvé quelque chose quand même.
Mais bon, voilà mon problème : quand je calcule les coordonnées des points N avec 100 itérations, cela fonctionne mais quand je veux faire 1000 itérations, xcas ne peut effectuer les calculs. Je voudrais afficher au moins 10000 points pour obtenir la figure mais aurais-je déjà dépassé les capacités de calculs de xcas? Bizarre, pourquoi cela plante-t-il et quelqu'un pourrait-il m'expliquer comment obtenir ces 10000 points?
Merci à vous.
Voici mon code :
Code : Tout sélectionner
Sier():={
local A,B,C,T,M,i,N,x,y,Tirage;
A:=point(-1/2,-sqrt(3)/4,affichage=epaisseur_point_2+point_point+rouge);
B:=point(1/2,-sqrt(3)/4,affichage=epaisseur_point_2+point_point+rouge);
C:=point(0,sqrt(3)/4,affichage=epaisseur_point_2+point_point+rouge);
T:=triangle(A,B,C,affichage=rouge);
M:=point(0,0,affichage=bleu)
x:=0;
y:=0;
N:=NULL;
pour i de 1 jusque 100 faire
Tirage:=1+alea(3);
si Tirage==1 alors
x:=(-1/2+x)/2;
y:=(-sqrt(3)/4+y)/2;
sinon
si Tirage==2 alors
x:=(1/2+x)/2;
y:=(-sqrt(3)/4+y)/2;
sinon
x:=x/2;
y:=(sqrt(3)/4+y)/2;
fsi;
fsi;
N:=N,point(x,y,affichage=point_point)
fpour
retourne(T,A,B,C,M,N);
}
:;