j'avais préparé mon programme qui trace des points sur une courbe de Bézier de degré n déterminée par n+1 points de controle pour mes BTS (code ci-dessous).
Il fonctionne sous linux et au lycée nous avons du windows. Bilan :
Un détail : les libellés de la ligne "saisir" n'apparaissent pas sous Windows
Un problème : je n'ai jamais vu apparaître la fenêtre graphique avec DispG sur au moins 3 portables des élèves qui sont allés au bout. Donc pas de graphique ! Retour à la maison, je teste sur mon portable windows et là DispG affiche le graphique....
Pas facile de deviner ce qui cloche.
Peut-être y a-t-il un moyen de contourner et d'afficher tous les points sans ouvrir la fenêtre avec DispG ?
A bientôt
Code : Tout sélectionner
Bezier_iteratif(n):={
// trace la courbe de Bézier à n+1 points de contrôle
local t,j,k,x,y,a,b;
x:=matrix(n+1,n+1);
y:=matrix(n+1,n+1);
// entrée des coordonnées des n+1 points de contrôles
for(k:=0;k<=n;k:=k+1){
saisir("Abscisse de M(0,"+string(k)+")",a);
x[0,k]:=a;
saisir("Ordonnée de M(0,"+string(k)+")",b);
y[0,k]:=b;
}
// effacement de l'écran graphique
ClrGraph;
// affichage de l'écran graphique
DispG;
// t varie entre 0 et 1
for(t:=0;t<=1;t:=t+0.05){
// calcul des coordonnées du point M(t)
for(j:=1;j<=n;j:=j+1){
for(k:=j;k<=n;k:=k+1){
x[j,k]:=(1-t)*x[j-1,k-1]+t*x[j-1,k];
y[j,k]:=(1-t)*y[j-1,k-1]+t*y[j-1,k];
}
}
// affichage de tous les points pour un t donné
for(j:=0;j<=n;j:=j+1){
for(k:=j;k<=n;k:=k+1){
point((x[j,k],y[j,k]),affichage=j);
// décommenter la ligne suivante pour afficher les segments
// if (k>j) segment(point((x[j,k-1],y[j,k-1])),point((x[j,k],y[j,k])),affichage=j);
}
}
}
}
:;