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 :
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) :
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 .
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) :
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
Partager