Points d'intersection de deux courbes
2 participants
Page 1 sur 1
Points d'intersection de deux courbes
J'aimerais représenter de différentes façon les points d'intersection de deux courbes pour faire apparaître les différents 4-cycles d'un système dynamique.
Y a-t-il moyen de visualiser les points d'intersection à l'aide d'un carré, d'un cercle, d'un triangle ?
Par exemple, sur le système suivant, j'aimerai pouvoir différencier des quadruplets de points de l'intersection des courbes Px et Py
Encore merci.
Y a-t-il moyen de visualiser les points d'intersection à l'aide d'un carré, d'un cercle, d'un triangle ?
Par exemple, sur le système suivant, j'aimerai pouvoir différencier des quadruplets de points de l'intersection des courbes Px et Py
- Code:
% TeXgraph version 1.93
% Fenetre Xmin Xmax Ymin Ymax Xscale Yscale
100#-1.3#1.3#-1.3#1.4#2#2##
% Marges gauche droite haut bas cadre gestion_couleur comptgraph
101#0.5#0.5#0#0#0#1#8##
% Affectation des Variables theta et phi
18##[theta:=0.5236, phi:=1.0472, OriginalCoord(1)]##
% Déclaration des Variables Globales
15#a#2.07##
% Déclaration des Macros
% Déclaration des Eléments graphiques
% objet1 (Axes)
18##[Arrows:=1,LabelSize:=1]##
1#objet1#[0+i*(0),0+i*(0),0+i*(0)]#0#0##
% objet2 (Courbe cartés.)
18##[Width:=5,Arrows:=0,NbPoints:=300]##
21#objet2#1-a*(1-a*x^2)^2#5##
% objet3 (Courbe param.)
3#objet3#1-a*(1-a*t^2)^2+i*t#5##
% objet4 (Courbe cartés.)
18##[Width:=2,NbPoints:=50,tMin:=-1.2,tMax:=1.2]##
21#objet4#x#5##
% objet5 (Label)
18##[LabelAngle:=10]##
8#objet5#[ 0.45-.85*i ]#$x=P(y)$##
% objet6 (Label)
18##[LabelAngle:=-70]##
8#objet6#[ -0.4+0.65*i ]#$y=P(x)$##
% objet7 (Label)
18##[LabelSize:=2,LabelAngle:=0]##
8#objet7#[ -1+1.4*i ]#$a>\frac{5}{4}$##
% objet8 (Label)
18##[LabelStyle:=10,LabelSize:=1,LabelAngle:=45]##
8#objet8#[ -0.6*(1+i) ]#$y=x$##
Encore merci.
Re: Points d'intersection de deux courbes
Re-bonsoir Eric,
Ajoute cet élément graphique utilisateur à ton fichier:
On met dans L la liste des points d'intersection des deux courbes. Pour mieux les visualiser je te les ai afficher avec leur numéro d'apparition dans la liste. Je ne sais pas trop ce que tu veux dessiner avec, mais si par exemple tu veux relier les points 11 12 13 et 14 par une ligne polygonale:
Ligne([ L[11], L[12], L[13], L[14]], 1)
ou encore
Ligne(L[11,4],1)
PS: la variable L est locale à cet élément.
Ajoute cet élément graphique utilisateur à ton fichier:
- Code:
[L:= Get(Cartesienne(1-a*(1-a*x^2)^2),0) InterL
Get(Courbe(1-a*(1-a*t^2)^2+i*t),0),
Color:=red, DotStyle:=bigdot, k:=1,
for z in L do LabelDot(z,k,"N",1), Inc(k,1) od
]
On met dans L la liste des points d'intersection des deux courbes. Pour mieux les visualiser je te les ai afficher avec leur numéro d'apparition dans la liste. Je ne sais pas trop ce que tu veux dessiner avec, mais si par exemple tu veux relier les points 11 12 13 et 14 par une ligne polygonale:
Ligne([ L[11], L[12], L[13], L[14]], 1)
ou encore
Ligne(L[11,4],1)
PS: la variable L est locale à cet élément.
Re: Points d'intersection de deux courbes
Je voudrais par exemple que les points 4, 5, 15 et 16 apparaissent avec un triangle à la place du bigdot, que les points 2, 3, 8 et apparaissent avec un carré et les points 6, 10, 12 et 14 apparaissent avec un cercle. Mais ça nécessite d'avoir à disposition de nouveaux codages graphiques des points.
Re: Points d'intersection de deux courbes
Bonjour Eric,
J'ai (enfin) compris ce que tu voulais faire avec les cercles triangles etc. Cela rejoint une question d'Alphonse sur le peu de styles de points et la nécessité de faire quelque chose pour y remédier. Je te propose la macro [drawDot( liste de points, [options] )[/b] où les options sont:
- dotstyle:= circle ou triangle ou square ou dot ou cross (dot par défaut)
- dotscale:= échelle (1 par défaut)
Voici la macro:
Voici ton fichier avec l'utilisation de cette macro:
ce qui donne:
PS: j'ai ramené le nombre de points de tes courbes de 300 à 50, cela ne change rien à la qualité, mais les fichiers exportés sont bien moins lourds! J'ai aussi changé aussi la courbe y=x en une droite.
J'ai (enfin) compris ce que tu voulais faire avec les cercles triangles etc. Cela rejoint une question d'Alphonse sur le peu de styles de points et la nécessité de faire quelque chose pour y remédier. Je te propose la macro [drawDot( liste de points, [options] )[/b] où les options sont:
- dotstyle:= circle ou triangle ou square ou dot ou cross (dot par défaut)
- dotscale:= échelle (1 par défaut)
Voici la macro:
- Code:
{drawDot( liste, [options] )
options:
dotstyle:= circle, triangle, square, dot, cross (dot par défaut)
dotscale:= échelle (1 par défaut)
}
[$circle:=3, $triangle:=4, $square:=5, dotscale:=1, dotstyle:=dot,
SaveAttr(), $aux:=Eval(String(%2)), FillStyle:=full,
$default:=0.15,
if dotstyle=circle then
for $z in %1 by 1 do
Rcercle(z,default*dotscale/1.5)
od
elif dotstyle=triangle then
for $z in %1 by 1 do
Dpolyreg(z, z+ScrCoordV(default*dotscale),3)
od
elif dotstyle=square then
for $z in %1 by 1 do
Dpolyreg(z, z+ScrCoordV(default*dotscale*exp(i*pi/4)),4)
od
elif dotstyle=dot then
FillColor:=Color,
for $z in %1 by 1 do
Rcercle(z,default*dotscale/1.5)
od
elif dotstyle=cross then
FillStyle:=none,
for $z in %1 by 1 do
Ligne( [z-ScrCoordV(default*dotscale),z+ScrCoordV(default*dotscale),jump,
z-ScrCoordV(i*default*dotscale),z+ScrCoordV(i*default*dotscale)],0)
od
fi,
RestoreAttr() ]
Voici ton fichier avec l'utilisation de cette macro:
- Code:
% TeXgraph version 1.94 beta-7.1
% Fenetre Xmin Xmax Ymin Ymax Xscale Yscale
100#-1.3#1.3#-1.3#1.3#5#5##
% Marges gauche droite haut bas cadre gestion_couleur comptgraph
101#0.5#0.5#0.5#0.5#0#1#1##
% Affectation des Variables theta et phi et type de perspective
18##[theta:=0.5236, phi:=1.0472,OriginalCoord(1),IdMatrix(),IdMatrix3D(),ModelView(ortho)]##
% Déclaration des Variables Globales
15#a#2.07##
% Déclaration des Macros
16#drawDot#{drawDot( liste, [options] )
options:
dotstyle:= circle, triangle, square, dot, cross (dot par défaut)
dotscale:= échelle (1 par défaut)
}
[$circle:=3, $triangle:=4, $square:=5, dotscale:=1, dotstyle:=dot,
SaveAttr(), $aux:=Eval(String(%2)), FillStyle:=full,
$default:=0.15,
if dotstyle=circle then
for $z in %1 by 1 do
Rcercle(z,default*dotscale/1.5)
od
elif dotstyle=triangle then
for $z in %1 by 1 do
Dpolyreg(z, z+ScrCoordV(default*dotscale),3)
od
elif dotstyle=square then
for $z in %1 by 1 do
Dpolyreg(z, z+ScrCoordV(default*dotscale*exp(i*pi/4)),4)
od
elif dotstyle=dot then
FillColor:=Color,
for $z in %1 by 1 do
Rcercle(z,default*dotscale/1.5)
od
elif dotstyle=cross then
FillStyle:=none,
for $z in %1 by 1 do
Ligne( [z-ScrCoordV(default*dotscale),z+ScrCoordV(default*dotscale),jump,
z-ScrCoordV(i*default*dotscale),z+ScrCoordV(i*default*dotscale)],0)
od
fi,
RestoreAttr()
]##
% Déclaration des Eléments graphiques
% objet1 (Axes)
18##[Arrows:=1,LabelSize:=1]##
1#objet1#[0+i*(0),0+i*(0),0+i*(0)]#0#0##
% objet2 (Courbe cartés.)
18##[Width:=5,Arrows:=0]##
21#objet2#1-a*(1-a*x^2)^2#5##
% objet3 (Courbe param.)
3#objet3#1-a*(1-a*t^2)^2+i*t#5##
% objet4 (Droite)
18##[Width:=2]##
6#objet4#[ 0,1+i ]#0#0##
% objet5 (Label)
18##[LabelAngle:=10]##
8#objet5#[ 0.45-.85*i ]#$x=P(y)$##
% objet6 (Label)
18##[LabelAngle:=-70]##
8#objet6#[ -0.4+0.65*i ]#$y=P(x)$##
% objet7 (Label)
18##[LabelSize:=2,LabelAngle:=0]##
8#objet7#[ -1+1.4*i ]#$a>\frac{5}{4}$##
% objet8 (Label)
18##[LabelStyle:=10,LabelSize:=1,LabelAngle:=45]##
8#objet8#[ -0.6*(1+i) ]#$y=x$##
% objet10 (Utilisateur)
18##[LabelStyle:=0,LabelSize:=3,LabelAngle:=0]##
14#objet10#[$L:= Get(Cartesienne(1-a*(1-a*x^2)^2)) InterL
Get(Courbe(1-a*(1-a*t^2)^2+i*t)),
Color:=red, DotStyle:=bigdot, k:=1,
{for z in L do LabelDot(z,k,"N",0), Inc(k,1) od,}
Width:=8,
drawDot(L[1,3], [dotstyle:=triangle]),
drawDot(L[4,3], [dotstyle:=circle]),
drawDot(L[7,3], [dotstyle:=dot]),
drawDot(L[10,3], [dotstyle:=square]),
drawDot(L[13,3], [dotstyle:=cross]),
]#-1##
ce qui donne:
PS: j'ai ramené le nombre de points de tes courbes de 300 à 50, cela ne change rien à la qualité, mais les fichiers exportés sont bien moins lourds! J'ai aussi changé aussi la courbe y=x en une droite.
Re: Points d'intersection de deux courbes
Superbe. Je vais analyser ton code pour remettre ensembles les points qui vont ensemble et je te reposte le tout, ça te fera un exemple de plus.
Désolé de t'embêter avec plein de demande d'un coup. Je finis la traduction que j'ai en cours par les figures (pour la proposer à des éditeurs dans la foulée).
Désolé de t'embêter avec plein de demande d'un coup. Je finis la traduction que j'ai en cours par les figures (pour la proposer à des éditeurs dans la foulée).
Re: Points d'intersection de deux courbes
Bon, j'ai un problème, TexGraph m'annonce une erreur en lecture numérique après un %, un entier est attendu. Est-ce que cela vient du fait que j'utilise la version 1.93 et que ton fichier est en version 1.94 ?
Re: Points d'intersection de deux courbes
Eric Kouris a écrit:Bon, j'ai un problème, TexGraph m'annonce une erreur en lecture numérique après un %, un entier est attendu. Est-ce que cela vient du fait que j'utilise la version 1.93 et que ton fichier est en version 1.94 ?
Effectivement, voici une version pour 1.93 (mais je te conseille de passer à la 1.94 quand tu pourras, même si c'est encore une version test):
- Code:
% TeXgraph version 1.93
% Fenetre Xmin Xmax Ymin Ymax Xscale Yscale
100#-1.3#1.3#-1.3#1.3#5#5##
% Marges gauche droite haut bas cadre gestion_couleur comptgraph
101#0.5#0.5#0.5#0.5#0#1#1##
% Affectation des Variables theta et phi
18##[theta:=0.5236, phi:=1.0472, OriginalCoord(1)]##
% Déclaration des Variables Globales
15#a#2.07##
% Déclaration des Macros
16#drawDot#{drawDot( liste, [options] )
options:
dotstyle:= circle, triangle, square, dot, cross (dot par défaut)
dotscale:= échelle (1 par défaut)
}
[$circle:=3, $triangle:=4, $square:=5, dotscale:=1, dotstyle:=dot,
SaveAttr(), $aux:=Eval(String(%2)), FillStyle:=full,
$default:=0.15,
if dotstyle=circle then
for $z in %1 do
Rcercle(z,default*dotscale/1.5)
od
elif dotstyle=triangle then
for $z in %1 do
Dpolyreg(z, z+ScrCoordV(default*dotscale),3)
od
elif dotstyle=square then
for $z in %1 do
Dpolyreg(z, z+ScrCoordV(default*dotscale*exp(i*pi/4)),4)
od
elif dotstyle=dot then
FillColor:=Color,
for $z in %1 do
Rcercle(z,default*dotscale/1.5)
od
elif dotstyle=cross then
FillStyle:=none,
for $z in %1 do
Ligne( [z-ScrCoordV(default*dotscale),z+ScrCoordV(default*dotscale),jump,
z-ScrCoordV(i*default*dotscale),z+ScrCoordV(i*default*dotscale)],0)
od
fi,
RestoreAttr()
]##
% Déclaration des Eléments graphiques
% objet1 (Axes)
18##[Arrows:=1,LabelSize:=1]##
1#objet1#[0+i*(0),0+i*(0),0+i*(0)]#0#0##
% objet2 (Courbe cartés.)
18##[Width:=5,Arrows:=0]##
21#objet2#1-a*(1-a*x^2)^2#5##
% objet3 (Courbe param.)
3#objet3#1-a*(1-a*t^2)^2+i*t#5##
% objet4 (Droite)
18##[Width:=2]##
6#objet4#[ 0,1+i ]#0#0##
% objet5 (Label)
18##[LabelAngle:=10]##
8#objet5#[ 0.45-.85*i ]#$x=P(y)$##
% objet6 (Label)
18##[LabelAngle:=-70]##
8#objet6#[ -0.4+0.65*i ]#$y=P(x)$##
% objet7 (Label)
18##[LabelSize:=2,LabelAngle:=0]##
8#objet7#[ -1+1.4*i ]#$a>\frac{5}{4}$##
% objet8 (Label)
18##[LabelStyle:=10,LabelSize:=1,LabelAngle:=45]##
8#objet8#[ -0.6*(1+i) ]#$y=x$##
% objet10 (Utilisateur)
18##[LabelStyle:=0,LabelSize:=3,LabelAngle:=0]##
14#objet10#[$L:= Get(Courbe(t+i*(1-a*(1-a*t^2)^2))) InterL
Get(Courbe(1-a*(1-a*t^2)^2+i*t)),
Color:=red, DotStyle:=bigdot, k:=1,
{for z in L do LabelDot(z,k,"N",0), Inc(k,1) od,}
Width:=8,
drawDot(L[1,3], [dotstyle:=triangle]),
drawDot(L[4,3], [dotstyle:=circle]),
drawDot(L[7,3], [dotstyle:=dot]),
drawDot(L[10,3], [dotstyle:=square]),
drawDot(L[13,3], [dotstyle:=cross]),
]
#-1##
Re: Points d'intersection de deux courbes
Ok, je suis volontaire pour passer à la 1.94 (je sais, je ne devrais pas), mais je signe où ? Je n'ai pas vu de lien pour la télécharger.
Re: Points d'intersection de deux courbes
La version test est dans la rubrique: Version à tester (sujet Version 1.94/premier post).
Re: Points d'intersection de deux courbes
J'ai installé la version 1.94, j'ai fait un copier-coller de ton code dans un élément utilisateur et j'ai encore le même problème, à savoir :
Erreur en lecture numérique après un %, un entier est attendu.
Erreur en lecture numérique après un %, un entier est attendu.
Re: Points d'intersection de deux courbes
Eric Kouris a écrit:J'ai installé la version 1.94, j'ai fait un copier-coller de ton code dans un élément utilisateur et j'ai encore le même problème, à savoir :
Erreur en lecture numérique après un %, un entier est attendu.
Salut Eric,
Le code que je t'ai donné est un fichier source, c'est à enregistrer dans un fichier *.teg! Il est normal que ce code dans un élément Utilisateur coince!
Re: Points d'intersection de deux courbes
J'allais répondre parce que je venais de comprendre où était mon erreur ... et j'arrivais exactement à ta conclusion ... Encore désolé pour le dérangement.
Re: Points d'intersection de deux courbes
Voila où j'en suis rendu et ça a presque la tête que je veux.
La question que je me pose ? Est-il possible d'avoir des cercles, carrés, triangles marquant les points d'intersection un peu plus petit ? (Je n'ai rien vu dans la doc sur une variable pour la taille de ce codage).
Encore merci ?
- Code:
% TeXgraph version 1.94 beta-7.1
% Fenetre Xmin Xmax Ymin Ymax Xscale Yscale
100#-1.3#1.3#-1.3#1.3#2#2##
% Marges gauche droite haut bas cadre gestion_couleur comptgraph
101#0.5#0.5#0#0#0#1#1##
% Affectation des Variables theta et phi et type de perspective
18##[theta:=0.5236, phi:=1.0472,OriginalCoord(1),IdMatrix(),IdMatrix3D(),ModelView(ortho)]##
% Déclaration des Variables Globales
15#a#2.1##
% Déclaration des Macros
16#drawDot#{drawDot( liste, [options] )
options:
dotstyle:= circle, triangle, square, dot, cross (dot par défaut)
dotscale:= échelle (1 par défaut)
}
[$circle:=3, $triangle:=4, $square:=5, dotscale:=1, dotstyle:=dot,
SaveAttr(), $aux:=Eval(String(%2)), FillStyle:=full,
$default:=0.15,
if dotstyle=circle then
for $z in %1 by 1 do
Rcercle(z,default*dotscale/1.5)
od
elif dotstyle=triangle then
for $z in %1 by 1 do
Dpolyreg(z, z+ScrCoordV(default*dotscale),3)
od
elif dotstyle=square then
for $z in %1 by 1 do
Dpolyreg(z, z+ScrCoordV(default*dotscale*exp(i*pi/4)),4)
od
elif dotstyle=dot then
FillColor:=Color,
for $z in %1 by 1 do
Rcercle(z,default*dotscale/1.5)
od
elif dotstyle=cross then
FillStyle:=none,
for $z in %1 by 1 do
Ligne( [z-ScrCoordV(default*dotscale),z+ScrCoordV(default*dotscale),jump,
z-ScrCoordV(i*default*dotscale),z+ScrCoordV(i*default*dotscale)],0)
od
fi,
RestoreAttr()
]##
% Déclaration des Eléments graphiques
% objet1 (Axes)
18##[Arrows:=1,LabelSize:=1]##
1#objet1#[0+i*(0),0+i*(0),0+i*(0)]#0#0##
% objet2 (Courbe cartés.)
18##[Width:=5,Arrows:=0]##
21#objet2#1-a*(1-a*x^2)^2#5##
% objet3 (Courbe param.)
3#objet3#1-a*(1-a*t^2)^2+i*t#5##
% objet4 (Droite)
18##[Width:=2]##
6#objet4#[ 0,1+i ]#0#0##
% objet5 (Label)
18##[LabelStyle:=4,LabelAngle:=8]##
8#objet5#[ 0.5-.9*i ]#$x=P(y)$##
% objet6 (Label)
18##[LabelStyle:=1,LabelAngle:=0]##
8#objet6#[ 1-0.3*i ]#$y=P(x)$##
% objet7 (Label)
18##[LabelStyle:=0,LabelSize:=2]##
8#objet7#[ -1+1.3*i ]#$a=2$##
% objet8 (Label)
18##[LabelStyle:=10,LabelSize:=1,LabelAngle:=45]##
8#objet8#[ -0.55*(1+i) ]#$y=x$##
% objet10 (Utilisateur)
18##[LabelStyle:=0,LabelSize:=3,LabelAngle:=0]##
14#objet10#[$L:= Get(Cartesienne(1-a*(1-a*x^2)^2)) InterL
Get(Courbe(1-a*(1-a*t^2)^2+i*t)),
Color:=red, k:=1,
{for z in L do LabelDot(z,k,"N",0), Inc(k,1) od,}
Width:=8,
drawDot(L[2,2], [dotstyle:=square]),
drawDot(L[8,2], [dotstyle:=square]),
drawDot(L[4,2], [dotstyle:=triangle]),
drawDot(L[15,2], [dotstyle:=triangle]),
drawDot(L[6], [dotstyle:=circle]),
drawDot(L[10], [dotstyle:=circle]),
drawDot(L[12], [dotstyle:=circle]),
drawDot(L[14], [dotstyle:=circle]),
]#-1##
La question que je me pose ? Est-il possible d'avoir des cercles, carrés, triangles marquant les points d'intersection un peu plus petit ? (Je n'ai rien vu dans la doc sur une variable pour la taille de ce codage).
Encore merci ?
Re: Points d'intersection de deux courbes
Bonsoir Eric,
La macro drawDot n'est pas dans la doc! Mais par contre dans sa définition tu verras qu'il y a deux options dont dotscale. Remplace ton objet10 par celui-ci:
Tu remarqueras qu'on peut regrouper tous les points d'un même style, et tu peux ajuster dotscale à ta guise (par défaut la taille est de 1.5mm de "rayon")
La macro drawDot n'est pas dans la doc! Mais par contre dans sa définition tu verras qu'il y a deux options dont dotscale. Remplace ton objet10 par celui-ci:
- Code:
[$L:= Get(Cartesienne(1-a*(1-a*x^2)^2)) InterL Get(Courbe(1-a*(1-a*t^2)^2+i*t)),
Color:=red, k:=1,
{for z in L do LabelDot(z,k,"N",0), Inc(k,1) od,}
Width:=8,
drawDot( [L[2,2],L[8,2]], [dotstyle:=square, dotscale:=0.66]),
drawDot( [L[4,2],L[15,2]], [dotstyle:=triangle, dotscale:=0.66]),
drawDot( [L[6],L[10],L[12],L[14]], [dotstyle:=circle, dotscale:=0.66]),
]
Tu remarqueras qu'on peut regrouper tous les points d'un même style, et tu peux ajuster dotscale à ta guise (par défaut la taille est de 1.5mm de "rayon")
Re: Points d'intersection de deux courbes
Je te remercie. J'avais bien vu le dotscale dans ton code mais, ne le trouvant pas dans la doc, j'ai préféré demander.
Dernière édition par Eric Kouris le Lun 6 Oct - 23:18, édité 1 fois
Re: Points d'intersection de deux courbes
Voila le résultat (j'ai enlevé le rouge et j'ai augmenté un peu le nombre de points, ce qui fait une différence autour des extrema des courbes).
Cela correspond aux 4-cycles de la fonction f(x)=1-ax^2 pour a=2 (en fait un peu plus pour que la figure soit lisible).
- Code:
% TeXgraph version 1.94 beta-7.1
% Fenetre Xmin Xmax Ymin Ymax Xscale Yscale
100#-1.3#1.3#-1.3#1.3#2#2##
% Marges gauche droite haut bas cadre gestion_couleur comptgraph
101#0.5#0.5#0#0#0#1#1##
% Affectation des Variables theta et phi et type de perspective
18##[theta:=0.5236, phi:=1.0472,OriginalCoord(1),IdMatrix(),IdMatrix3D(),ModelView(ortho)]##
% Déclaration des Variables Globales
15#a#2.1##
% Déclaration des Macros
16#drawDot#{drawDot( liste, [options] )
options:
dotstyle:= circle, triangle, square, dot, cross (dot par défaut)
dotscale:= échelle (1 par défaut)
}
[$circle:=3, $triangle:=4, $square:=5, dotscale:=1, dotstyle:=dot,
SaveAttr(), $aux:=Eval(String(%2)), FillStyle:=full,
$default:=0.15,
if dotstyle=circle then
for $z in %1 by 1 do
Rcercle(z,default*dotscale/1.5)
od
elif dotstyle=triangle then
for $z in %1 by 1 do
Dpolyreg(z, z+ScrCoordV(default*dotscale),3)
od
elif dotstyle=square then
for $z in %1 by 1 do
Dpolyreg(z, z+ScrCoordV(default*dotscale*exp(i*pi/4)),4)
od
elif dotstyle=dot then
FillColor:=Color,
for $z in %1 by 1 do
Rcercle(z,default*dotscale/1.5)
od
elif dotstyle=cross then
FillStyle:=none,
for $z in %1 by 1 do
Ligne( [z-ScrCoordV(default*dotscale),z+ScrCoordV(default*dotscale),jump,
z-ScrCoordV(i*default*dotscale),z+ScrCoordV(i*default*dotscale)],0)
od
fi,
RestoreAttr()
]##
% Déclaration des Eléments graphiques
% objet1 (Axes)
18##[Arrows:=1,LabelSize:=1]##
1#objet1#[0+i*(0),0+i*(0),0+i*(0)]#0#0##
% objet2 (Courbe cartés.)
18##[Width:=5,Arrows:=0,NbPoints:=150]##
21#objet2#1-a*(1-a*x^2)^2#5##
% objet3 (Courbe param.)
3#objet3#1-a*(1-a*t^2)^2+i*t#5##
% objet4 (Droite)
18##[Width:=2,NbPoints:=50]##
6#objet4#[ 0,1+i ]#0#0##
% objet5 (Label)
18##[LabelStyle:=4,LabelAngle:=8]##
8#objet5#[ 0.5-.9*i ]#$x=P(y)$##
% objet6 (Label)
18##[LabelStyle:=1,LabelAngle:=0]##
8#objet6#[ 1-0.3*i ]#$y=P(x)$##
% objet7 (Label)
18##[LabelStyle:=0,LabelSize:=2]##
8#objet7#[ -1+1.3*i ]#$a=2$##
% objet8 (Label)
18##[LabelStyle:=10,LabelSize:=1,LabelAngle:=45]##
8#objet8#[ -0.55*(1+i) ]#$y=x$##
% objet10 (Utilisateur)
18##[LabelStyle:=0,LabelSize:=3,LabelAngle:=0]##
14#objet10#[$L:= Get(Cartesienne(1-a*(1-a*x^2)^2)) InterL Get(Courbe(1-a*(1-a*t^2)^2+i*t)),
k:=1,
{for z in L do LabelDot(z,k,"N",0), Inc(k,1) od,}
Width:=8,
drawDot( [L[2,2],L[8,2]], [dotstyle:=square, dotscale:=0.66]),
drawDot( [L[4,2],L[15,2]], [dotstyle:=triangle, dotscale:=0.66]),
drawDot( [L[6],L[10],L[12],L[14]], [dotstyle:=circle, dotscale:=0.66]),
]#-1##
Cela correspond aux 4-cycles de la fonction f(x)=1-ax^2 pour a=2 (en fait un peu plus pour que la figure soit lisible).
Re: Points d'intersection de deux courbes
Très bien. Par contre on ne voit pas bien les flèches des axes, on les verrait mieux avec une épaisseur plus importante, 8 par exemple.
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum