bonsoir.

A vrai dire je m'y prends un peu tard. Pour demain je dois rentre un devoir. Je pensais reussir mais la je bloque completement.
Une des question est :

exprimer sous forme de fonction uniforme la discrétisation de l'ensemble f(u)->tdiscret appartenant [0;1]. Calculer sur la courbe C(ti) la distance au point précédant |C(ti)-C(ti-1)|.
Es-ce uniforme? Tracer la poly ligne représentant ces distances.

tracer la courbe dérivée de cette courbe : C0(t) =Pn i=0 PiB0 (i,n)(t) avec t ∈ [0,1] Comme décrire l’ensemble des points de contrôle et les points de la courbe? On peut utiliser un vecteur de vecteur (matrice) car nous aurons besoin d’opérations vectorielles (cf éq. 3.1). Par exemple, les points P sont définis par des vecteurs ligne :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 P0=[0, 0, 0]; 
P1=[1, 1, 0];
 P2=[2, 1, 0]; 
P3=[3, 0, 0];
Les points de contrôles sont un ensemble de points (une colonne de vecteurs 3) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
ptsControle=[P0; P1; P2; P3];
Le calcul d’un point sur la courbe peut alors se faire par des opérations vectorielles. BernsteinValue(t, i, degre+1) renvoie un scalaire (cf. éq.3.2).
ptsControle(i, : ) est le vecteur 3 de la ie ligne de la matrice des points de contrôle .

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
function p = computeBezierPoint(nbPtsControle , ptsControle , t)
 . . . p = p + ptsControle(i , :) ∗ BernsteinValue(t , i , degre+1);
 . . . endfunction
Dans cette écriture p est un tableau de vecteur 3. On peut l’utiliser dans l’affichage à condition de séparer la 1ère colonne (les x) de la 2e (les y) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
ptsContX= ptsControle (: , 1) ; 
ptsContY= ptsControle (: , 2) ; 
plot (ptsContX , ptsContY , "−∗r") ;
J'ai fais la question 3. Toutes aides pour les questions posé en debut sont les bien venus