LaTeX et courbe paramétrée ou polaire: comment la tracer? Quand on souhaite tracer une courbe paramétrée en \(\LaTeX\), on doit s’orienter vers une solution graphique, bien sûr. TiKZ à le vent en poupe par sa simplicité d’utilisation. En effet, les autres solutions graphiques, telles PSTricks ou Asymptote par exemple, peuvent sembler plus difficiles à appréhender.
Me concernant, j’utilise toujours TiKZ car je compile toujours via PdfLaTeX, et ce depuis toujours. Or, il y a quelques années, PSTricks n’offrait pas l’opportunité de compiler via PdfLaTeX (ce qui n’est plus le cas).
Je vais donc commencer par TiKZ, puis m’aventurerai en terre inconnue…
Courbe paramétrée ou polaire et LaTeX avec TiKZ
Quand on regarde le manuel de PGF, les courbes paramétrées sont systématiquement tracées à l’aide de GNUPlot… Or, moi, je n’aime pas GNUPlot. Et puis, pourquoi installer un logiciel tiers alors que l’on peut très bien tracer la plupart des courbes souhaitées ?
Il faut comprendre que nativement, PGF ne calcule pas super bien (je veux dire par là que les méthodes de calculs ne sont pas aussi précises que GNUPlot) et que c’est sans doute pour cela que l’auteur passe par un logiciel tiers.
Mais pour tracer une courbe “lambda”, nous n’avons pas besoin de calculs ultra-précis !
Exemple d’une courbe paramétrée en LaTeX avec TiKZ
Je souhaite tracer la courbe $$\begin{cases}x(t)=4\cos(t)\sin(t)\\y(t)=3\sin(t)+\cos(t)\end{cases}$$Pour cela, j’utilise le code suivant:
\documentclass{standalone} \usepackage{tikz} \begin{document} \begin{tikzpicture} \draw[dashed, gray] (-5,-5) grid (5,5); \draw[very thick, ->, >=latex] (-5,0) -- (5,0); \draw[very thick, ->, >=latex] (0,-5) -- (0,5); \draw[very thick, red] plot[domain=0:360,samples=100] ({4*cos(\x)*sin(\x)},{3*sin(\x)+cos(\x)}); \end{tikzpicture} \end{document}
qui produit le document suivant:
Comme vous pouvez le constater, je n’utilise que TiKZ.
La courbe paramétrée est définie ligne 10: pas d’appel à GNUPlot.
Autre exemple : courbe polaire en LaTeX avec TiKZ
Pour les courbes polaires, c’est aussi simple! En effet, TiKZ permet de spécifier des coordonnées polaires autant que des coordonnées cartésiennes.
J’ai envie de tracer la spirale d’équation:$$\rho(\theta)=0,005\theta.$$Pour cela, je vais utiliser le code suivant:
\documentclass{standalone} \usepackage{tikz} \begin{document} \begin{tikzpicture} \draw[dashed, gray] (-5,-5) grid (5,5); \draw[very thick, ->, >=latex] (-5,0) -- (5,0); \draw[very thick, ->, >=latex] (0,-5) -- (0,5); \draw[very thick, blue] plot[domain=0:720, samples=100] ({\x}:{0.005*\x}); \end{tikzpicture} \end{document}
J’obtiens alors:
Courbe paramétrée ou polaire et LaTeX avec PSTricks
Exemple d’une courbe paramétrée en LaTeX avec PSTricks
Je souhaite compiler toujours avec PdfLaTeX, donc j’ai besoin de faire appel à l’extension auto-pst-pdf, en passant une option :
\documentclass{standalone} \usepackage[crop=off]{auto-pst-pdf} \usepackage{pstricks-add} \begin{document} \psframebox{ % \begin{pspicture*}(-4, -4)(4,4) \psgrid[subgriddiv=0,griddots=10,gridlabels=7pt,gridcolor=gray] \parametricplot[plotstyle=curve,algebraic,linecolor=red]{0}{6.28}{4*sin(t)*cos(t) | 3*sin(t)+cos(t) } \psaxes[ticks=none]{->}(0,0)(-4,-4)(4,4) \end{pspicture*}} \end{document}
Autre exemple : avec PSTricks
\documentclass{standalone} \usepackage[crop=off]{auto-pst-pdf} \usepackage{pstricks-add} \begin{document} \begin{pspicture}(-3,-4)(4,3) \psgrid[subgriddiv=0,griddots=10,gridlabels=7pt,gridcolor=gray] \psaxes[ticks=none,labels=none]{->}(0,0)(-3,-4)(4,3)\psplot[polarplot,linecolor=blue,plotpoints=500]{0}{720}{x 0.005 mul} \end{pspicture} \end{document}
Honnêtement, je préfère de loin TiKZ car la syntaxe est à mes yeux plus naturelle. Mais chacun ses goûts !
Et les autres méthodes ?
Dans la mesure où je n’utilise pas Asymptote, ni même MetaPost, je ne peux pas vous en parler (bien sûr).
Mais il y a aussi la méthode consistant à tout faire sur GeoGebra et de l’exporter (soit en code TiKZ ou PSTRicks, pour l’insérer directement dans le code \(\LaTeX\), soit au format image et à l’insérer au format image dans le code avec la commande \includegraphics du package graphicx.