TeXgraph - Exemples

Accueil

Cette page présente des exemples simples de quelques lignes, ceux-ci peuvent être reproduits de deux façons. La première, en copiant collant le code source à gauche du graphique, dans un document LaTeX, le contenu de ce document doit être au minimum:

    \documentclass{article}
    \usepackage{pstricks}
    \usepackage{texgraph}
    \begin{document}
    ...
    \end{document}

Il faudra éventuellement remplacer pstricks par pgf en fonction de votre export. La deuxième façon est dans l'interface graphique du logiciel, vous créez un élément graphique Utilisateur (Ctrl+U), dans la zone de Commande vous ouvrez un crochet : [, vous copiez-collez le code qui est dans l'environnement sans la ligne du begin ni celle du end, puis vous fermez le crochet : ], et vous cliquez le bouton Ok.

Axes, courbes cartésiennes et intersection

  1. \begin{texgraph}[name=courbes]
  2. view(-3*pi,3*pi,-3.5, 3.5), Marges(0,0,0,0),   size(10),
  3. tMin:=Xmin, tMax:=Xmax,
  4. Arrows:=1, Axes(0,1+i), Arrows:=0,
  5. Width:=8, Color:=red, Cartesienne(3*sin(x)),
  6. Color:=blue, periodic(x,-pi,pi),
  7. C1:=Get(Cartesienne(3*sin(x))),
  8. C2:=Get(periodic(x,-pi,pi)),
  9. DotStyle:=dotcircle, Point(C1 InterL C2)
  10. \end{texgraph}
  • Ligne 2 : on fixe la fenêtre graphique à [-3pi;3pi]x[-3.5;3.5], les marges (gauche, droite, haut et bas) sont mises à 0 cm et la taille est fixée à 10 cm sur 10 cm en conservant le ratio courant entre les deux échelles, c'est à dire que les échelles sur les deux axes vont être calculées pour que la figure remplisse au mieux un carré de 10 cm sur 10 cm.
  • Ligne 3 : on définit l'intervalle pour le paramètre servant au tracé des courbes, on prend l'intervalle des abscisses, celui-ci est défini par les deux constantes Xmin et Xmax.
  • Ligne 4 : on trace des axes se coupant au point d'affixe 0 (premier argument), et avec un pas de 1 sur les deux axes (deuxième argument 1+i), les axes seront fléchés car l'attribut Arrows a la valeur 1 au moment du tracé. Celui-ci est remis à 0 ensuite.
  • Ligne 5 : on fixe l'épaisseur des lignes à 8, l'unité étant le dixième de point, la nouvelle épaisseur sera de 0.8 pt, on sélectionne la couleur rouge, puis on trace la courbe cartésienne d'équation y=3sin(x).
  • Ligne 6 : on sélectionne le bleu et on trace la courbe représentative de la fonction périodique définie par f(x)=x sur l'intervalle [-pi;pi].
  • Ligne 7 et 8 : on récupère la liste des points des deux courbes avec la fonction Get, et on les mémorise dans deux variables locales.
  • Ligne 9 : on sélectionne un style de point et on dessine avec la fonction Point la liste des points d'intersection entre les deux courbes.

Système différentiel, changement de repère

  1. \begin{texgraph}[name=volterra]
  2. view(-5,100, -0.5,5), Marges(0.5,0.5,0.25,0),  size(10,0),
  3. axes([0,100*i,4*i],20+i,4+i,1+i),
  4. Width:=8, NbPoints:=400, z0:=2+2*i,
  5. Color:=blue, tMin:=0, tMax:=100,
  6. Seg(5+3.5*i,10+3.5*i), Label(12+3.5*i,"$x$"),
  7. EquaDif(x-y*i+x*y*(-1+i),0,z0,1), {(t,x(t))}
  8. Color:=red, Seg(5+3*i,10+3*i), Label(12+3*i,"$y$"),
  9. EquaDif(x-y*i+x*y*(-1+i),0,z0,2),  {(t,y(t))}
  10. Color:=black, Label(97.5+0.125*i,"t"),
  11. SaveWin() , view(40,100,3,5),
  12.     ChangeWinTo([-0.25*(1+i),3.25*(1+i)]),
  13.     Width:=4, Arrows:=1, axes(0,1+i), Arrows:=0,
  14.     Label(3+0.25*i,"$x$",0.25+3*i,"$y$"),
  15.     Color:=forestgreen, Width:=8,
  16.     EquaDif(x-y*i+x*y*(-1+i),0,z0,0), {(x(t),y(t))}
  17. RestoreWin() ,
  18. Color:=black, LabelStyle:=left+top,
  19. Label(5*i,"$\begin{cases}x'=x-xy\\y'=-y+xy\end{cases}$")
  20. \end{texgraph}
  • Ligne 2 et 3 : on fixe la fenêtre graphique à [-5;100]x[-0.5;5], puis les marges, puis la taille du graphique qui sera ici de 10 cm sur 10 cm, le deuxième paramètre 0 signifie que le ratio entre les échelles courantes ne sera pas conservé et donc le graphique aura exactement les dimensions demandées. On dessine les axes avec la macro axes (un peu plus sophistiquée que la commande de base Axes) les axes se coupent au point d'affixe 0, sur Ox l'intervalle sera [0;100], sur Oy il sera [0;4], le pas sera de 20 sur Ox et de 1 sur Oy, avec une subdivision en 4 morceaux sur Ox et un seul sur Oy et un placement normal du label de l'origine sur Ox et sur Oy.
  • Ligne 4 et 5 : on règle certains paramètres graphiques, NbPoints représente le nombre de points à calculer pour les courbes en général, et les variables tMin et tMax représentent l'intervalle pour le paramètre t (sauf pour les courbes implicites).
  • Ligne 6 et 7 : on trace un trait bleu avec un label à droite, puis la solution approchée du système différentiel x'=x-xy et y'=-y+xy. Pour TeXgraph une équation différentielle se met sous la forme x'(t)+iy'(t)=f(x,y,t) et la syntaxe de la fonction qui résout numériquement est EquaDif( f(x,y,t), t0, x0+i*y0, mode ) où t0 et x0+i*y0 représentent une condition initiale. Le dernier argument précise le type de résultat attendu: mode=0: on a en sortie la liste des complexes x(t)+i*y(t).
    mode=1: on a en sortie la liste des complexes t+i*x(t).
    mode=2: on a en sortie la liste des complexes t+i*y(t).
    On trace donc ici la courbe représentative de la fonction x (approchée par la méthode de Runge Kutta d'ordre 4).
  • Ligne 8 et 9 : on fait la même chose que précédemment mais en rouge et pour représenter la courbe de la fonction y.
  • Ligne 10 : on revient à la couleur noire, et on place un label.
  • Ligne 11 : on sauvegarde la fenêtre et la matrice courante, et on se place dans la zone [40;100]x[3;5].
  • Ligne 12 : on modifie la matrice courante de sorte que la fenêtre courante représente désormais la zone [-0.25;3.25]x[-0.25;3.25]. La macro ChangeWinTo prend en argument une liste de deux complexes qui représente une diagonale de la nouvelle zone, on peut imposer que cette nouvelle zone soit orthonormée en ajoutant la valeur 1 en deuxième argument.
  • Ligne 13 : on trace des axes fléchés.
  • Ligne 14 : on ajoute des labels aux axes.
  • Ligne 15 et 16 : on représente la liste des complexes x(t)+iy(t).
  • Ligne 17 et 18 : on revient à la fenêtre et à la matrice initiales, SaveWin() et RestoreWin() vont par paires, la première instruction enregistre sur une pile la fenêtre et la matrice courantes, la deuxième instruction dépile.
  • Ligne 19 : on écrit le système différentiel en haut à gauche.

Enveloppe des droites de Simson dans un triangle

  1. \begin{texgraph}[name=simson]
  2. view(-1.5,1.5,-1.5, 1.5), Marges(0,0,0,0),  size(10),
  3. A:=exp(i*6*pi/7),  B:=exp(2*i*pi/7), C:=exp(-2*i*pi/7),
  4. Width:=12, Cercle(0,1) ,
  5. Color:=red, Ligne([A,B,C],1) ,
  6. DotStyle:=dotcircle, DotScale:=1.15, Color:=blue,
  7. LabelDot(A,"$A$","NO",1), LabelDot(B,"$B$","NE",1),
  8. LabelDot(C,"$C$","SE",1), Color:=black, Width:=2,
  9. for x from 0 to 2*pi step pi/20 do
  10.     D:=exp(i*x), Droite(proj(D,[A,B]),proj(D,[A,C]))
  11. od
  12. \end{texgraph}
  • Ligne 2 : on fixe la fenêtre graphique à [-1.5;1.5]x[-1.5;1.5], on fixe les marges à 0 et la taille du graphique à 10 cm.
  • Ligne 3 : on définit trois points sur le cercle unité.
  • Ligne 4 : on dessine le cercle de centre le point d'affixe 0 et de rayon 1, avec une épaisseur de ligne de 12 (l'unité est le dixième de point de TeX, cela fait une épaisseur de 1.2 pt).
  • Ligne 5 : on trace en rouge la ligne polygonale [A,B,C], le deuxième argument égal à 1 signifie que la ligne doit être refermée (polygone).
  • Ligne 6 : on modifie le style de point, l'échelle pour les points et la couleur.
  • Ligne 7 et 8 : la macro LabelDot place un texte (deuxième argument) à l'affixe indiqué (premier argument) la position du texte par rapport au point d'ancrage est donné par le troisième argument ("NE" pour nord-est par exemple), le quatrième argument égal à 1 signifie que le point d'ancrage doit être dessiné. On dessine ainsi les trois sommets du triangle avec leur label, puis on sélectionne la couleur noire et une épaisseur de ligne égale à 2 (dixième de point).
  • Ligne 9, 10 et 11 : la variable (locale) x parcourt l'intervalle [0;2pi] de pi/20 en pi/20, pour chaque valeur on définit le point D sur le cercle trigonométrique d'affixe exp(i*x), et on trace la droite définie par le projeté orthogonal de D sur la droite (AB) et son projeté orthogonal sur la droite (AC). Cette droite passe aussi par le projeté de D sur le troisième côté, c'est la droite de Simson associée à D.

Dessins d'ensembles

  1. \begin{texgraph}[name=ensembles]
  2. view(-8,8, -8.5,8), Marges(0,0,0,0),  size(10),
  3. background(full,beige),Width:=8,
  4. A:=setB("A",-0.5*i),
  5. B:=setB("B",1.5-i, [rotation:=-30] ),
  6. C:=setB("C",-1-i*1.5, [rotation:=40]),
  7. D:=setB("D",2-3*i,[rotation:=-135]),
  8. FillOpacity:=0.6, Color:=red, FillColor:=Rgb(0.74,0.71,1),
  9. FillStyle:=full, Width:=16,
  10. L:=cupB(D,cupB(A,cupB(C,B))),  drawSet(L),
  11. Dcarre(M(-7, 6),M(-6,6) ,1),
  12. Color:=blue, FillColor:=Rgb(0.74,1,0.71),
  13. L:=cupB(capB(C,D),capB(A,B)), drawSet(L),
  14. Dcarre(M(-7, 4),M(-6,4) ,1),
  15. Color:=black, LabelStyle:=left, LabelSize:=footnotesize,
  16. Label(M(-5.75, 6.5),"$A\cup B \cup C\cup D$"),
  17. Label(M(-5.75, 4.5),"$(A\cap B) \cup (C\cap D)$")
  18. \end{texgraph}
  • Ligne 2 : on fixe la fenêtre graphique à [-8;8]x[-8.5;8], on fixe les marges à 0 et la taille du graphique à 10 cm.
  • Ligne 3 : on peint le fond avec la couleur beige et on sélectionne une épaisseur de ligne égale à 8 (soit 0.8 pt).
  • Lignes 4 à 7 : on définit et dessine en même temps quatre ensembles (A, B, C et D). La macro setB dessine un ensemble (en affichant son nom) avec des courbes de Bézier, en fonction du point d'ancrage (qui est au centre) et des options, cette macro renvoie en même temps la liste des points de contrôle correspondant au contour dessiné.
  • Lignes 8 et 9 : on modifie des attributs graphiques.
  • Ligne 10 : la macro cupB renvoie l'ensemble (liste de points de contrôle) correspondant à la réunion des deux ensembles spécifiés, la variable L contient donc la réunion des quatre ensembles A, B, C et D, puis on dessine cet ensemble.
  • Ligne 11 : on dessine le carré au bord rouge en haut à gauche. La commande M(x,y) est une autre façon de représenter le complexe x+i*y.
  • Lignes 12, 13 et 14 : on modifie des attributs graphiques, puis on calcule dans la variable L la réunion entre l'intersection de C avec D et l'intersection entre A avec B, puis on dessine L.
  • Lignes 15, 16 et 17 : on affiche les deux légendes en haut à gauche.

Haut