Courbe de bézier

Pour parler math...

Modérateur : Modérateurs

Répondre
moona
Messages : 5
Inscription : 20/08/2007 - 0:29:39

Courbe de bézier

Message par moona » 20/08/2007 - 0:42:13

Bonsoir à vous,

pouvez vous m'expliquer s'il vous plait, comment résoudre un problème de courbe de Bézier, voici mon problème

On considère les deux lignes brisées (p0, p1, p2, p3) et (p3, p4, p5, p6), définies par les points p0....p6 donnés par:

p0=(1, 0)
p1=(3, -1)
p3=(2, 4)
p4=(-1, 4)
p5=(2, 2)
p6=(0, 1)


On voudrait approximer chacune de ces deux lignes par une courbe de bézier à 4 points de contrôle, tel que:

-C1(t) est l'équation de la courbe approximant (p0, p1, p2, p3)
-C2(t) est l'équation de la courbe approximant (p3, p4, p5, p6)

Donner les équation de C1(t) et C2(t)

La matrice de base associée aux courbes de bézier est

M=
-1 3 -3 1
3 -6 3 0
-3 3 0 0
1 0 0 0

merci de me montrer la technique pour C1(t)

Avatar de l’utilisateur
bongo1981
Messages : 4083
Inscription : 03/04/2007 - 19:20:21
Localisation : Paris

Message par bongo1981 » 20/08/2007 - 9:11:44

Si j'ai le temps de m'y plonger je regarderai (pas avant ce soir), comme je connais pas, je vais lire cette page (donc je te conseille d'en faire autant)
http://fr.wikipedia.org/wiki/Courbe_de_B%C3%A9zier

L'exemple est traitée entièrement là :
http://fr.wikipedia.org/wiki/Courbe_de_ ... r#Exemples

Il n'y a plus qu'à piocher et appliquer.

moona
Messages : 5
Inscription : 20/08/2007 - 0:29:39

Message par moona » 20/08/2007 - 12:54:10

Merci bango1981 :)

au fait je crois que la solution de l'exercice est un peu plus simple que la technique montré sur wikipedia en utilisant les matrices.

Avatar de l’utilisateur
bongo1981
Messages : 4083
Inscription : 03/04/2007 - 19:20:21
Localisation : Paris

Message par bongo1981 » 20/08/2007 - 14:04:41

Sûrement, wikipedia n'explique pas vraiment comment faire avec les matrices (à moins que j'ai manqué un passage).

Si tu trouves le temps, et que tu en as envie, tu peux mettre la solution dans un poste ultérieur (ça sera utile pour les gens qui consultent le forum, ou pour toi plus tard si tu te rappelles plus).

moona
Messages : 5
Inscription : 20/08/2007 - 0:29:39

Message par moona » 20/08/2007 - 15:43:17

voici la méthode proposé:

C1(t) = T x M x P



T = (t^3,t^2,t,1) [transposé]
M = la matrice de base
P = (p0,p1,p2,p3) [transposé]

C1(t) = P0(-t^3 + 3t^2 - 3t + 1) + P1(3t^3 - 6t^2 + 3t) + P2(-3t^3 + 3t^2) + P3(t^3)

je l'ai écrite sous forme d'équation paramétrique (je ne sais pas si c'est juste)
j'ai réussi à trouver la solution mais je ne suis pas très sûr de mes calculs, je vous la quant même:

X(t) = -5^3 - 6t^2 + 6t + 1
Y(t) = -2^3 + 12t^2

(une rectification, j'ai oublié de mentionner les paramètres du point P2=(3,2))

Avatar de l’utilisateur
bongo1981
Messages : 4083
Inscription : 03/04/2007 - 19:20:21
Localisation : Paris

Message par bongo1981 » 20/08/2007 - 21:04:51

Avec le polynôme de Bernstein tu trouves exactement la même chose.

C1(t) = P0*(1-t)^3 + 3*P1*(1-t)^2*t + 3*P2*(1-t)*t^2 + P3*t^3

Et la matrice M a l'air facile à mettre en place, ça regroupe les coefficients du polynome ligne par ligne, en incorporant le facteur C(n,k)

En fait ce sont deux écritures de la même chose (le polynôme de Bernstein avec les coefficients du binôme, ou bien la matrice M mais il faut pouvoir la trouver pour tout n, je pense que M(i,j) = C(n,i-1) * C(n,j-1) où les C(i,j) sont les coefficients du binôme, i la ligne, j la colonne et n l'ordre, ici 3).

Au fait c'est pour quelle application ?

moona
Messages : 5
Inscription : 20/08/2007 - 0:29:39

Message par moona » 23/08/2007 - 0:03:29

Bonsoir bongo,

tu as raison oui, on peut trouver la matrice M mais ça prendra beaucoup de temps pour le faire.

au fait, je dois apprendre ça pour mon cours d'infographie ou je dois approximer des lignes par une courbe de bézier

Avatar de l’utilisateur
bongo1981
Messages : 4083
Inscription : 03/04/2007 - 19:20:21
Localisation : Paris

Message par bongo1981 » 23/08/2007 - 0:09:47

C'est assez rapide, j'ai donné la formule dans mon précécent poste ;)

Intéressant l'infographie.

lambda0
Messages : 311
Inscription : 30/09/2005 - 13:29:16

Message par lambda0 » 23/08/2007 - 9:30:38

En fait, ça va plus loin que l'infographie : le grand intérêt de la base de Bernstein est de produire des schémas numériques stables pour le calcul de polynomes de degrés élevés.
Si on veut calculer un polynôme comme a.x^10+b.x^9+ etc., le résultat peut être très sensible aux arrondis numériques si on laisse le polynôme exprimé sur la base des monomes.
Si par contre, par un changement de base, on exprime ce polynôme sur la base de Bernstein, le comportement numérique est bien meilleur aux degrés élevés.
Cette projection est aussi très utile pour résoudre les équations polynomiales, je m'en sert assez souvent en calcul scientifique.

A+

Avatar de l’utilisateur
bongo1981
Messages : 4083
Inscription : 03/04/2007 - 19:20:21
Localisation : Paris

Message par bongo1981 » 23/08/2007 - 11:13:34

Je m'en doute bien :)
En tout cas merci pour ces précisions lambda0, c'est quelque chose que je vais rajouter à mon arsenal :o

Répondre