From fa12e98e65b6e9d33a720b8e39fe5adff2d9c0d7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C3=ABl=20El=20Kharroubi?=
 <michael.el-kharroubi@hesge.ch>
Date: Mon, 11 Apr 2022 22:31:07 +0200
Subject: [PATCH] Add pseudo codes

---
 Makefile                                  |  2 +-
 practical_work/electric_fl/Jour/cercle.md | 29 ++++++++++
 practical_work/electric_fl/Jour/ligne.md  | 68 +++++++++++++++++++++++
 practical_work/electric_fl/Soir/cercle.md | 29 ++++++++++
 practical_work/electric_fl/Soir/ligne.md  | 68 +++++++++++++++++++++++
 5 files changed, 195 insertions(+), 1 deletion(-)
 create mode 100644 practical_work/electric_fl/Jour/cercle.md
 create mode 100644 practical_work/electric_fl/Jour/ligne.md
 create mode 100644 practical_work/electric_fl/Soir/cercle.md
 create mode 100644 practical_work/electric_fl/Soir/ligne.md

diff --git a/Makefile b/Makefile
index e02faf1..115a340 100644
--- a/Makefile
+++ b/Makefile
@@ -80,7 +80,7 @@ deploy: all
 	make -C practical_work/electric_fl
 	cp practical_work/electric_fl/*.pdf phys/field_lines/
 	cp practical_work/electric_fl/*.html phys/field_lines/
-	cd practical_work/electric_fl && tar czvf utils.tar.gz utils && cp *.gz ../../phys/field_lines
+	cd practical_work/electric_fl && tar czvf utils_jour.tar.gz utils Jour && tar czvf utils_soir.tar.gz utils Soir && cp *.gz ../../phys/field_lines
 
 
 clean:
diff --git a/practical_work/electric_fl/Jour/cercle.md b/practical_work/electric_fl/Jour/cercle.md
new file mode 100644
index 0000000..76054ee
--- /dev/null
+++ b/practical_work/electric_fl/Jour/cercle.md
@@ -0,0 +1,29 @@
+```
+dessiner_cercle(xc, yc, r)
+	x = 0
+	y = r
+	d = r - 1 // r^2 + r - 0^2 - r^2 - 1
+	tant que y >= x
+		// On dessine les autres octants par symétrie
+		dessiner_pixel(xc + x, yc + y) // Deuxième octant
+		dessiner_pixel(xc + y, yc + x) // Premier octant
+		dessiner_pixel(xc +- ?, yc +- ?) // Troisième octant
+		dessiner_pixel(xc +- ?, yc +- ?) // Quatrième octant
+		
+		dessiner_pixel(xc +- ?, yc +- ?) // Septième octant
+		dessiner_pixel(xc +- ?, yc +- ?) // Huitième octant
+		dessiner_pixel(xc +- ?, yc +- ?) // Sixième octant
+		dessiner_pixel(xc +- ?, yc +- ?) // Cinquième octant
+		
+		
+		si 2x <= d // On passe au point A
+			d -= 2x + 1
+			x += 1
+		sinon si d < 2(r-y) // On passe au point B
+			d += 2y - 1
+			y -= 1
+		sinon // On passe au point C
+			d -= 2(x - y + 1)
+			y -= 1
+			x += 1
+```
diff --git a/practical_work/electric_fl/Jour/ligne.md b/practical_work/electric_fl/Jour/ligne.md
new file mode 100644
index 0000000..599e234
--- /dev/null
+++ b/practical_work/electric_fl/Jour/ligne.md
@@ -0,0 +1,68 @@
+```
+dessiner_droite(x0, y0, x1, y1)
+    dy = y1 - y0
+    dx = x1 - x0
+
+    m_dx = x0 - x1
+
+    si dy >= 0 //Octants supérieurs
+        si dy <= dx //1er octant
+            a = 2*dy
+            e = 0
+
+            y = y0
+            pour x allant de x0 à x1 avec un pas de 1
+                dessiner_pixel(x,y)
+
+                e += a
+
+                si e >= dx:
+                    y += 1
+                    e -= 2*dx
+        sinon si ? et ? // 2ème octant
+            a = 2*dx
+            e = 0
+
+            x = x0
+            pour y allant de y0 à y1 avec un pas de 1
+                dessiner_pixel(x,y)
+
+                e += a
+
+                si e >= dy:
+                    x += 1
+                    e -= 2*dy
+        sinon si dy >= m_dx // 3ème octant
+            a = ?
+            e = 0
+
+            m_dy = y0-y1
+
+            x = x0
+            pour y allant de y0 à y1 avec un pas de 1
+                dessiner_pixel(x,y)
+
+                e += a
+
+                si e <= m_dy:
+                    x -= 1
+                    e += ?
+        sinon // 4ème octant
+            dessiner_droite(?, ?, ?, ?)
+    sinon
+    	si ? <= ? // 8ème octant
+    		a = 2*dy
+            e = 0
+
+            y = y0
+            pour x allant de x0 à x1 avec un pas de 1
+                dessiner_pixel(x,y)
+
+                e += a
+
+                si e <= m_dx:
+                    y -= 1
+                    e += 2*dx
+    	sinon // Tous les autres octants
+    		dessiner_droite(x1, y1, x0, y0)
+```
\ No newline at end of file
diff --git a/practical_work/electric_fl/Soir/cercle.md b/practical_work/electric_fl/Soir/cercle.md
new file mode 100644
index 0000000..449bf6a
--- /dev/null
+++ b/practical_work/electric_fl/Soir/cercle.md
@@ -0,0 +1,29 @@
+```
+dessiner_cercle(xc, yc, r)
+	x = 0
+	y = r
+	d = r - 1 // r^2 + r - 0^2 - r^2 - 1
+	tant que y >= x
+		// On dessine les autres octants par symétrie
+		dessiner_pixel(xc + x, yc + y) // Deuxième octant
+		dessiner_pixel(xc + y, yc + x) // Premier octant
+		dessiner_pixel(xc - x, yc + y) // Troisième octant
+		dessiner_pixel(xc - y, yc + x) // Quatrième octant
+		
+		dessiner_pixel(xc + x, yc - y) // Septième octant
+		dessiner_pixel(xc + y, yc - x) // Huitième octant
+		dessiner_pixel(xc - x, yc - y) // Sixième octant
+		dessiner_pixel(xc - y, yc - x) // Cinquième octant
+		
+		
+		si 2x <= d // On passe au point A
+			d -= 2x + 1
+			x += 1
+		sinon si d < 2(r-y) // On passe au point B
+			d += 2y - 1
+			y -= 1
+		sinon // On passe au point C
+			d -= 2(x - y + 1)
+			y -= 1
+			x += 1
+```
\ No newline at end of file
diff --git a/practical_work/electric_fl/Soir/ligne.md b/practical_work/electric_fl/Soir/ligne.md
new file mode 100644
index 0000000..44c37ca
--- /dev/null
+++ b/practical_work/electric_fl/Soir/ligne.md
@@ -0,0 +1,68 @@
+```
+dessiner_droite(x0, y0, x1, y1)
+    dy = y1 - y0
+    dx = x1 - x0
+
+    m_dx = x0 - x1
+
+    si dy >= 0 //Octants supérieurs
+        si dy <= dx //1er octant
+            a = 2*dy
+            e = 0
+
+            y = y0
+            pour x allant de x0 à x1 avec un pas de 1
+                dessiner_pixel(x,y)
+
+                e += a
+
+                si e >= dx:
+                    y += 1
+                    e -= 2*dx
+        sinon si (0<=dx) et (dx < dy) // 2ème octant
+            a = 2*dx
+            e = 0
+
+            x = x0
+            pour y allant de y0 à y1 avec un pas de 1
+                dessiner_pixel(x,y)
+
+                e += a
+
+                si e >= dy:
+                    x += 1
+                    e -= 2*dy
+        sinon si dy >= m_dx // 3ème octant
+            a = 2*dx
+            e = 0
+
+            m_dy = y0-y1
+
+            x = x0
+            pour y allant de y0 à y1 avec un pas de 1
+                dessiner_pixel(x,y)
+
+                e += a
+
+                si e <= m_dy:
+                    x -= 1
+                    e += 2*dy
+        sinon // 4ème octant
+            dessiner_droite(x1, y1, x0, y0)
+    sinon
+    	si m_dx <= dy // 8ème octant
+    		a = 2*dy
+            e = 0
+
+            y = y0
+            pour x allant de x0 à x1 avec un pas de 1
+                dessiner_pixel(x,y)
+
+                e += a
+
+                si e <= m_dx:
+                    y -= 1
+                    e += 2*dx
+    	sinon // Tous les autres octants
+    		dessiner_droite(x1, y1, x0, y0)
+```
\ No newline at end of file
-- 
GitLab