Courbe de Bezier

Voir le sujet précédent Voir le sujet suivant Aller en bas

Courbe de Bezier

Message  F.Couvreur le Dim 7 Déc - 20:38

Bonsoir Patrick,
J'ai abordé le chapitre sur le nombre dérivé, et je vais être amené à tracer pas mal de graphiques avec TeXgraph ! Very Happy
Pour la première courbe, j'ai utilisé une méthode pas très élégante. En effet, je regarde des graphiques dans des livres, et je me livre à une séance de dessin. Imaginons que je veuille reproduire un "morceau" de courbe entre les points A et B : je détermine les points de contrôle en traçant à la main les tangentes à la courbe en A et B pour déterminer les points C et D, puis je trace au mieux les tangentes en utilisant Ligne().
Existe-t-il une méthode plus rigoureuse avec TeXgraph ?
Code:
[Fenetre(-3+5*i, 6-2*i, 1+1*i),
 Width:=2, Color:=lightgray, Grille(0+0*i,0.1+0.1*i),
 Width:=4, Color:=darkgray, Grille(0+0*i,1+1*i),
 xyticks:=0.1, xylabelpos:=none,
 Color:=black, Arrows:=1, Width:=6, Axes(0,1+1*i,0),
 LabelAxe(x,1,"$1$"), LabelAxe(y,i,"$1$",2),
 Label(5.9-0.2*i,"$x$",-0.1+4.8*i,"$y$",-0.1-0.2*i,"0"),
 DotStyle:=dot,Point(-1+2*i), Point(2+2.5*i),Point(4+3*i),
 Arrows:=0, Width:=8,
 Bezier(-2.3+4.2*i,-0.2-0.2*i,1+1*i,2+2.5*i,3+4*i,3.8+4.1*i,5+i),
 Width:=6,Ligne([-3+4*i,2-i],0),Ligne([1+i,3.6+5*i],0),
 Ligne([3+4*i,5.8+1.2*i],0)]   
Merci.

F.Couvreur

Nombre de messages: 137
Age: 51
Date d'inscription: 10/02/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Courbe de Bezier

Message  P.Fradin le Dim 7 Déc - 21:50

Bonsoir Fabrice,

Afin d'éviter trop de tatônnements, je pense qu'il vaut mieux tracer une belle courbe de bézier en un seul morceau (c'est à dire 4 points de contrôle seulement), sans se préoccuper des points où on trace la tangente.

Une fois la courbe de Bezier en place, on choisit trois abscisses x1,x2,x3 et pour chacune d'elles on détermine le point de la courbe ayant la même abscisse (avec une bête intersection entre la verticale et la courbe). Pour les tangentes, on détermine de la même façon trois autres points mais très voisins des premiers (j'ai un écart de 10^-6 sur les abscisses). Le code correspondant:

Code:

[Fenetre(-3+5*i, 6-2*i, 1+1*i),
 Width:=2, Color:=lightgray, Grille(0+0*i,0.1+0.1*i),
 Width:=4, Color:=darkgray, Grille(0+0*i,1+1*i),
 xyticks:=0.1, xylabelpos:=none,
 Color:=black, Arrows:=1, Width:=6, Axes(0,1+1*i,0),
 LabelAxe(x,1,"$1$"), LabelAxe(y,i,"$1$",2),
 Label(5.9-0.2*i,"$x$",-0.1+4.8*i,"$y$",-0.1-0.2*i,"0"),
 DotStyle:=dot, Arrows:=0, Width:=8,
 c1:=-2.5+4*i, c2:=1-6*i, c3:=2+10*i, c4:=5+i, {controles}
 Bezier(c1,c2,c3,c4), L:=Get(Bezier(c1,c2,c3,c4)),
 {on détermine 3 points d'après leur abscisse}
 x:=-1, A:= [x+i*Ymin,x+Ymax*i] InterL L,
 x:=2,  B:= [x+i*Ymin,x+Ymax*i] InterL L,
 x:=4,  C:= [x+i*Ymin,x+Ymax*i] InterL L,
 Point(A,B,C),
 {on détermine un point voisin}
 h:=0.000001,
 x:=-1+h, A':= [x+i*Ymin,x+Ymax*i] InterL L,
 x:=2+h,  B':= [x+i*Ymin,x+Ymax*i] InterL L,
 x:=4+h,  C':= [x+i*Ymin,x+Ymax*i] InterL L,
 Width:=6, Droite(A,A'), Droite(B,B'), Droite(C,C')
 ]

Ce qui doit donner:

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages: 1133
Age: 52
Date d'inscription: 18/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Courbe de Bezier

Message  F.Couvreur le Lun 8 Déc - 8:11

Bonjour Patrick,
J'ai attendu d'être au bahut pour imprimer la figure, puis analyser le code que tu as proposé.
Comme d'habitude, c'est très clair (surtout que je commence à bien connaître le langage de TeXgraph Very Happy ).
Je me pose néanmoins une question : la courbe de Bezier va des points c1 à c4, avec des contrôles en c2 et c3 qui appartiennent, me semble-t-il, l'un à la tangente issue de c1(c2) et l'autre à la tangente issue de c4 (c3). Pourquoi ceux-là (choix des coordonnées) et pas d'autres ?
MERCI.

F.Couvreur

Nombre de messages: 137
Age: 51
Date d'inscription: 10/02/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Courbe de Bezier

Message  P.Fradin le Lun 8 Déc - 9:18

Bonjour Fabrice,

J'ai choisi c2 et c3 en faisant quelques essais pour avoir la forme voulue, je savais quand même vers où les chercher Laughing Donc j'ai un peu tatônné, mais pas pour les points où on cherche la tangente parce que là ce serait vite pénible!

Une autre solution aurait été de prendre une spline à la place de Bézier, l'avantage de la spline est qu'on donne les points appartenant à la spline, mais on maîtrise moins bien la forme.

PS: il est aussi possible de faire la courbe à la souris.

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages: 1133
Age: 52
Date d'inscription: 18/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum