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