Latex, PgfPlots - Courbes en coordonnées polaires

Logo

Introduction

Par commodité, les courbes peuvent être définies en coordonnées polaires :

$$\begin{align*} & x = \rho \cos \theta \qquad y = \rho \sin \theta \\[10pt] & \rho = 1 + 2 \cos \theta \end{align*}$$

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}
Courbes polaires, tracé par défaut

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 et xticklabels 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}
Courbes polaires, tracé en radians

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.

Courbes polaires, repère cartésien