Introduction
Par commodité, les courbes peuvent être définies en coordonnées polaires :
Comment afficher les courbes définies en coordonnées polaires avec Latex et le package PgfPlots ?
Librairie polar
Le package PgfPlots inclut la librairie polar
pour tracer les fonctions \(\rho=f(\theta) \).
Pour importer la librairie polar
:
\usepackage{pgfplots}
\usepgfplotslibrary{polar}
La fonction \(f(\theta) \) est alors définie dans un environnement polaraxis
:
\begin{polaraxis}[]
\addplot[domain=0:360,samples=300, color=red] { f(x) };
\end{polaraxis}
Par défaut, \(x \) est en degrés.
Pour tracer en coordonnées polaires l’exemple de l’introduction \(\rho = 1 + 2 \cos \theta \) :
\documentclass[tikz]{standalone}
\usepackage{amsmath,amssymb,amsfonts}
\usepackage{pgfplots}
\usepgfplotslibrary{polar}
\pgfplotsset{compat=newest}
\pgfplotsset{every axis/.append style={
tick label style={font=\footnotesize},
}}
\begin{document}
\begin{tikzpicture}
\begin{polaraxis}[]
\addplot[domain=0:360,samples=300, color=red] {1 + 2*cos(x)};
\end{polaraxis}
\end{tikzpicture}
\end{document}
Tracé en radians (multiples de pi)
Le tracé par défaut (degrés) peut ne pas correspondre aux besoins.
- Définir le paramètre
data cs
àpolarrad
dans les paramètres du tracé si le domaine est en radians, mais garder à l’esprit que la variable \(x\) doit alors être convertie en degrés dans la fonction. - Définir
xtick distance
,xtick
etxticklabels
dans les paramètres des axes polaires pour montrer explicitement des multiples de \(\pi\) au lieu des valeurs en degrés.
\begin{tikzpicture}
\begin{polaraxis}[
xtick distance = deg(pi/4),
xtick = {0,0,deg((pi)/4),deg((pi)/2),deg((3*pi)/4),deg(pi),deg((3*pi)/2),
xticklabels={,0,$\frac{\pi}{4}$,$\frac{\pi}{2}$,$\frac{3\pi}{4}$,$\pi$,$\frac{3\pi}2$}
]
\addplot[domain=0:2*pi,samples=100,color=red,data cs=polarrad] { 1 + 2*cos(deg(x)) };
\end{polaraxis}
\end{tikzpicture}
Tracé des courbes en coordonnées polaires dans un repère cartésien
Pour afficher une courbe définie par une équation polaire dans un repère cartésien, ce qui est généralement le cas,
au lieu d’utiliser la librairie polar
,
définir data cs
à polar
dans les paramètres du tracé et donner les coordonnées (\(\theta\),\(f(\theta)\)):
\begin{tikzpicture}
\begin{axis}[
xtick distance=1, ytick distance=1,
xmin=-4, xmax=4,
ymin=-3, ymax=3,
axis lines = center]
\addplot[domain=0:360,samples=300,color=red,data cs=polar] (x,{1 + 2*cos(x)});
\end{axis}
\end{tikzpicture}
PgfPlots transforme automatiquement les coordonnées polaires au système de coordonnées de sortie.