From acdf4d0066b0890c44272d207bc238da1c2d1b4e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C3=ABl=20El=20Kharroubi?=
 <michael.el-kharroubi@hesge.ch>
Date: Sun, 10 Apr 2022 12:16:09 +0200
Subject: [PATCH] Update formatting

---
 practical_work/electric_fl/enonce.md | 120 +++++++++++++++++++--------
 1 file changed, 87 insertions(+), 33 deletions(-)

diff --git a/practical_work/electric_fl/enonce.md b/practical_work/electric_fl/enonce.md
index c0befed..008d000 100644
--- a/practical_work/electric_fl/enonce.md
+++ b/practical_work/electric_fl/enonce.md
@@ -28,46 +28,92 @@ urlcolor: blue
 
 # Rappel théorique
 
-Comme nous l'avons vu en classe, chaque particule possédant une charge $Q$ induit un champs $E$ qui modifie l'espace autour d'elle. Il est possible de représenter ce champs électrique à l'aide d'un champs de vecteur. Lorsque que l'on a une seule particule chargée, chaque vecteur décrit en un point l'action induite par la particule chargée à cette distance. L'intensité de ce champs à une distance $r$ de la particule est donné par la formule suivante :
-
-$$
-E = k\frac{Q}{r^2} \qquad \mbox{avec}\ k=\frac{1}{4\pi\epsilon_0} 
-$$
-
-En ce qui concerne sa direction, si $Q>0$ alors le vecteur va chercher à s'éloigner de la particule, et si $Q<0$ alors le vecteur est dirigé vers la particule.
-
-![Champs de vecteurs représentant de champs électrique d'une charge positive. Source: Wikipédia, <https://bit.ly/3kUEcGu>.](https://upload.wikimedia.org/wikipedia/commons/f/f0/E_FieldOnePointCharge.svg){#fig:champ_e width=50%}
-
-En réalité, on rencontre souvent (très souvent) plus d'une particule chargée, dans ce cas, on se sert du principe de superposition des champs électriques. Le vecteur en un point représente alors la résultante des actions induites par chacune de nos particules chargées.
-
-Une autre représentation du champs électrique peut se faire à l'aide de courbes appelées lignes de champs.
-
-![Lignes de champs électrique reliant en présence de deux charges positives (gauche) et une charge négative et une positive (droite). Les lignes de champs sont sortantes de la charge positive, et entrantes dans la charge négative. Source: Wikipédia, <https://bit.ly/3dPsUk2>.](https://upload.wikimedia.org/wikipedia/commons/8/8f/Camposcargas.PNG){#fig:plus_minus_field width=80%}
-
-Pour réaliser cette simulation numérique, nous devons commencer par définir notre univers discret. Dans le cadre de ce travail, notre univers est un rectangle $[0,1]\times[0,1]$.
-
-Chaque particule possède une position appartenant à notre univers, ainsi qu'une charge (multiple de la charge élementaire).
-
-Pour dessiner numériquement une courbe, une méthode consiste à l'approximer à l'aide d'un ensemble de segments de droites reliant des points appartenant à cette courbe. Pour dessiner notre ligne de champs, nous devons donc trouver un ensemble de points appartenant à cette ligne. Pour cela on travaille ainsi :
+Comme nous l'avons vu en classe, chaque particule possédant une charge $Q$
+induit un champs $E$ qui modifie l'espace autour d'elle. Il est possible de
+représenter ce champs électrique à l'aide d'un champs de vecteur. Lorsque que
+l'on a une seule particule chargée, chaque vecteur décrit en un point l'action
+induite par la particule chargée à cette distance. L'intensité de ce champs à
+une distance $r$ de la particule est donné par la formule suivante :
+
+$$ E = k\frac{Q}{r^2} \qquad \mbox{avec}\ k=\frac{1}{4\pi\epsilon_0} $$
+
+En ce qui concerne sa direction, si $Q>0$ alors le vecteur va chercher à
+s'éloigner de la particule, et si $Q<0$ alors le vecteur est dirigé vers la
+particule.
+
+![Champs de vecteurs représentant de champs électrique d'une charge positive.
+Source: Wikipédia,
+<https://bit.ly/3kUEcGu>.](https://upload.wikimedia.org/wikipedia/commons/f/f0/E_FieldOnePointCharge.svg){#fig:champ_e
+width=50%}
+
+En réalité, on rencontre souvent (très souvent) plus d'une particule chargée,
+dans ce cas, on se sert du principe de superposition des champs électriques. Le
+vecteur en un point représente alors la résultante des actions induites par
+chacune de nos particules chargées.
+
+Une autre représentation du champs électrique peut se faire à l'aide de courbes
+appelées lignes de champs.
+
+![Lignes de champs électrique reliant en présence de deux charges positives
+(gauche) et une charge négative et une positive (droite). Les lignes de champs
+sont sortantes de la charge positive, et entrantes dans la charge négative.
+Source: Wikipédia,
+<https://bit.ly/3dPsUk2>.](https://upload.wikimedia.org/wikipedia/commons/8/8f/Camposcargas.PNG){#fig:plus_minus_field
+width=80%}
+
+Pour réaliser cette simulation numérique, nous devons commencer par définir
+notre univers discret. Dans le cadre de ce travail, notre univers est un
+rectangle $[0,1]\times[0,1]$.
+
+Chaque particule possède une position appartenant à notre univers, ainsi qu'une
+charge (multiple de la charge élementaire).
+
+Pour dessiner numériquement une courbe, une méthode consiste à l'approximer à
+l'aide d'un ensemble de segments de droites reliant des points appartenant à
+cette courbe. Pour dessiner notre ligne de champs, nous devons donc trouver un
+ensemble de points appartenant à cette ligne. Pour cela on travaille ainsi :
 
 1. On tire aléatoirement un point dans notre univers $P_0$.
 2. On assigne $P=P_0$
-3. On calcule $P_{suivant}$ à partir de l'intensité et la direction du champs en $P$, ce qui nous donne $P_{suivant}=P+\sum_{i}^{N}E_i\cdot\frac{\vec{q_iP}}{||\vec{q_iP}||}$ avec $\vec{q_iP}$ le vecteur allant de la particule chargée $q_i$ au point $P$. Dans notre cas, on souhaite avancer d'une même distance à chaque fois, et qui ne soit pas trop grande. On va donc commencer par normaliser le champs, puis on va ajouter une constante $\delta x$ qui est fixe pour notre programme et qui est définie en fonction de la taille de notre fenêtre. Ce qui nous donne $P_{suivant}=P+\delta x\cdot\frac{\vec{E}}{||\vec{E}||}$ avec $\delta x = \frac{1}{\sqrt{\mbox{largeur}^2+\mbox{hauteur}^2}}$ et $\vec{E} = \sum_{i}^{N}E_i\cdot\frac{\vec{q_iP}}{||\vec{q_iP}||}$.
-4. Si $P$ et $P_{suivant}$ sont à une distance des particules, supérieure à un seuil choisit et qu'ils sont toujours dans notre univers, on trace un segment entre $P$ et $P_{suivant}$. Sinon, on quitte notre boucle.
+3. On calcule $P_{suivant}$ à partir de l'intensité et la direction du champs en
+   $P$, ce qui nous donne
+   $P_{suivant}=P+\sum_{i}^{N}E_i\cdot\frac{\vec{q_iP}}{||\vec{q_iP}||}$ avec
+   $\vec{q_iP}$ le vecteur allant de la particule chargée $q_i$ au point $P$.
+   Dans notre cas, on souhaite avancer d'une même distance à chaque fois, et qui
+   ne soit pas trop grande. On va donc commencer par normaliser le champs, puis
+   on va ajouter une constante $\delta x$ qui est fixe pour notre programme et
+   qui est définie en fonction de la taille de notre fenêtre. Ce qui nous donne
+   $P_{suivant}=P+\delta x\cdot\frac{\vec{E}}{||\vec{E}||}$ avec $\delta x =
+   \frac{1}{\sqrt{\mbox{largeur}^2+\mbox{hauteur}^2}}$ et $\vec{E} =
+   \sum_{i}^{N}E_i\cdot\frac{\vec{q_iP}}{||\vec{q_iP}||}$.
+4. Si $P$ et $P_{suivant}$ sont à une distance des particules, supérieure à un
+   seuil choisit et qu'ils sont toujours dans notre univers, on trace un segment
+   entre $P$ et $P_{suivant}$. Sinon, on quitte notre boucle.
 5. On assigne $P=P_{suivant}$ et on revient à l'étape 3
 
-Cette méthode nous permet de dessiner partiellement notre ligne de champs. Comme nous partons d'un point aléatoire, il faut également dessiner le reste de la ligne en allant dans le sens opposé. Il faudra donc réitérer notre processus, en partant à nouveau de la deuxième étape, mais en calculant $P_{suivant}=P-\delta x\cdot\frac{\vec{E}}{||\vec{E}||}$.
+Cette méthode nous permet de dessiner partiellement notre ligne de champs. Comme
+nous partons d'un point aléatoire, il faut également dessiner le reste de la
+ligne en allant dans le sens opposé. Il faudra donc réitérer notre processus, en
+partant à nouveau de la deuxième étape, mais en calculant $P_{suivant}=P-\delta
+x\cdot\frac{\vec{E}}{||\vec{E}||}$.
 
 
 # Énoncé
 
-Vous allez développer une simulation de lignes de champs générée par un ensemble de particules en C, et visualiser le résultat à l'aide de la librairie SDL. Vous devez réutiliser la librairie de vecteurs en deux dimensions réalisée au premier semestre. Deux fichiers utils.h et utils.c vous seront fournis avec l'énoncé. Le fichier utils.c contient des méthodes afin de vous faciliter la réalisation de ce TP.
+Vous allez développer une simulation de lignes de champs générée par un ensemble
+de particules en C, et visualiser le résultat à l'aide de la librairie SDL. Vous
+devez réutiliser la librairie de vecteurs en deux dimensions réalisée au premier
+semestre. Deux fichiers utils.h et utils.c vous seront fournis avec l'énoncé. Le
+fichier utils.c contient des méthodes afin de vous faciliter la réalisation de
+ce TP.
 
 Ce travail va se diviser en deux parties.
 
 ## Dessin
 
-Pour pouvoir representer ce que vous allez calculer dans la deuxième partie, vous allez devoir dessiner des droites et des cercles à l'aide des méthodes présentées en cours. Pour cela vous implémenterez les fonctions suivantes :
+Pour pouvoir representer ce que vous allez calculer dans la deuxième partie,
+vous allez devoir dessiner des droites et des cercles à l'aide des méthodes
+présentées en cours. Pour cela vous implémenterez les fonctions suivantes :
 
 ```c
 typedef struct
@@ -83,16 +129,23 @@ void gfx_draw_circle(struct gfx_context_t *ctxt, coordinates_t c,
   uint32_t r, uint32_t color);
 ```
 
-Pour tester votre fonction de dessin de droites, vous dessinerez dans une fenêtre de 100x100 les droites suivantes :
+Pour tester votre fonction de dessin de droites, vous dessinerez dans une
+fenêtre de 100x100 les droites suivantes :
 
-- $(50,50) \rightarrow (75,50)$, $(50,50) \rightarrow (72,62)$, $(50,50) \rightarrow (62,72)$
-- $(50,50) \rightarrow (50,75)$, $(50,50) \rightarrow (38,72)$, $(50,50) \rightarrow (28,62)$
-- $(50,50) \rightarrow (25,50)$, $(50,50) \rightarrow (28,38)$, $(50,50) \rightarrow (37,28)$
-- $(50,50) \rightarrow (50,25)$, $(50,50) \rightarrow (62,28)$, $(50,50) \rightarrow (72,37)$
+- $(50,50) \rightarrow (75,50)$, $(50,50) \rightarrow (72,62)$, $(50,50)
+  \rightarrow (62,72)$
+- $(50,50) \rightarrow (50,75)$, $(50,50) \rightarrow (38,72)$, $(50,50)
+  \rightarrow (28,62)$
+- $(50,50) \rightarrow (25,50)$, $(50,50) \rightarrow (28,38)$, $(50,50)
+  \rightarrow (37,28)$
+- $(50,50) \rightarrow (50,25)$, $(50,50) \rightarrow (62,28)$, $(50,50)
+  \rightarrow (72,37)$
 
 ## Physique
 
-Comme nous l'avons vu durant la partie théorique, vous allez devoir calculer différents points appartenants à différentes lignes de champs. Pour cela vous implémenterez les fonctions suivantes :
+Comme nous l'avons vu durant la partie théorique, vous allez devoir calculer
+différents points appartenants à différentes lignes de champs. Pour cela vous
+implémenterez les fonctions suivantes :
 
 ```c
 typedef struct
@@ -127,5 +180,6 @@ static void draw_charges(struct gfx_context_t *context, charge_t *charges,
 
 # Travail à rendre (par groupe de deux)
 
-- Un rapport succint (moins de 6 pages) présentant le travail réalisé, avec des images de ce dernier
+- Un rapport succint (moins de 6 pages) présentant le travail réalisé, avec des
+  images de ce dernier
 - Le repos git contenant le code réalisé
-- 
GitLab