On chien se trouve en C de coordonnées (0,1) et son maitre se trouve en M de coordonnées (0,0).
Le maitre se déplace sur l’axe des x et le chien se dirige à la même vitesse en direction de son maitre.
On veut dessiner la trajectoire du chien.
chien():={ local X,Y,L,xk,yk,p,j,k,d,a,a1,b,b1; DispG; ClrGraph(); p:=0.1; X:=0,0,3; Y:=1,0,0; L:=NULL; pour k de 0 jusque 1 faire L:=L,point(X[k]+i*Y[k],affichage=1+epaisseur_point_2+point_point); fpour; tantque abs(X[0]+i*Y[0]-X[1]-i*Y[1])>0.1 faire pour k de 0 jusque 1 faire a:=X[k];a1:=X[k+1]-a; b:=Y[k];b1:=Y[k+1]-b; d:=sqrt(a1^2+b1^2); xk:=a+p*a1/d; yk:=b+p*b1/d; L:=L,segment(a+i*b,xk+i*yk,affichage=k); X[k]:=xk; Y[k]:=yk; fpour; ftantque; return L; } :;
Des personnes A,B,C.. sont situées aux sommets A,B,C.. d’un isoploygone.
Á l’instant t, A se dirige vers B, B se dirige vers C, C se
dirige vers D,...et le dernier sommet se dirige vers A.
On veut dessiner les trajectoires de A,B,C....
isopoly(n,m):={ local X,Y,L,xk,yk,p,j,k,d,a,a1,b,b1,P,SP; p:=0.1; L:=NULL; P:=isopolygone(0,1,n); SP:=op(sommets(P)); X:=evalf(abscisse(SP)); Y:=evalf(ordonnee(SP)); pour k de 0 jusque n-1 faire L:=L,point(X[k]+i*Y[k],affichage=1+epaisseur_point_2+point_point); fpour; pour j de 0 jusque m-1 faire X[n]:=X[0]; Y[n]:=Y[0]; pour k de 0 jusque n-1 faire a:=X[k];a1:=X[k+1]-a; b:=Y[k];b1:=Y[k+1]-b; d:=sqrt(a1^2+b1^2); xk:=a+p*a1/d; yk:=b+p*b1/d; L:=L,segment(a+i*b,xk+i*yk,affichage=k+89); X[k]:=xk; Y[k]:=yk; fpour; fpour; return L; } :;
Des personnes A,B,C... sont situées aux sommets d’un ploygone A,B,C...
dont les affixes sont les éléments de la liste Z.
Á l’instant t, A se dirige vers B, B se dirige vers C, C se
dirige vers D,...et le dernier sommet se dirige vers A.
On veut dessiner les trajectoires de A,B,C....
poly(Z):={ local X,Y,L,xk,yk,p,j,k,d,a,a1,b,b1,n,m; p:=0.1; L:=NULL; m:=100; n:=size(Z); X:=re(Z); Y:=im(Z); pour k de 0 jusque n-1 faire L:=L,point(X[k]+i*Y[k],affichage=1+epaisseur_point_2+point_point); fpour; pour j de 0 jusque m-1 faire X[n]:=X[0]; Y[n]:=Y[0]; pour k de 0 jusque n-1 faire a:=X[k];a1:=X[k+1]-a; b:=Y[k];b1:=Y[k+1]-b; d:=sqrt(a1^2+b1^2); xk:=a+p*a1/d; yk:=b+p*b1/d; L:=L,segment(a+i*b,xk+i*yk,affichage=k+89); X[k]:=xk; Y[k]:=yk; fpour; fpour; return L; } :;
Des souris A,B,C... sont situées aux points A,B,C...
dont les coordonnées sont les éléments des listes X et Y définies
aléatoirement entre -1 et 1.
Á l’instant t, A se dirige vers B, B se dirige vers C, C se
dirige vers D,...et le dernier sommet se dirige vers A.
On veut dessiner les trajectoires de A,B,C....
courbot0():={ local X,Y,L,xk,yk,p,m,n,j,k,d,a,a1,b,b1; DispG; ClrGraph(); p:=0.1; m:=10; n:=50; X:=NULL; Y:=NULL; L:=NULL; pour k de 0 jusque n-1 faire xk:=2*alea(0,1)-1; yk:=2*alea(0,1)-1; X:=X,xk; Y:=Y,yk; L:=L,point(xk,yk,affichage=1+epaisseur_point_2+point_point); fpour; Pause 1; pour j de 0 jusque m-1 faire X[n]:=X[0]; Y[n]:=Y[0]; pour k de 0 jusque n-1 faire a:=X[k];a1:=X[k+1]-a; b:=Y[k];b1:=Y[k+1]-b; d:=sqrt(a1^2+b1^2); xk:=a+p*a1/d; yk:=b+p*b1/d; L:=L,segment(a+i*b,xk+i*yk,affichage=k+90); X[k]:=xk; Y[k]:=yk; fpour; Pause 1; fpour; return L; } :; courbot():={ local xt,yt,X,Y,L,xk,yk,p,m,n,j,k,d,a,a1,b,b1; ClrGraph(); p:=0.01; m:=100; n:=50; X:=NULL; Y:=NULL; L:=NULL; pour k de 0 jusque n-1 faire xk:=2*alea(0,1)-1; yk:=2*alea(0,1)-1; X:=X,xk; Y:=Y,yk; L:=L,point(xk,yk,affichage=1+epaisseur_point_2+point_point); fpour; pour j de 0 jusque m-1 faire X[n]:=X[0]; Y[n]:=Y[0]; pour k de 0 jusque n-1 faire a:=X[k];a1:=X[k+1]-a; b:=Y[k];b1:=Y[k+1]-b; d:=sqrt(a1^2+b1^2); xt:=a+p*a1/d ; yt:=b+p*b1/d; L:=L,segment(a+i*b,xt+i*yt,affichage=k+90); X[k]:=xt; Y[k]:=yt; fpour; fpour; return L; }:;