Courbe de Bezier
2 participants
Page 1 sur 1
Courbe de Bezier
Bonsoir Patrick,
J'ai abordé le chapitre sur le nombre dérivé, et je vais être amené à tracer pas mal de graphiques avec TeXgraph !
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 ?
J'ai abordé le chapitre sur le nombre dérivé, et je vais être amené à tracer pas mal de graphiques avec TeXgraph !
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)]
F.Couvreur- Nombre de messages : 137
Age : 61
Date d'inscription : 10/02/2008
Re: Courbe de Bezier
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:
Ce qui doit donner:
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:
Re: Courbe de Bezier
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 ).
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.
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 ).
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 : 61
Date d'inscription : 10/02/2008
Re: Courbe de Bezier
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 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.
J'ai choisi c2 et c3 en faisant quelques essais pour avoir la forme voulue, je savais quand même vers où les chercher 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.
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|