{ "cells": [ { "cell_type": "markdown", "metadata": { "toc": true }, "source": [ "

Table of Contents

\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Titre de l'oral : « *Comment dessiner des droites sur un écran d'ordinateur ?* »\n", "## Texte d'oral de modélisation, agrég maths option D \"Droite Discrète\" (public 2012 D5)\n", "\n", "> Voir : [cette page](https://agreg.org/index.php?id=option-d) et [ce texte (public2012-D5.pdf)](https://agreg.org/Textes/public2012-D5.pdf) :\n", "> **2012-D5** À partir du problème de la représentation des droites sur un écran d’ordinateur, on étudie la notion de droite discrète, et le mot binaire périodique associé. On met en évidence la relation biunivoque entre droites discrètes et certains mots binaires, puis entre ces mots et les nombres rationnels de [0, 1]. Mots clefs : algorithmes, géométrie discrète, mots binaires, topologie.\n", "\n", "- Auteur : [Lilian Besson](https://github.com/Naereen/)\n", "- Écrit en Python 3\n", "- License : [MIT Licensed](https://lbesson.mit-license.org/)\n", "- Date : 25/01/2021 (j'avais écrit [une solution en OCaml en 2014](https://github.com/Naereen/notebooks/tree/master/agreg/public2012_D5_OCaml.ipynb))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Introduction\n", "\n", "Donner un petit discours d'introduction :\n", "\n", "> On cherche à dessiner des courbes mathématiques sur un écran d'ordinateur. Pour simplifier l'exposé, on ne va considérer que des écrans quadrillés, où chaque case est un \"pixel\", et aussi on se restreint à des graphismes en noir et blanc. Ainsi, un écran est un tableau 2D, une matrice, de pixels, et chaque pixel est soit éteint, soit allumé.\n", "> Si on cherche à tracer une courbe mathématique, par exemple une droite, un cercle ou d'autres courbes plus compliquée, sur un tel écran d'ordinateur, on va devoir décider quels pixels allumer ou garder éteint, le long du tracé de la courbe.\n", "> [faire un dessin au tableau]\n", "\n", "> Pour commencer, on va uniquement s'intéresser au cas d'une droite, qui va du pixel O=(0,0) tout en bas à droite de l'écran, jusqu'à un autre point B=(b1,b2) de l'écran (à coordonnées entières, donc), situé à droite et en haut de l'origine O.\n", "> On pose $\\alpha=b2/b1 \\in \\mathbb{R} \\cup \\{\\pm\\infty\\}$ la pente de cette droite.\n", "\n", "> Comme on le voit, si la courbe est un cas particulier très facile, il n'y a pas de difficultés particulières.\n", "> Les cas faciles sont les courbes horizontales, de pente $1$ ou verticales, soit $\\alpha \\in \\{0,1,\\infty\\}$.\n", "> Dans les autres cas, la pente est toujours rationnelle, mais en général elle ne sera pas entière.\n", "> Nous allons d'abord étudier le cas particulier d'une pente $\\alpha < 1$, mais il est très facile de généraliser aux sept autres quadrants [faire un dessin], avec des rotations, et en échangeant le point de départ A et l'arrivée B.\n", "\n", "> Nous formalisons le problème, en faisant le lien entre les coordonnées réelles des points $M_i = (x_i,y_i)$ sur la droite [AB], qui sont $x_i = i$ et $y_i \\in \\mathbb{R}$ peut être réel et même irrationnels, et les points $(x_i, \\tilde{y_i})$ qui sont les coordonnées\n", "> (par convention, le point de référence des pixels est le point en bas à gauche)\n", "\n", "> Nous présenterons et implémenterons trois différentes méthodes, qui ont toute la même complexité algorithmique, mais qui donnent des tracés différents dans le cas d'une droite quelconque.\n", "\n", "> \n", "\n", "**Plan** : voir table des matières pour le détail. [écrire au tableau]\n", "\n", "- I) *Introduction*\n", "- II) Tracé de droites, formalisation\n", "- III) Trois méthodes différentes : algorithmes, implémentations, exemples *[visualisation si le temps ?]*\n", "- IV) Mathématiques des droites discrètes\n", "- V) Mots binaires\n", "- VI) Liens entre les (pentes) rationnels et les mots binaires *[si le temps ?]*\n", "- VII) *Conclusion et ouvertures*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Tracé de droites, formalisation\n", "AU TABLEAU" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Formalisation, et hypothèses" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Présentation du problème\n", "\n", "TODO\n", "\n", "TL;DR : on cherche des algorithmes qui évitent de calculer des erreurs sur des nombres réels, parce qu'on sait que les flottants propagent des erreurs de calculs." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Généralisation au delà de ces hypothèses ?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Trois méthodes différentes : algorithmes, implémentations, exemples " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Implémentation de l'exercice de programmation\n", "\n", "ATTENTION depuis 2019, l'*exercice de programmation obligatoire* qui était indiqué dans les anciens textes d'option D est devenu, comme pour les autres options A/B/C, une simple *suggestion*.\n", "- Avant 2019, il fallait absolument implémenter l'exercice demandé, et éventuellement faire plus ;\n", "- Maintenant, on fait ce qu'on veut. Le jury n'a pas encore diffusé de texte suivant la nouvelle consigne, donc je vous conseille l'approche suivante : pour les vieux textes, il faut juste remplacer *exercice de programmation obligatoire* par *suggestion de programmation*." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "> Écrire un programme permettant de représenter le segment [AB], où A= (a1,a2) et B=(b1,b2), en suivant l’algorithme de Bresenham. On supposera que a1 La sortie du programme sera la liste des couples (xi,yi) des points représentant le segment." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Un bidouillage avec Python : un \"wrapper\" qui gère les symétries, pour ne pas avoir à les coder plusieurs fois\n", "\n", "On peut écrire un décorateur Python qui se charge de gérer toutes les symétries, afin de ne pas à avoir à copier-coller ça pour les méthodes suivantes." ] }, { "cell_type": "code", "execution_count": 198, "metadata": { "ExecuteTime": { "end_time": "2021-01-24T22:37:28.131968Z", "start_time": "2021-01-24T22:37:28.109997Z" }, "code_folding": [ 0, 22, 30, 39, 56 ] }, "outputs": [], "source": [ "def gerersymetrie(nom=\"\"):\n", " def decorator(f):\n", " def g(A, B):\n", " a1, a2 = int(A[0]), int(A[1])\n", " b1, b2 = int(B[0]), int(B[1])\n", " # on commence à traiter les symétries\n", "\n", " if a1 == b1:\n", " # il faut renvoyer une droite verticale, facile à faire\n", " if b2 < a2:\n", " print(f\"{nom} (avant symétries) avec une pente = -oo\")\n", " return g(B, A)\n", " # OK maintenant b2 >= a2\n", " print(f\"{nom} (avant symétries) avec une pente = +oo\")\n", " points = [\n", " (a1, a2 + i) for i in range(b2 - a2 + 1)\n", " # droite verticale, même x, y change\n", " ]\n", " return points\n", "\n", " pente = float(b2-a2) / float(b1-a1)\n", "\n", " if a1 > b1: # cas facile !\n", " print(f\"{nom} (avant symétries) avec une pente = {pente}\")\n", " return g(B, A)\n", "\n", " # OK maintenant a1 < b1\n", " # vérification des hypothèses 1/2\n", " assert a1 < b1, f\"Erreur : {nom} demande a1 = {a1} < a2 = {b1}.\"\n", "\n", " if pente > 1: # cas plus difficile, il faudra calculer une symétrie\n", " # --> i) symétrie % axe horizontal\n", " Bx = [B[1], B[0]]\n", " print(f\"{nom} (avant symétries) avec une pente = {pente}\")\n", " points = g(A, Bx)\n", " # <-- i) symétrie % droite {(x,x)}\n", " points = [ (y, x) for (x,y) in points ]\n", " return points\n", "\n", " if a2 > b2: # cas plus difficile, il faudra calculer une symétrie\n", " Ax = [0,0]\n", " # --> i) translation =>\n", " Bx = [b1 - a1, b2 - a2]\n", " # --> --> ii) symétrie % axe horizontal\n", " Bxx = [Bx[0], -Bx[1]]\n", " print(f\"{nom} (avant symétries) avec une pente = {pente}\")\n", " points = g(Ax, Bxx)\n", " # <-- <-- ii) symétrie % axe horizontal\n", " points = [ (x, -y) for (x,y) in points ]\n", " # <-- i) translation <=\n", " points = [ (x + a1, y + a2) for (x,y) in points ]\n", " return points\n", " \n", " # cas de base, on propage\n", " return f(A, B)\n", "\n", " if f.__doc__:\n", " g.__doc__ = f.__doc__\n", " g.__nom__ = nom\n", " # maintenant on a un wrapper g(A,B) qui gère les symétries\n", " return g\n", " # et voilà on a un decorateur\n", " return decorator" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Maintenant on peut écrire la méthode de Bresenham, en gérant uniquement le cas qui nous arrange :" ] }, { "cell_type": "code", "execution_count": 199, "metadata": { "ExecuteTime": { "end_time": "2021-01-24T22:37:29.348723Z", "start_time": "2021-01-24T22:37:29.338102Z" } }, "outputs": [], "source": [ "# cette ligne fait que la fonction finale va gérer les symétries !\n", "@gerersymetrie(nom=\"Méthode de Bresenham\")\n", "def methode_bresenham(A, B):\n", " \"\"\" Méthode de Bresenham.\n", " \n", " - Si N = |A B| longueur du segment, cette fonction tourne en temps O(N) et en mémoire O(N)\n", " N = max(n, m) avec m = |b2 - a2| et n = |b1 - a1| nb de déplacement sur l'axe horizontal/vertical\n", "\n", " - Fonctionne dans tous les cas, supporte les huit quadrants, les quatre demi-droites,\n", " et le cas spécial A==B, en exploitant les symétries et se ramener au cas de base :\n", " a1 < b1, b2 <= a2 (pente = (b2-a2)/(b1-a1) = alpha, 0 <= alpha <= 1)\n", " \"\"\"\n", " a1, a2 = int(A[0]), int(A[1])\n", " b1, b2 = int(B[0]), int(B[1])\n", "\n", " pente = float(b2-a2) / float(b1-a1)\n", "\n", " # vérification des hypothèses 2/2\n", " assert 0 <= pente <= 1, f\"Erreur : la méthode de Bresenham demande 0 <= pente = {pente} <= 1.\"\n", " print(f\"Méthode de Bresenham (après symétries éventuelles) avec une pente 0 <= pente = {pente} <= 1\")\n", "\n", " points = []\n", " points.append(A) # premier point A\n", "\n", " nombre_point = b1 - a1 # c'est le n du texte\n", " pente_normalise = b2 - a2 # le m du texte = b2-a2, c'est la pente normalisée alpha*n\n", " xi = int(a1)\n", " yi = int(a2)\n", " ei = 0\n", " \n", " for i in range(1, nombre_point):\n", " xi += 1\n", "\n", " # cette partie spécifique à Bresenham, et change selon les trois méthodes\n", " if 2 * ( ei + pente_normalise ) <= nombre_point:\n", " ei += pente_normalise\n", " yi += 0 # inutile, juste pour le montrer\n", " else:\n", " ei += pente_normalise - nombre_point\n", " yi += 1\n", "\n", " points.append((xi, yi))\n", " \n", " # et dernier point B\n", " points.append(B)\n", " return points" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exemples : deux premiers quadrants, deux premières demi-droites" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Avec une pente $\\alpha=1$, tous les `yi += O/1` seront `yi += 1` :" ] }, { "cell_type": "code", "execution_count": 200, "metadata": { "ExecuteTime": { "end_time": "2021-01-24T22:37:29.598475Z", "start_time": "2021-01-24T22:37:29.591847Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Méthode de Bresenham (après symétries éventuelles) avec une pente 0 <= pente = 1.0 <= 1\n", "[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4)]\n" ] } ], "source": [ "A = (0, 0)\n", "B = (4, 4) # pente 1\n", "print(methode_bresenham(A, B))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Avec une pente $\\alpha=0$, tous les `yi += O/1` seront `yi += 0` :" ] }, { "cell_type": "code", "execution_count": 201, "metadata": { "ExecuteTime": { "end_time": "2021-01-24T22:37:29.889802Z", "start_time": "2021-01-24T22:37:29.883263Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Méthode de Bresenham (après symétries éventuelles) avec une pente 0 <= pente = 0.0 <= 1\n", "[(0, 0), (1, 0), (2, 0), (3, 0), (4, 0)]\n" ] } ], "source": [ "A = (0, 0)\n", "B = (4, 0) # pente 0\n", "print(methode_bresenham(A, B))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Avec une pente $0 < \\alpha < 1$, tous les `yi += O/1` suivent la méthode de Bresenham :" ] }, { "cell_type": "code", "execution_count": 202, "metadata": { "ExecuteTime": { "end_time": "2021-01-24T22:37:29.889802Z", "start_time": "2021-01-24T22:37:29.883263Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Méthode de Bresenham (après symétries éventuelles) avec une pente 0 <= pente = 0.75 <= 1\n", "[(0, 0), (1, 1), (2, 1), (3, 2), (4, 3)]\n" ] } ], "source": [ "A = (0, 0)\n", "B = (4, 3) # pente 3/4\n", "print(methode_bresenham(A, B))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Avec une pente $1 < \\alpha < +\\infty$, ce sont maintenant les `yi += 1` mais les `xi += O/1` qui suivent la méthode de Bresenham :" ] }, { "cell_type": "code", "execution_count": 203, "metadata": { "ExecuteTime": { "end_time": "2021-01-24T22:37:30.095535Z", "start_time": "2021-01-24T22:37:30.087219Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Méthode de Bresenham (avant symétries) avec une pente = 1.3333333333333333\n", "Méthode de Bresenham (après symétries éventuelles) avec une pente 0 <= pente = 0.75 <= 1\n", "[(0, 0), (1, 1), (1, 2), (2, 3), (3, 4)]\n" ] } ], "source": [ "A = (0, 0)\n", "B = (3, 4) # pente 4/3\n", "print(methode_bresenham(A, B))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Avec une pente $\\alpha = -\\infty$, ce sont maintenant les `yi += 1` et tous les `xi += O/1` sont des `+= 1` :" ] }, { "cell_type": "code", "execution_count": 204, "metadata": { "ExecuteTime": { "end_time": "2021-01-24T22:37:30.270888Z", "start_time": "2021-01-24T22:37:30.263713Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Méthode de Bresenham (avant symétries) avec une pente = +oo\n", "[(0, 0), (0, 1), (0, 2), (0, 3), (0, 4)]\n" ] } ], "source": [ "A = (0, 0)\n", "B = (0, 4) # pente +infini\n", "print(methode_bresenham(A, B))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Autres exemples : six autre premiers quadrants, deux autres demi-droites\n", "\n", "On fera ces autres exemples quand on aura les deux autres méthodes." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Deux autres méthodes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Une fois que l'on aura écrit la méthode de Bresenham, on peut rapidement implémenter deux autres approches qui consistent en longer au plus près inférieurement, supérieurement." ] }, { "cell_type": "code", "execution_count": 206, "metadata": { "ExecuteTime": { "end_time": "2021-01-24T22:37:30.766758Z", "start_time": "2021-01-24T22:37:30.764023Z" } }, "outputs": [], "source": [ "from math import floor, ceil" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Longer au plus près inférieurement" ] }, { "cell_type": "code", "execution_count": 207, "metadata": { "ExecuteTime": { "end_time": "2021-01-24T22:37:31.210056Z", "start_time": "2021-01-24T22:37:31.200399Z" } }, "outputs": [], "source": [ "@gerersymetrie(nom=\"Méthode de longer au plus près inférieurement\")\n", "def methode_longer_inferieurement(A, B):\n", " \"\"\" Méthode de longer au plus près inférieurement.\n", " \n", " - Si N = |A B| longueur du segment, cette fonction tourne en temps O(N) et en mémoire O(N)\n", " N = max(n, m) avec m = |b2 - a2| et n = |b1 - a1| nb de déplacement sur l'axe horizontal/vertical\n", "\n", " - Fonctionne dans tous les cas, supporte les huit quadrants, les quatre demi-droites,\n", " et le cas spécial A==B, en exploitant les symétries et se ramener au cas de base :\n", " a1 < b1, b2 <= a2 (pente = (b2-a2)/(b1-a1) = alpha, 0 <= alpha <= 1)\n", " \"\"\"\n", " a1, a2 = int(A[0]), int(A[1])\n", " b1, b2 = int(B[0]), int(B[1])\n", "\n", " pente = float(b2-a2) / float(b1-a1)\n", "\n", " # vérification des hypothèses 2/2\n", " assert 0 <= pente <= 1, f\"Erreur : la méthode de longer au plus près inférieurement demande 0 <= pente = {pente} <= 1.\"\n", " print(f\"Méthode de longer au plus près inférieurement (après symétries éventuelles) avec une pente 0 <= pente = {pente} <= 1\")\n", "\n", " points = []\n", " points.append(A) # premier point A\n", "\n", " nombre_point = b1 - a1 # c'est le n du texte\n", " pente_normalise = b2 - a2 # le m du texte = b2-a2, c'est la pente normalisée alpha*n\n", " xi = int(a1)\n", " yi = int(a2)\n", " ei = 0\n", " \n", " for i in range(1, nombre_point):\n", " xi += 1\n", " # cette partie est spécifique à cette méthode\n", " yi = floor(a2 + pente*i)\n", "\n", " points.append((xi, yi))\n", " \n", " # et dernier point B\n", " points.append(B)\n", " return points" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Longer au plus près supérieurement" ] }, { "cell_type": "code", "execution_count": 208, "metadata": { "ExecuteTime": { "end_time": "2021-01-24T22:37:31.986722Z", "start_time": "2021-01-24T22:37:31.979352Z" }, "code_folding": [ 1 ] }, "outputs": [], "source": [ "@gerersymetrie(nom=\"Méthode de longer au plus près supérieurement\")\n", "def methode_longer_superieurement(A, B):\n", " \"\"\" Méthode de longer au plus près supérieurement.\n", " \n", " - Si N = |A B| longueur du segment, cette fonction tourne en temps O(N) et en mémoire O(N)\n", " N = max(n, m) avec m = |b2 - a2| et n = |b1 - a1| nb de déplacement sur l'axe horizontal/vertical\n", "\n", " - Fonctionne dans tous les cas, supporte les huit quadrants, les quatre demi-droites,\n", " et le cas spécial A==B, en exploitant les symétries et se ramener au cas de base :\n", " a1 < b1, b2 <= a2 (pente = (b2-a2)/(b1-a1) = alpha, 0 <= alpha <= 1)\n", " \"\"\"\n", " a1, a2 = int(A[0]), int(A[1])\n", " b1, b2 = int(B[0]), int(B[1])\n", "\n", " pente = float(b2-a2) / float(b1-a1)\n", "\n", " # vérification des hypothèses 2/2\n", " assert 0 <= pente <= 1, f\"Erreur : la méthode de longer au plus près supérieurement demande 0 <= pente = {pente} <= 1.\"\n", " print(f\"Méthode de longer au plus près supérieurement (après symétries éventuelles) avec une pente 0 <= pente = {pente} <= 1\")\n", "\n", " points = []\n", " points.append(A) # premier point A\n", "\n", " nombre_point = b1 - a1 # c'est le n du texte\n", " pente_normalise = b2 - a2 # le m du texte = b2-a2, c'est la pente normalisée alpha*n\n", " xi = int(a1)\n", " yi = int(a2)\n", " ei = 0\n", " \n", " for i in range(1, nombre_point):\n", " xi += 1\n", " # cette partie est spécifique à cette méthode\n", " yi = ceil(a2 + pente*i)\n", "\n", " points.append((xi, yi))\n", " \n", " # et dernier point B\n", " points.append(B)\n", " return points" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Une dernière méthode ?\n", "\n", "On peut aussi longer la droite aléatoirement, en prenant inférieurement ou supérieurement uniformément au hasard.\n", "Cela n'a pas d'intérêt particulier, mais c'est rapide à écrire alors autant le faire :" ] }, { "cell_type": "code", "execution_count": 209, "metadata": { "ExecuteTime": { "end_time": "2021-01-24T22:37:32.339027Z", "start_time": "2021-01-24T22:37:32.333454Z" } }, "outputs": [], "source": [ "import random" ] }, { "cell_type": "code", "execution_count": 210, "metadata": { "ExecuteTime": { "end_time": "2021-01-24T22:37:32.486088Z", "start_time": "2021-01-24T22:37:32.478159Z" } }, "outputs": [ { "data": { "text/plain": [ "[0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0]" ] }, "execution_count": 210, "metadata": {}, "output_type": "execute_result" } ], "source": [ "[ random.randint(0, 1) for _ in range(20) ]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On peut facilement remplacer le calcul de $\\tilde{y_i}$ par simplement un choix aléatoire uniforme entre le choix floor et le choix ceil :" ] }, { "cell_type": "code", "execution_count": 347, "metadata": { "ExecuteTime": { "end_time": "2021-01-24T23:20:52.877379Z", "start_time": "2021-01-24T23:20:52.866203Z" } }, "outputs": [], "source": [ "@gerersymetrie(nom=\"Méthode de longer aléatoirement\")\n", "def methode_longer_aleatoirement(A, B):\n", " \"\"\" Méthode de longer aléatoirement.\n", " \n", " - Si N = |A B| longueur du segment, cette fonction tourne en temps O(N) et en mémoire O(N)\n", " N = max(n, m) avec m = |b2 - a2| et n = |b1 - a1| nb de déplacement sur l'axe horizontal/vertical\n", "\n", " - Fonctionne dans tous les cas, supporte les huit quadrants, les quatre demi-droites,\n", " et le cas spécial A==B, en exploitant les symétries et se ramener au cas de base :\n", " a1 < b1, b2 <= a2 (pente = (b2-a2)/(b1-a1) = alpha, 0 <= alpha <= 1)\n", " \"\"\"\n", " a1, a2 = int(A[0]), int(A[1])\n", " b1, b2 = int(B[0]), int(B[1])\n", "\n", " pente = float(b2-a2) / float(b1-a1)\n", "\n", " # vérification des hypothèses 2/2\n", " assert 0 <= pente <= 1, f\"Erreur : la méthode de longer aléatoirement demande 0 <= pente = {pente} <= 1.\"\n", " print(f\"Méthode de longer aléatoirement (après symétries éventuelles) avec une pente 0 <= pente = {pente} <= 1\")\n", "\n", " points = []\n", " points.append(A) # premier point A\n", "\n", " nombre_point = b1 - a1 # c'est le n du texte\n", " pente_normalise = b2 - a2 # le m du texte = b2-a2, c'est la pente normalisée alpha*n\n", " xi = int(a1)\n", " yi = int(a2)\n", " ei = 0\n", " \n", " for i in range(1, nombre_point):\n", " xi += 1\n", " # cette partie est spécifique à cette méthode\n", " if random.randint(0, 1) == 0:\n", " yi = floor(a2 + pente*i)\n", " else:\n", " yi = ceil(a2 + pente*i)\n", " # écrire cela est aussi possible\n", " # yi += random.randint(0, 1) # TODO\n", "\n", " points.append((xi, yi))\n", " \n", " # et dernier point B\n", " points.append(B)\n", " return points" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exemples : deux premiers quadrants, deux premières demi-droites" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Avec une pente $\\alpha=1$, tous les `yi += O/1` seront `yi += 1` :" ] }, { "cell_type": "code", "execution_count": 212, "metadata": { "ExecuteTime": { "end_time": "2021-01-24T22:37:33.292404Z", "start_time": "2021-01-24T22:37:33.284199Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Méthode de longer au plus près inférieurement (après symétries éventuelles) avec une pente 0 <= pente = 1.0 <= 1\n", "[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4)]\n", "Méthode de longer au plus près supérieurement (après symétries éventuelles) avec une pente 0 <= pente = 1.0 <= 1\n", "[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4)]\n", "Méthode de longer aléatoirement (après symétries éventuelles) avec une pente 0 <= pente = 1.0 <= 1\n", "[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4)]\n" ] } ], "source": [ "A = (0, 0)\n", "B = (4, 4) # pente 1\n", "print(methode_longer_inferieurement(A, B))\n", "print(methode_longer_superieurement(A, B))\n", "print(methode_longer_aleatoirement(A, B))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Avec une pente $\\alpha=0$, tous les `yi += O/1` seront `yi += 0` :" ] }, { "cell_type": "code", "execution_count": 213, "metadata": { "ExecuteTime": { "end_time": "2021-01-24T22:37:33.641823Z", "start_time": "2021-01-24T22:37:33.633142Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Méthode de longer au plus près inférieurement (après symétries éventuelles) avec une pente 0 <= pente = 0.0 <= 1\n", "[(0, 0), (1, 0), (2, 0), (3, 0), (4, 0)]\n", "Méthode de longer au plus près supérieurement (après symétries éventuelles) avec une pente 0 <= pente = 0.0 <= 1\n", "[(0, 0), (1, 0), (2, 0), (3, 0), (4, 0)]\n", "Méthode de longer aléatoirement (après symétries éventuelles) avec une pente 0 <= pente = 0.0 <= 1\n", "[(0, 0), (1, 0), (2, 0), (3, 0), (4, 0)]\n" ] } ], "source": [ "A = (0, 0)\n", "B = (4, 0) # pente 0\n", "print(methode_longer_inferieurement(A, B))\n", "print(methode_longer_superieurement(A, B))\n", "print(methode_longer_aleatoirement(A, B))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Avec une pente $0 < \\alpha < 1$, tous les `yi += O/1` suivent la méthode choisie :" ] }, { "cell_type": "code", "execution_count": 214, "metadata": { "ExecuteTime": { "end_time": "2021-01-24T22:37:33.994500Z", "start_time": "2021-01-24T22:37:33.985254Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Méthode de longer au plus près inférieurement (après symétries éventuelles) avec une pente 0 <= pente = 0.75 <= 1\n", "[(0, 0), (1, 0), (2, 1), (3, 2), (4, 3)]\n", "Méthode de longer au plus près supérieurement (après symétries éventuelles) avec une pente 0 <= pente = 0.75 <= 1\n", "[(0, 0), (1, 1), (2, 2), (3, 3), (4, 3)]\n", "Méthode de longer aléatoirement (après symétries éventuelles) avec une pente 0 <= pente = 0.75 <= 1\n", "[(0, 0), (1, 0), (2, 2), (3, 3), (4, 3)]\n" ] } ], "source": [ "A = (0, 0)\n", "B = (4, 3) # pente 3/4\n", "print(methode_longer_inferieurement(A, B))\n", "print(methode_longer_superieurement(A, B))\n", "print(methode_longer_aleatoirement(A, B))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Avec une pente $1 < \\alpha < +\\infty$, ce sont maintenant les `yi += 1` mais les `xi += O/1` qui suivent la méthode choisie :" ] }, { "cell_type": "code", "execution_count": 215, "metadata": { "ExecuteTime": { "end_time": "2021-01-24T22:37:34.337779Z", "start_time": "2021-01-24T22:37:34.327759Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Méthode de longer au plus près inférieurement (avant symétries) avec une pente = 1.3333333333333333\n", "Méthode de longer au plus près inférieurement (après symétries éventuelles) avec une pente 0 <= pente = 0.75 <= 1\n", "[(0, 0), (0, 1), (1, 2), (2, 3), (3, 4)]\n", "Méthode de longer au plus près supérieurement (avant symétries) avec une pente = 1.3333333333333333\n", "Méthode de longer au plus près supérieurement (après symétries éventuelles) avec une pente 0 <= pente = 0.75 <= 1\n", "[(0, 0), (1, 1), (2, 2), (3, 3), (3, 4)]\n", "Méthode de longer aléatoirement (avant symétries) avec une pente = 1.3333333333333333\n", "Méthode de longer aléatoirement (après symétries éventuelles) avec une pente 0 <= pente = 0.75 <= 1\n", "[(0, 0), (1, 1), (2, 2), (3, 3), (3, 4)]\n" ] } ], "source": [ "A = (0, 0)\n", "B = (3, 4) # pente 4/3\n", "print(methode_longer_inferieurement(A, B))\n", "print(methode_longer_superieurement(A, B))\n", "print(methode_longer_aleatoirement(A, B))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Avec une pente $\\alpha = -\\infty$, ce sont maintenant les `yi += 1` et tous les `xi += O/1` sont des `+= 1` :" ] }, { "cell_type": "code", "execution_count": 216, "metadata": { "ExecuteTime": { "end_time": "2021-01-24T22:37:34.681052Z", "start_time": "2021-01-24T22:37:34.672852Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Méthode de longer au plus près inférieurement (avant symétries) avec une pente = +oo\n", "[(0, 0), (0, 1), (0, 2), (0, 3), (0, 4)]\n", "Méthode de longer au plus près supérieurement (avant symétries) avec une pente = +oo\n", "[(0, 0), (0, 1), (0, 2), (0, 3), (0, 4)]\n", "Méthode de longer aléatoirement (avant symétries) avec une pente = +oo\n", "[(0, 0), (0, 1), (0, 2), (0, 3), (0, 4)]\n" ] } ], "source": [ "A = (0, 0)\n", "B = (0, 4) # pente +infini\n", "print(methode_longer_inferieurement(A, B))\n", "print(methode_longer_superieurement(A, B))\n", "print(methode_longer_aleatoirement(A, B))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Autres exemples : six autre premiers quadrants, deux autres demi-droites\n", "\n", "On fera ces autres exemples quand on aura les deux autres méthodes." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Quadrant #3, b1 < a1 mais b2 > a2 et b2 >= b1 :" ] }, { "cell_type": "code", "execution_count": 217, "metadata": { "ExecuteTime": { "end_time": "2021-01-24T22:37:35.192068Z", "start_time": "2021-01-24T22:37:35.182237Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Méthode de Bresenham (avant symétries) avec une pente = -1.3333333333333333\n", "Méthode de Bresenham (avant symétries) avec une pente = -1.3333333333333333\n", "Méthode de Bresenham (avant symétries) avec une pente = 1.3333333333333333\n", "Méthode de Bresenham (après symétries éventuelles) avec une pente 0 <= pente = 0.75 <= 1\n", "[(-3, 4), (-2, 3), (-2, 2), (-1, 1), (0, 0)]\n", "Méthode de longer au plus près inférieurement (avant symétries) avec une pente = -1.3333333333333333\n", "Méthode de longer au plus près inférieurement (avant symétries) avec une pente = -1.3333333333333333\n", "Méthode de longer au plus près inférieurement (avant symétries) avec une pente = 1.3333333333333333\n", "Méthode de longer au plus près inférieurement (après symétries éventuelles) avec une pente 0 <= pente = 0.75 <= 1\n", "[(-3, 4), (-3, 3), (-2, 2), (-1, 1), (0, 0)]\n", "Méthode de longer au plus près supérieurement (avant symétries) avec une pente = -1.3333333333333333\n", "Méthode de longer au plus près supérieurement (avant symétries) avec une pente = -1.3333333333333333\n", "Méthode de longer au plus près supérieurement (avant symétries) avec une pente = 1.3333333333333333\n", "Méthode de longer au plus près supérieurement (après symétries éventuelles) avec une pente 0 <= pente = 0.75 <= 1\n", "[(-3, 4), (-2, 3), (-1, 2), (0, 1), (0, 0)]\n", "Méthode de longer aléatoirement (avant symétries) avec une pente = -1.3333333333333333\n", "Méthode de longer aléatoirement (avant symétries) avec une pente = -1.3333333333333333\n", "Méthode de longer aléatoirement (avant symétries) avec une pente = 1.3333333333333333\n", "Méthode de longer aléatoirement (après symétries éventuelles) avec une pente 0 <= pente = 0.75 <= 1\n", "[(-3, 4), (-2, 3), (-2, 2), (-1, 1), (0, 0)]\n" ] } ], "source": [ "A = (0, 0)\n", "B = (-3, 4) # pente -4/3\n", "print(methode_bresenham(A, B))\n", "print(methode_longer_inferieurement(A, B))\n", "print(methode_longer_superieurement(A, B))\n", "print(methode_longer_aleatoirement(A, B))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Quadrant #4, b1 < a1 mais b2 > a2 et b2 < b1 :" ] }, { "cell_type": "code", "execution_count": 218, "metadata": { "ExecuteTime": { "end_time": "2021-01-24T22:37:35.701745Z", "start_time": "2021-01-24T22:37:35.693358Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Méthode de Bresenham (avant symétries) avec une pente = -0.75\n", "Méthode de Bresenham (avant symétries) avec une pente = -0.75\n", "Méthode de Bresenham (après symétries éventuelles) avec une pente 0 <= pente = 0.75 <= 1\n", "[(-4, 3), (-3, 2), (-2, 2), (-1, 1), (0, 0)]\n", "Méthode de longer au plus près inférieurement (avant symétries) avec une pente = -0.75\n", "Méthode de longer au plus près inférieurement (avant symétries) avec une pente = -0.75\n", "Méthode de longer au plus près inférieurement (après symétries éventuelles) avec une pente 0 <= pente = 0.75 <= 1\n", "[(-4, 3), (-3, 3), (-2, 2), (-1, 1), (0, 0)]\n", "Méthode de longer au plus près supérieurement (avant symétries) avec une pente = -0.75\n", "Méthode de longer au plus près supérieurement (avant symétries) avec une pente = -0.75\n", "Méthode de longer au plus près supérieurement (après symétries éventuelles) avec une pente 0 <= pente = 0.75 <= 1\n", "[(-4, 3), (-3, 2), (-2, 1), (-1, 0), (0, 0)]\n", "Méthode de longer aléatoirement (avant symétries) avec une pente = -0.75\n", "Méthode de longer aléatoirement (avant symétries) avec une pente = -0.75\n", "Méthode de longer aléatoirement (après symétries éventuelles) avec une pente 0 <= pente = 0.75 <= 1\n", "[(-4, 3), (-3, 2), (-2, 2), (-1, 1), (0, 0)]\n" ] } ], "source": [ "A = (0, 0)\n", "B = (-4, 3) # pente -3/4\n", "print(methode_bresenham(A, B))\n", "print(methode_longer_inferieurement(A, B))\n", "print(methode_longer_superieurement(A, B))\n", "print(methode_longer_aleatoirement(A, B))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Quadrant #5 :" ] }, { "cell_type": "code", "execution_count": 219, "metadata": { "ExecuteTime": { "end_time": "2021-01-24T22:37:36.204290Z", "start_time": "2021-01-24T22:37:36.197039Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Méthode de Bresenham (avant symétries) avec une pente = 0.75\n", "Méthode de Bresenham (après symétries éventuelles) avec une pente 0 <= pente = 0.75 <= 1\n", "[(-4, -3), (-3, -2), (-2, -2), (-1, -1), (0, 0)]\n", "Méthode de longer au plus près inférieurement (avant symétries) avec une pente = 0.75\n", "Méthode de longer au plus près inférieurement (après symétries éventuelles) avec une pente 0 <= pente = 0.75 <= 1\n", "[(-4, -3), (-3, -3), (-2, -2), (-1, -1), (0, 0)]\n", "Méthode de longer au plus près supérieurement (avant symétries) avec une pente = 0.75\n", "Méthode de longer au plus près supérieurement (après symétries éventuelles) avec une pente 0 <= pente = 0.75 <= 1\n", "[(-4, -3), (-3, -2), (-2, -1), (-1, 0), (0, 0)]\n", "Méthode de longer aléatoirement (avant symétries) avec une pente = 0.75\n", "Méthode de longer aléatoirement (après symétries éventuelles) avec une pente 0 <= pente = 0.75 <= 1\n", "[(-4, -3), (-3, -2), (-2, -2), (-1, -1), (0, 0)]\n" ] } ], "source": [ "A = (0, 0)\n", "B = (-4, -3) # pente -3/-4\n", "print(methode_bresenham(A, B))\n", "print(methode_longer_inferieurement(A, B))\n", "print(methode_longer_superieurement(A, B))\n", "print(methode_longer_aleatoirement(A, B))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Quadrant #6 :" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "ExecuteTime": { "end_time": "2021-01-24T22:37:40.248836Z", "start_time": "2021-01-24T22:37:36.685560Z" } }, "outputs": [], "source": [ "A = (0, 0)\n", "B = (-3, -4) # pente -4/-3\n", "print(methode_bresenham(A, B))\n", "print(methode_longer_inferieurement(A, B))\n", "print(methode_longer_superieurement(A, B))\n", "print(methode_longer_aleatoirement(A, B))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**TODO fix this bug?**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Quadrant #7 :" ] }, { "cell_type": "code", "execution_count": 348, "metadata": { "ExecuteTime": { "end_time": "2021-01-24T23:21:12.538573Z", "start_time": "2021-01-24T23:21:12.529799Z" }, "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Méthode de Bresenham (avant symétries) avec une pente = -1.3333333333333333\n", "Méthode de Bresenham (avant symétries) avec une pente = 1.3333333333333333\n", "Méthode de Bresenham (après symétries éventuelles) avec une pente 0 <= pente = 0.75 <= 1\n", "[(0, 0), (1, -1), (1, -2), (2, -3), (3, -4)]\n", "Méthode de longer au plus près inférieurement (avant symétries) avec une pente = -1.3333333333333333\n", "Méthode de longer au plus près inférieurement (avant symétries) avec une pente = 1.3333333333333333\n", "Méthode de longer au plus près inférieurement (après symétries éventuelles) avec une pente 0 <= pente = 0.75 <= 1\n", "[(0, 0), (0, -1), (1, -2), (2, -3), (3, -4)]\n", "Méthode de longer au plus près supérieurement (avant symétries) avec une pente = -1.3333333333333333\n", "Méthode de longer au plus près supérieurement (avant symétries) avec une pente = 1.3333333333333333\n", "Méthode de longer au plus près supérieurement (après symétries éventuelles) avec une pente 0 <= pente = 0.75 <= 1\n", "[(0, 0), (1, -1), (2, -2), (3, -3), (3, -4)]\n", "Méthode de longer aléatoirement (avant symétries) avec une pente = -1.3333333333333333\n", "Méthode de longer aléatoirement (avant symétries) avec une pente = 1.3333333333333333\n", "Méthode de longer aléatoirement (après symétries éventuelles) avec une pente 0 <= pente = 0.75 <= 1\n", "[(0, 0), (0, -1), (2, -2), (3, -3), (3, -4)]\n" ] } ], "source": [ "A = (0, 0)\n", "B = (3, -4) # pente 3/-4\n", "print(methode_bresenham(A, B))\n", "print(methode_longer_inferieurement(A, B))\n", "print(methode_longer_superieurement(A, B))\n", "print(methode_longer_aleatoirement(A, B))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Quadrant #8 :" ] }, { "cell_type": "code", "execution_count": 349, "metadata": { "ExecuteTime": { "end_time": "2021-01-24T23:21:14.780806Z", "start_time": "2021-01-24T23:21:14.770766Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Méthode de Bresenham (avant symétries) avec une pente = -0.75\n", "Méthode de Bresenham (après symétries éventuelles) avec une pente 0 <= pente = 0.75 <= 1\n", "[(0, 0), (1, -1), (2, -1), (3, -2), (4, -3)]\n", "Méthode de longer au plus près inférieurement (avant symétries) avec une pente = -0.75\n", "Méthode de longer au plus près inférieurement (après symétries éventuelles) avec une pente 0 <= pente = 0.75 <= 1\n", "[(0, 0), (1, 0), (2, -1), (3, -2), (4, -3)]\n", "Méthode de longer au plus près supérieurement (avant symétries) avec une pente = -0.75\n", "Méthode de longer au plus près supérieurement (après symétries éventuelles) avec une pente 0 <= pente = 0.75 <= 1\n", "[(0, 0), (1, -1), (2, -2), (3, -3), (4, -3)]\n", "Méthode de longer aléatoirement (avant symétries) avec une pente = -0.75\n", "Méthode de longer aléatoirement (après symétries éventuelles) avec une pente 0 <= pente = 0.75 <= 1\n", "[(0, 0), (1, 0), (2, -2), (3, -3), (4, -3)]\n" ] } ], "source": [ "A = (0, 0)\n", "B = (4, -3) # pente 4/-3\n", "print(methode_bresenham(A, B))\n", "print(methode_longer_inferieurement(A, B))\n", "print(methode_longer_superieurement(A, B))\n", "print(methode_longer_aleatoirement(A, B))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "## Visualisation ? *[si le temps]*\n", "\n", "Ca ne devrait pas être trop compliqué :\n", "\n", "- il faut pouvoir donner la pente, comme un rationnel ou un flottant,\n", "- et les points [M0,...,MN] donné avec leurs coordonnées (en général, M0=A=O=(0,0) et MN=B=(b1,b2)),\n", "- et afficher la courbe et les pixels allumés, comme des gros rectangles." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "ExecuteTime": { "end_time": "2021-01-24T22:37:40.257693Z", "start_time": "2021-01-24T22:37:38.432Z" } }, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "\n", "# https://matplotlib.org/3.2.1/api/_as_gen/matplotlib.patches.Rectangle.html?highlight=rectangle#matplotlib.patches.Rectangle\n", "from matplotlib.patches import Rectangle" ] }, { "cell_type": "code", "execution_count": 288, "metadata": { "ExecuteTime": { "end_time": "2021-01-24T22:57:35.050035Z", "start_time": "2021-01-24T22:57:35.030259Z" }, "code_folding": [ 22 ] }, "outputs": [], "source": [ "def plot_discrete_line(points=None, # liste des coordonnées [M0,...,MN]\n", " A=None, B=None,\n", " methodes=[], # liste de fonctions à utiliser pour calculer les points, si absents\n", " title=\"Dessin d'une droite discrète\",\n", " width=50, height=None,\n", " figsize=(10,7),\n", " linewidth=2,\n", " fill=True,\n", " edgecolors=['r'],\n", " facecolors=None,\n", " alpha=0.4,\n", " linecolor='k',\n", " equal=True,\n", " pente=None,\n", " ):\n", " fig = plt.figure(figsize=figsize)\n", "\n", " if equal: plt.axis('equal')\n", " if not facecolors: facecolors = edgecolors\n", " if not height: height = width\n", " \n", " use_fake_methode = False\n", " if not methodes:\n", " use_fake_methode = True\n", " def fake_methode(A, B): return points\n", " fake_methode.__nom__ = \"Fake method XXX\"\n", " methodes = [fake_methode]\n", "\n", " for i, methode in enumerate(methodes):\n", " points = methode(A, B)\n", " \n", " # points in P should be ordored, but not restricted to Mi = (xi, yi) with xi=i\n", " min_x = min(p[0] for p in points)\n", " max_x = max(p[0] for p in points)\n", " plt.xlim((min_x - 0.2)*width, (max_x + 1 + 0.2)*width)\n", " min_y = min(p[1] for p in points)\n", " max_y = max(p[1] for p in points)\n", " plt.ylim((min_y - 0.2)*height, (max_y + 1 + 0.2)*height)\n", "\n", " # plot the points as big rectangles\n", " for p in points:\n", " x, y = p\n", " rect = Rectangle(\n", " (x*width, y*height),\n", " width, height,\n", " linewidth=linewidth,\n", " edgecolor=edgecolors[i], facecolor=facecolors[i],\n", " alpha=alpha, fill=fill,\n", " )\n", " plt.gca().add_patch(rect)\n", " \n", " _xs = np.linspace(min_x, max_x, 2000)\n", " _ys = np.linspace(min_y, max_y, 2000)\n", "\n", " # Trick to add a legend?\n", " plt.plot(\n", " _xs[:2]*width, _ys[:2]*width,\n", " color=edgecolors[i], label=methode.__nom__\n", " )\n", " \n", " # plot the line\n", " plt.plot(_xs*width, _ys*width, color=linecolor, linewidth=1+linewidth)\n", " \n", "\n", " if not use_fake_methode:\n", " plt.legend()\n", " if title:\n", " if pente and \"pente\" not in title:\n", " if not isinstance(pente, str):\n", " pente = \"{:.3g}\".format(pente)\n", " title += \" de pente = ${}$\".format(pente)\n", " plt.title(title)\n", "\n", " fig.tight_layout()\n", " plt.show()\n", " # return fig" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exemples manuels :" ] }, { "cell_type": "code", "execution_count": 279, "metadata": { "ExecuteTime": { "end_time": "2021-01-24T22:54:48.962578Z", "start_time": "2021-01-24T22:54:48.793803Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "points = [ (0,0), (1,1), (2,2), (3,3), (4,4) ]\n", "\n", "plot_discrete_line(points, pente=1.0)" ] }, { "cell_type": "code", "execution_count": 280, "metadata": { "ExecuteTime": { "end_time": "2021-01-24T22:54:49.440571Z", "start_time": "2021-01-24T22:54:49.116356Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlYAAAGtCAYAAADUGDpYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAAeFklEQVR4nO3de5RlZ1kn4N9LLkiDJDBgBkLaYJLRgVajBMxEiOGiXAaMl3DTZTMOQ0eHeBsduTij6OCa6FrKyCisdASCzEBgVGJwMIgkrCaDXCUGSIzpQGISQjrIJVxC6KS++ePsDkV3VXV11XfqXOp51jrrnPPtXXu/+6udql+/e59KtdYCAMD63WvSBQAAzAvBCgCgE8EKAKATwQoAoBPBCgCgE8EKAKATwQoAoBPBCgCgE8EKOqmqj1fVGR22c0FVvXz9FfW13rp6zc8y276ntnHtp6q+qareWVU/3nvbS+xrKs8B4OAEK+ZSVV1fVXdU1Rer6vNV9d6q+pmqGts531p7ZGvt3b23OxzL8b23u9EWz89wTE8a9346b/erSX4kyY6qOnnxsnEez7SY1DFW1QOr6q1V9eWquqGqfmKFdd9dVV+tqi8Nj2s2slZIksMnXQCM0TNaa39TVUcl+YEkf5Dk+5L89GTLmi9VdXhr7a5J1zEui4+vtfblJE+ecEmbzR8l+VqSY5KcnOT/VtXft9Y+vsz657TW/nijioP96Vgx91prX2itXZzk2UmeV1XbkqSqHlpVf1ZVt1XVJ6vq5/d9TVW9qKpuHjpe11TVE1caH5bd8y/64fWvVNWVVfWFqnpzVX3TUvVV1fdU1d8N23xzkiXXG9ZtVXXiovffcMnoYPtd6ZgPpa5hPy+qqiuTfLmqDq+qfz10DD4/XI774f22d31VPamq3pBka5K3DV2FXx1DbU9a9H657+VxVfXnw/7+uar+8CDHt7i+66vql4Z1x308q97OotpfUlVXVdXnqup1+86Bg21rufOnxzGuRVXdN8mPJ/mvrbUvtdYuT3Jxkp/quR/oqrXm4TF3jyTXJ3nSEuP/lORnM/pHxYeT/HqSI5N8W5JPZNSN+PYkNyZ56PA1xyc5YbnxpfY5vP5AkocmeWCSq5P8zBL1HJnkhiS/lOSIJGcl2Zvk5cscV0ty4qL3Fyxed6X9rnTMh1rXsJ8rkhyX5D7DOruTvHT42ick+WKSb19hfp60aFnv2vbtZ7nv5WFJ/j7JK5LcN6Mg89j9al18fPvq+80k905y4rDOvx3n8RzKdvar/WND7Q9M8v9Wu62sfP6s+RiH9f8yyeeXefzlMl/zPUm+st/YryR52zLrvzvJbUk+Mxz3GZP+WeSx+R46Vmw2n8roF8ajkzy4tfZbrbWvtdY+keT8JM9JcndGvzwfUVVHtNaub61dt8L4cl7ZWvtUa+2zSd6W0WWM/Z2a0S/T/9Fa29ta+9MkH1znMS6335WOeS11vbK1dmNr7Y5h/fslOXfY9qUZ/SJ97ipr7l3bPst9zx6TUXj4z621L7fWvtpG3ZDlju/RGV2Kellr7c7W2u4kO5M8c8zHcyjbWewPh9o/m+S3M/o+rHZbqzlvD7m21trTW2tHL/N4+jL7uF+S2/cb+0KSb15m/RdlFPCOzej787aqOmGZdWEs3GPFZnNsks8m+dYkD62qzy9adliS97TWdlfVLyZ5WZJHVtU7kvynFcY/tcy+Pr3o9Vcy+kW+v4cmubm11haN3XCoB7XK/S57zGus68b91r+xtbaw3/rHrrLm3rUlSZb7nmXUzbmhrXxv2OLj+9YMHZyq2jd27yQfGfPxHMp2lqv9hmEfq93Was7b9dR2KL6U5P77jd0/o27oAVpr71/09vVV9dwkT0vyPzvWBCsSrNg0qurRGf2ivzyjfwl/srV20lLrttbemOSNVXX/JOcl+Z0kP7Xc+DrKuiXJsVVVi36xbk2yXCfsK0m2LHr/L5PctMp93ZgVjnkNdS0OAp9KclxV3WtRuNqa5B+X2X7b733v2r6+o6W/Z69KsrVWvvF+cY03JrmltfYdq1h33/o9judQtrPYcYteb83o+7PWbe2znmNMVf1Vkscts/g9rbWnLjH+j0kOr6qTWmvXDmPfnWS5G9f315LUQdeCjlwKZO5V1f2r6ulJLkzyv1prH83oPpIvDjco36eqDquqbVX16Kr69qp6QlXdO8lXk9yRZGG58XWW97dJ7kry81V1RFX9WEaXqZZzRZKfGOp9SkafdlytZY+5Q13vzyj0/eqw/hlJnpHRnC/l1owu2Yy1thW+Zx/IKNCcW1X3HW7Q/v4Vju8DSb5QVS9dpr5xHc+hbGexF1bVw6rqgUl+Lcmb17GtfdZzjGmtPbW1dr9lHkuFqrTRpzD/PMlvDd+n709yZpI37L9uVR1dVU8evpeHV9VPJjk9ySWrPD7oQrBinr2tqr6Y0b+sfy3J72f4UwuttbuTPD2j+0c+mdHNrn+c5KiMLvGcO4x9Osm3JHnJCuNr1lr7WpIfS/LvMrpE+eyMfpEs5xcyCiyfT/KTSS46hH2tdMzrqmtY/xlJnjps91VJtrfW/mGZL/nvSf5LjT5B+CtjrG3J79mwv2dkdBP6P2XU9Xv2Cse3r77vXKa+sRzPoWxnP29M8tcZ3Ux+XUY39q91W/us+RjX6T9m9AGCPUnelORn26I/tVBVf1VVL83oPrWX5+s3r/9ckh9prS3XNYWxqG+8rA/ALKuq65P8h9ba30y6FtiMdKwAADoRrAAAOnEpEACgEx0rAIBOpuLvWD3oQQ9qxx9//KTLAAA4qA9/+MOfaa09eKllUxGsjj/++HzoQx+adBkAAAdVVcv+HzJcCgQA6ESwAgDoRLACAOhEsAIA6ESwAgDoRLACAOhEsAIA6ESwAgDoRLACAOhEsAIA6ESwAgDoRLACAOhEsAIA6ESwAgDoRLACAOhEsAIA6ESwAgDoRLACAOhEsAIA6ESwAgDoRLACAOhEsAIA6ESwAgDoRLACAOhEsAIA6ESwAgDoRLACAOhEsAIA6ESwAgDoRLACAOhEsAIA6ESwAgDoRLACAOhEsAIA6ESwAgDoRLACAOhEsAIA6ESwAgDoRLACAOhEsAIA6ESwAgDoRLACAOhEsAIA6ESwAgDoRLACAOhEsAIA6ESwAgDoRLACAOhEsAIA6ESwAgDoRLACAOhEsAIA6ESwAgDoRLACAOhEsAIA6ESwAgDoRLACAOhEsAIA6ESwAgDoRLACAOjkoMGqql5bVXuq6mOLxl5WVTdX1RXD42mLlr2kqnZX1TVV9eRxFQ4AMG1W07G6IMlTlhh/RWvt5OHx9iSpqkckeU6SRw5f86qqOqxXsQAA0+zwg63QWttVVcevcntnJrmwtXZnkk9W1e4kj0nyt2svEYCJ27lz0hXMl127Rs+nnz7ZOubNjh2TruDgwWoF51TV9iQfSvLLrbXPJTk2yfsWrXPTMHaAqtqRZEeSbN26dR1lALAh9oUB1u/aayddwfyZkpC61mD16iT/LUkbnn8vyb8/lA201nYm2Zkkp5xySltjHQBspCn55TXz9gUr89nHFIX+NX0qsLV2a2vt7tbaQpLzM7rclyQ3Jzlu0aoPG8YAAObemoJVVT1k0dsfTbLvE4MXJ3lOVd27qh6e5KQkH1hfiQAAs+GglwKr6k1JzkjyoKq6KclvJDmjqk7O6FLg9UnOTpLW2ser6i1JrkpyV5IXttbuHkvlAABTZjWfCnzuEsOvWWH9307y2+spCgBgFvnL6wAAnQhWAACdCFYAAJ0IVgAAnQhWAACdCFYAAJ0IVgAAnQhWAACdCFYAAJ0IVgAAnQhWAACdCFYAAJ0IVgAAnQhWAACdCFYAAJ0IVgAAnQhWAACdCFYAAJ0IVgAAnQhWAACdCFYAAJ0IVgAAnQhWAACdCFYAAJ0IVgAAnQhWAACdCFYAAJ0IVgAAnQhWAACdCFYAAJ0IVgAAnQhWAACdCFYAAJ0IVgAAnQhWAACdCFYAAJ0IVgAAnQhWAACdCFYAAJ0IVgAAnQhWAACdCFYAAJ0IVgAAnQhWAACdCFYAAJ0IVgAAnQhWAACdCFYAAJ0IVgAAnQhWAACdCFYAAJ0IVgAAnQhWAACdCFYAAJ0IVgAAnQhWAACdCFYAAJ0IVgAAnQhWAACdCFYAAJ0IVgAAnQhWAACdCFYAAJ0IVgAAnQhWAACdCFYAAJ0IVgAAnQhWAACdCFYAAJ0IVgAAnQhWAACdCFYAAJ0IVgAAnQhWAACdCFYAAJ0cNFhV1Wurak9VfWzR2AOr6p1Vde3w/IBhvKrqlVW1u6qurKrvHWfxADCLFlrLJ++8c9JlMAar6VhdkOQp+429OMm7WmsnJXnX8D5JnprkpOGxI8mr+5QJALNvz+2353cuuST/6sorc9pVV2Xv3XdPuiQ6O/xgK7TWdlXV8fsNn5nkjOH165O8O8mLhvE/aa21JO+rqqOr6iGttVu6VQzzaufOSVcwX3btGj2ffvpk65gXu3Yl11476Spm0kJruezWW3Petdfmoptuyt6FhXuWXfymN+XHt26dYHX0dtBgtYxjFoWlTyc5Znh9bJIbF6130zB2QLCqqh0ZdbWy1UkFI/vCAOsnBPR17bXJSScJqodgz+2353XvfW/Ov/zyXHfbbQcsP+qII3LbcceZ0zmz1mB1j9Zaq6q2hq/bmWRnkpxyyimH/PUwt/yQ7WNfsDKf/Zx+erJjx6SrmGoLCwu57LLLct555+Wiiy7K3r17D1jntNNOy44dO/LMZz4zW7ZsmUCVjNNag9Wt+y7xVdVDkuwZxm9Octyi9R42jAHA3NqzZ09e97rX5fzzz8911113wPKjjjoq27dvz44dO7Jt27YJVMhGWWuwujjJ85KcOzz/xaLxc6rqwiTfl+QL7q8CYB7pTrGUgwarqnpTRjeqP6iqbkryGxkFqrdU1fOT3JDkWcPqb0/ytCS7k3wlyU+PoWYAmBjdKVaymk8FPneZRU9cYt2W5IXrLQoAponuFKu17pvXAWBe6U5xqAQrAFhEd4r1EKwAILpT9CFYAbBp6U7Rm2AFwKajO8W4CFYAbAq6U2wEwQqAuaY7xUYSrACYO7pTTIpgBcDc0J1i0gQrAGaa7hTTRLACYCbpTjGNBCsAZobuFNNOsAJg6ulOMSsEKwCmku4Us0iwAmCq6E4xywQrACZOd4p5IVgBMDG6U8wbwQqADaU7xTwTrADYELpTbAaCFQBjozvFZiNYAdCd7hSblWAFQBe6UyBYAbBOulPwdYIVAIdMdwqWJlgBsGq6U7AywQqAFS0sLOSyT3865+3cmYvOOUd3ClYgWAGwpD23357Xvfe9Of/yy3PdbbcdsFx3Cg4kWAFwj4WFhVx2zTU57z3vyUVXXJG9d999wDq6U7A8wQqAg3enjjgi2x/72Ox45St1p2AFghXAJrWq7tQJJ2TH4x6XZ95xR7Y84QmJUAUrEqwANpmDdqfuc59sP/XU7Hjc47Lt2GNHg7t2bXCVMJsEK4BN4JC6U496VLYceeQEqoTZJ1gBzLE1daeANROsAOaM7hRMjmAFMCd0p2DyBCuAGaY7BdNFsAKYQbpTMJ0EK4AZoTsF00+wAphyulMwOwQrgCmkOwWzSbACmCK6UzDbBCuACdOdgvkhWAFMiO4UzB/BCmAD6U7BfBOsADaA7hRsDoIVwJjoTsHmI1gBdKY7BZuXYAXQge4UkAhWAOuiOwUsJlgBHCLdKWA5ghXAKulOAQcjWAGsQHcKOBSCFcASdKeAtRCsAAa6U8B6CVbApqc7BfQiWAGbku4UMA6CFbCp6E4B4yRYAXNPdwrYKIIVMLf27N2b111yie4UsGEEK2Cu3NOd2r07F33uc9n7kY8csI7uFDAughUwF9w7BUwDwQqYWe6dAqaNYAXMnFV1p+5//+x48IOz7ed+bgIVApuVYAXMhEPuTr3hDROoEtjsBCtgqrl3CpglghUwddw7BcwqwQqYGrpTwKwTrICJ0p0C5olgBUyE7hQwjwQrYMPoTgHzTrACxk53CtgsBCtgLHSngM1IsAK60p0CNjPBClg33SmAkXUFq6q6PskXk9yd5K7W2ilV9cAkb05yfJLrkzyrtfa59ZUJTCPdKYBv1KNj9fjW2mcWvX9xkne11s6tqhcP71/UYT/AFNCdAljeOC4FnpnkjOH165O8O9MUrHbunHQF82XXrtHz6adPto55sGtXcu21k65iWbfecUcu+MQncv7u3bnuS186YPlRRxyR7d/2bdlx4onZdvTRyd69yfvet/GF7m/fOQqwAdYbrFqSv66qluS81trOJMe01m4Zln86yTFLfWFV7UiyI0m2bt26zjIOkR+0/UxxEJg5116bnHTSVIXUhYWFXHrNNdk5y92pKZpPYP6tN1g9trV2c1V9S5J3VtU/LF7YWmtD6DrAEMJ2Jskpp5yy5Dpj5YdtH/uClfns4/TTkx07Jl1Fbr311lxwwQU5//zzc9111x2w/Oijj8727dvzghe8INu2bZtAhaswBfMIbD7rClattZuH5z1V9dYkj0lya1U9pLV2S1U9JMmeDnUCY7awsJBLL700O3fuzEUXXZS9e/cesM5pp52Ws88+O2eddVa2bNkygSoBptuag1VV3TfJvVprXxxe/1CS30pycZLnJTl3eP6LHoUC4zEX3SmAKbGejtUxSd5aVfu288bW2iVV9cEkb6mq5ye5Icmz1l8m0JPuFMB4rDlYtdY+keS7lxj/5yRPXE9RwHjoTgGMl7+8DnNOdwpg4whWMKd0pwA2nmAFc0R3CmCyBCuYA7pTANNBsIIZpTsFMH0EK5gxulMA00uwghmgOwUwGwQrmGK6UwCzRbCCKaM7BTC7BCuYErfecUcuuOSSnP+7v6s7BTCjBCuYoIWFhVx6zTXZ+Z735KKPfCR7FxYOWEd3CmB2CFYwAbfefnsueO97c/7ll+e62247YLnuFMBsEqxgg3xDd+qKK7L37rsPWOe0E07I2b/+67pTADNKsIIxO2h3asuWbD/11LzgPvfJth/+4WT79glUCUAPghWMwaq7U497XM561KOy5cgjk127JlApAD0JVtDRqrtTj31sth177AQqBGCcBCtYpzV1pwCYS4IVrJHuFAD7E6zgEOhOAbASwQpWQXcKgNUQrGAZulMAHCrBCvajOwXAWglWEN0pAPoQrNjUdKcA6EmwYtPRnQJgXAQrNg3dKQDGTbBirulOAbCRBCvmku4UAJMgWDE3dKcAmDTBipmnOwXAtBCsmEm6UwBMI8GKmaI7BcA0E6yYerpTAMwKwYqppTsFwKwRrJgqulMAzDLBiqmgOwXAPBCsmBjdKQDmjWDFhtOdAmBeCVZsCN0pADYDwYqx0p0CYDMRrOhOdwqAzUqwohvdKQA2O8GKdVloLZfefnt27typOwXApidYsSb3dKeuvDLX3XnnAct1pwDYjAQrVs29UwCwMsGKgzrovVOHHZbtP/ADulMAbHqCFUtadXeqtZz1gAdky7OfPYEqAWC6CFZ8g0P+ZN9rXjOBKgFgOglWuHcKADoRrDYxf3cKAPoSrDYZ3SkAGB/BapPQnQKA8ROs5pjuFABsLMFqDulOAcBkCFZzQncKACZPsJpxulMAMD0EqxmkOwUA00mwmiG6UwAw3QSrKac7BQCzQ7CaUrpTADB7BKspojsFALNNsJoCulMAMB8EqwnRnQKA+SNYbTDdKQCYX4LVBtCdAoDNQbAaI90pANhcBKvOdKcAYPMSrDrRnQIABKt10J0CABYTrNZAdwoAWIpgtUq6UwDAwQhWB6E7BQCslmC1BN0pAGAtBKtFdKcAgPXY9MFKdwoA6GVswaqqnpLkD5IcluSPW2vnjmtfa6E7BQD0NpZgVVWHJfmjJD+Y5KYkH6yqi1trV41jf6u1sLCQS6++etSduvBC3SkAoKtxdawek2R3a+0TSVJVFyY5M8nEgtVdd92VU77ru/KDV1+dRyT5P4uWHX3kkdn+8IfnBSeemG1HH53s3Zu8730TqnRG7do16QoAYOLGFayOTXLjovc3Jfm+xStU1Y4kO5Jk69atYyrj6w4//PB8x3d+Z55/9dW5fhjTnero9NMnXQEATNzEbl5vre1MsjNJTjnllLYR+9xx9tn5oXe8Iz/6vOfloy94QbZt27YRu51vO3ZMugIAmBrjClY3Jzlu0fuHDWMT9fjHPz7/8KlPZcuWLZMuBQCYQ/ca03Y/mOSkqnp4VR2Z5DlJLh7TvlatqoQqAGBsxtKxaq3dVVXnJHlHRn9u4bWttY+PY18AANNibPdYtdbenuTt49o+AMC0GdelQACATUewAgDoRLACAOhEsAIA6ESwAgDoRLACAOhEsAIA6ESwAgDoRLACAOhEsAIA6ESwAgDoRLACAOhEsAIA6ESwAgDoRLACAOhEsAIA6ESwAgDoRLACAOhEsAIA6ESwAgDoRLACAOhEsAIA6ESwAgDoRLACAOhEsAIA6ESwAgDoRLACAOhEsAIA6ESwAgDoRLACAOhEsAIA6ESwAgDoRLACAOhEsAIA6ESwAgDoRLACAOhEsAIA6ESwAgDoRLACAOhEsAIA6ESwAgDoRLACAOhEsAIA6ESwAgDoRLACAOhEsAIA6ESwAgDoRLACAOhEsAIA6ESwAgDoRLACAOhEsAIA6ESwAgDoRLACAOhEsAIA6ESwAgDoRLACAOhEsAIA6ESwAgDopFprk64hVXVbkhs2cJcPSvKZDdzfvDOf/ZjLvsxnX+azL/PZ10bO57e21h681IKpCFYbrao+1Fo7ZdJ1zAvz2Y+57Mt89mU++zKffU3LfLoUCADQiWAFANDJZg1WOyddwJwxn/2Yy77MZ1/msy/z2ddUzOemvMcKAGAcNmvHCgCgO8EKAKCTTRWsquopVXVNVe2uqhdPup5ZVFXXV9VHq+qKqvrQMPbAqnpnVV07PD9g0nVOq6p6bVXtqaqPLRpbcv5q5JXD+XplVX3v5CqfTsvM58uq6ubhHL2iqp62aNlLhvm8pqqePJmqp1NVHVdVl1XVVVX18ar6hWHc+bkGK8yn83MNquqbquoDVfX3w3z+5jD+8Kp6/zBvb66qI4fxew/vdw/Lj9+oWjdNsKqqw5L8UZKnJnlEkudW1SMmW9XMenxr7eRFfy/kxUne1Vo7Kcm7hvcs7YIkT9lvbLn5e2qSk4bHjiSv3qAaZ8kFOXA+k+QVwzl6cmvt7Uky/Pf+nCSPHL7mVcPPBUbuSvLLrbVHJDk1yQuHOXN+rs1y85k4P9fiziRPaK19d5KTkzylqk5N8jsZzeeJST6X5PnD+s9P8rlh/BXDehti0wSrJI9Jsru19onW2teSXJjkzAnXNC/OTPL64fXrk/zI5EqZbq21XUk+u9/wcvN3ZpI/aSPvS3J0VT1kQwqdEcvM53LOTHJha+3O1tonk+zO6OcCSVprt7TW/m54/cUkVyc5Ns7PNVlhPpfj/FzBcJ59aXh7xPBoSZ6Q5E+H8f3Pz33n7Z8meWJV1UbUupmC1bFJblz0/qasfJKztJbkr6vqw1W1Yxg7prV2y/D600mOmUxpM2u5+XPOrt05w+Wp1y66NG0+V2m4bPI9Sd4f5+e67TefifNzTarqsKq6IsmeJO9Mcl2Sz7fW7hpWWTxn98znsPwLSf7FRtS5mYIVfTy2tfa9GV0GeGFVnb54YRv9/Q5/w2ONzF8Xr05yQkaXC25J8nsTrWbGVNX9kvxZkl9srd2+eJnz89AtMZ/OzzVqrd3dWjs5ycMy6uZ9x2QrWtpmClY3Jzlu0fuHDWMcgtbazcPzniRvzejkvnXfJYDhec/kKpxJy82fc3YNWmu3Dj+AF5Kcn69fTjGfB1FVR2QUAv53a+3Ph2Hn5xotNZ/Oz/VrrX0+yWVJ/k1Gl6APHxYtnrN75nNYflSSf96I+jZTsPpgkpOGTxAcmdFNghdPuKaZUlX3rapv3vc6yQ8l+VhG8/i8YbXnJfmLyVQ4s5abv4uTbB8+fXVqki8suiTDMva7z+dHMzpHk9F8Pmf4tNDDM7rp+gMbXd+0Gu4/eU2Sq1trv79okfNzDZabT+fn2lTVg6vq6OH1fZL8YEb3rV2W5Kxhtf3Pz33n7VlJLm0b9BfRDz/4KvOhtXZXVZ2T5B1JDkvy2tbaxydc1qw5Jslbh/v/Dk/yxtbaJVX1wSRvqarnJ7khybMmWONUq6o3JTkjyYOq6qYkv5Hk3Cw9f29P8rSMbmL9SpKf3vCCp9wy83lGVZ2c0SWr65OcnSSttY9X1VuSXJXRJ7Ze2Fq7ewJlT6vvT/JTST463MeSJC+N83OtlpvP5zo/1+QhSV4/fFLyXkne0lr7y6q6KsmFVfXyJB/JKMxmeH5DVe3O6AMuz9moQv0vbQAAOtlMlwIBAMZKsAIA6ESwAgDoRLACAOhEsAIA6ESwAgDoRLACAOjk/wPXUoWQ9VDmbwAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "points = [ (0,0), (1,0), (2,1), (3,1), (4,2), (5,2) ]\n", "\n", "plot_discrete_line(points, pente=0.5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On peut évidemment dessiner des droites avec une pente qui ne vérifie pas $0 < \\alpha < 1$ :" ] }, { "cell_type": "code", "execution_count": 281, "metadata": { "ExecuteTime": { "end_time": "2021-01-24T22:55:01.029650Z", "start_time": "2021-01-24T22:55:00.853469Z" }, "scrolled": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "points = [ (0,0), (0,1), (1,2), (1,3), (2,4), (2,5) ]\n", "\n", "plot_discrete_line(points, pente=2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Comparaison graphique des trois méthodes :\n", "\n", "On va prendre les exemples précédents, et les afficher dans la même figure :" ] }, { "cell_type": "code", "execution_count": 291, "metadata": { "ExecuteTime": { "end_time": "2021-01-24T22:58:44.706631Z", "start_time": "2021-01-24T22:58:44.703227Z" } }, "outputs": [], "source": [ "methodes = [\n", " methode_bresenham,\n", " methode_longer_inferieurement,\n", " methode_longer_superieurement,\n", " methode_longer_aleatoirement\n", "]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Avec une pente $\\alpha=1$, tous les `yi += O/1` seront `yi += 1` :" ] }, { "cell_type": "code", "execution_count": 292, "metadata": { "ExecuteTime": { "end_time": "2021-01-24T22:58:45.816391Z", "start_time": "2021-01-24T22:58:45.422620Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Méthode de Bresenham (après symétries éventuelles) avec une pente 0 <= pente = 1.0 <= 1\n", "Méthode de longer au plus près inférieurement (après symétries éventuelles) avec une pente 0 <= pente = 1.0 <= 1\n", "Méthode de longer au plus près supérieurement (après symétries éventuelles) avec une pente 0 <= pente = 1.0 <= 1\n", "Méthode de longer aléatoirement (après symétries éventuelles) avec une pente 0 <= pente = 1.0 <= 1\n" ] }, { "data": { "image/png": "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pUly/GLznKQHna8n+XgbAJxM3nIvAAACnzEmS9Ioa+0X/h4LgMDDDDIAAADghoAMAAAAuKHEAgAAAHDDDDIAAADgplzfIuamm26yzZo18/cwAAAAUAGlp6cftdbWu7q9XAfkZs2aaePGjf4eBgAAACogY0yBTyClxAIAAABwQ0AGAAAA3JTrEgsAAABvJPf26kGfhRr2+Z9KrW/4V8AF5EuXLmn//v06f/68v4cCIMBdd911atSokapWrervoQAoRSf2nvR5n3Wb1vF5nyg/Ai4g79+/X7Vr11azZs1kjPH3cAAEKGutsrOztX//fjVv3tzfwwFQynwZaEsjcKN8Cbga5PPnz+vGG28kHAPwijFGN954I3+NAgDkE3ABWRLhGIBP8G8JAKAgARmQA8lbb72lX375xd/DAAAAQBERkEvAGKMHH3zQ9f7y5cuqV6+e+vXrl2e5adOmKTQ0VKGhoZKkjIwMffbZZ67Pp06dqunTp5d4HN6u36xZMx09erTIy8fFxalVq1Zq27atWrdurbfffrvE2/bGypUr8x1rAAAAXwm4i/TKg1q1amnbtm06d+6catSooeXLl6thw4b5lps8eXKe9xkZGdq4caP69OlTVkP1ublz56pDhw46duyYWrZsqcTERFWrVi3PMleuXFHlypX9NEIAAADvMINcQn369NHSpUslSfPmzdPw4cNdn505c0YjR45UTEyM2rVrp0WLFunixYuaPHmyUlJS1LZtW6WkpEiSduzYobi4OLVo0UKzZs1y9TFjxgyFh4crPDxcM2fOdLW/9NJL+s1vfqOuXbvq+++/d7Xv2bNHvXr1UnR0tGJjY7Vr1658Y87OzlbPnj0VFhamUaNGyVrr+uyjjz5STEyM2rZtq0cffVRXrlwpdP9Pnz6tWrVquYLw9ddfrz/84Q+KiorSunXrCuzvypUrSkxMVHh4uCIiIvSXv/yl0LEnJibqySef1B133KEWLVooNTU1z/YHDx6s2267TSNGjHDty7Rp09SxY0eFh4dr9OjRrva4uDg9/fTT6tChg1q3bq20tDTde++9uvXWWzVp0qRC9xUAAASXwJ5BfuopKSPDt322bSu5BVJPhg0bpmnTpqlfv37aunWrRo4cqdWrV0tyhNi77rpL7777ro4fP66YmBjdfffdmjZtmjZu3Ki//vWvkhwlErt27dKKFSt06tQptWrVSo8//ri2bt2q9957T+vXr5e1Vp06ddKdd96pnJwcJScnKyMjQ5cvX1b79u0VHR0tSRo9erTefPNN3XrrrVq/fr3GjBmjr776Ks+Yk5KS1LVrV02ePFlLly7VnDlzJEk7d+5USkqKvvnmG1WtWlVjxozR3Llz9dBDD+Xb7xEjRqh69erKzMzUzJkzXQH5zJkz6tSpk/7f//t/2rlzp1555ZV8/YWFhenAgQPatm2bJOn48ePXHPuhQ4e0Zs0a7dq1S/3799fgwYMlSZs3b9b27dt1yy23qEuXLvrmm2/UtWtXjR071jVz/9vf/laffvqp7rnnHklStWrVtHHjRr322msaMGCA0tPTdcMNN6hly5Z6+umndeONNxbpFAEAABVbYAdkP4qMjFRWVpbmzZuXr2Ri2bJlWrx4sas++Pz58/rpp58K7Kdv376qXr26qlevrvr16+vnn3/WmjVrNGjQINWqVUuSdO+992r16tXKycnRoEGDVLNmTUlS//79JTlmU9euXav777/f1e+FCxfybWvVqlVasGCBa7u5tdFffvml0tPT1bFjR0nSuXPnVL9+/QLHm1ticeTIEd1xxx3q1auXmjZtqsqVK+u+++4rtL977rlH//rXv/TEE0+ob9++6tmz5zXHPnDgQFWqVElt2rTRzz//7GqPiYlRo0aNJElt27ZVVlaWunbtqhUrVujPf/6zzp49q2PHjiksLMwVkHOPV0REhMLCwtSgQQNJUosWLbRv3z4CMgAAkBToAbkIM72lqX///ho/frxWrlyp7OxsV7u1VvPnz1erVq3yLL9+/fp8fVSvXt31unLlyrp8+XKxx5GTk6OQkBBllHA23Vqrhx9+WH/6U9EfmVmvXj21b99e69evV9OmTXXddde5ZpML62/Lli365z//qTfffFN///vfNXPmzELH7n583EtCCjpu58+f15gxY7Rx40Y1btxYU6dOzXOP29x1KlWqlGf9SpUqlei4AwCAiokaZC+MHDlSU6ZMUURERJ72hIQEzZ492xXoNm/eLEmqXbu2Tp06dc1+Y2NjtXDhQp09e1ZnzpzRP/7xD8XGxqpbt25auHChzp07p1OnTmnJkiWSpDp16qh58+b65JNPJDmC5JYtW/L1261bN3388ceSpM8//9x1+7n4+Hilpqbq8OHDkqRjx45p7969hY7x7Nmz2rx5s1q2bJnvM0/9HT16VDk5Obrvvvv04osvatOmTUUee1HkhuGbbrpJp0+fzlOzDAAAUFSBPYPsZ40aNdKTTz6Zr/2FF17QU089pcjISOXk5Kh58+b69NNP1b17d7388stq27atJk6c6LHf9u3bKzExUTExMZKkUaNGqV27dpKkoUOHKioqSvXr13eVMEiO0ofHH39cL774oi5duqRhw4YpKioqT79TpkzR8OHDFRYWpjvuuENNmjSRJLVp00YvvviievbsqZycHFWtWlV/+9vf1LRp03xjGzFihGrUqKELFy4oMTHRVQPtzlN/NWrU0H/9138pJydHklwzzEUZe1GEhITokUceUXh4uH71q1/lOT4AAABFZdz/bF3edOjQwW7cuDFP286dO9W6dWs/jQhARcO/KUDFltx7ok7sPam6Tev4rM/c/oZ9XvTSRJRPxph0a22Hq9spsQAAAADcEJABAAAANwRkAAAAwM01A7Ix5l1jzGFjzDa3thuMMcuNMZnO/4Y6240xZpYxZrcxZqsxpr3bOg87l880xjxcOrsDAAAAeKcoM8jvS+p1Vdtzkr601t4q6Uvne0nqLelW59doSW9IjkAtaYqkTpJiJE3JDdUAAAClJTVztd7c97m/h4EAc83bvFlrVxljml3VPEBSnPP1B5JWSprgbP8f67g1xrfGmBBjTAPnssuttcckyRizXI7QPc/7XQAAABVBcm/Pt0AtidTM1Zq/5xtJ0p9WJ2tMkz7XWANwKOl9kG+21h5yvv63pJudrxtK2ue23H5nm6f2fIwxo+WYfXbdpzeQvfXWWxoyZIjrsc6Auw0bNujcuXO68847y2ybBw8e1Jdffqnf/va3ZbZNACiqE3tP+qSfJYfTtDQ7zfV+65ksnbnxom65/iaf9I+KzesHhVhrrTHGZzdTtta+LeltyXEfZF/160vGGI0YMUIfffSRJOny5ctq0KCBOnXqpE8//dS13LRp03Tbbbe5wnFGRoYOHjyoPn0cv8FOnTpV119/vcaPH1+icXi7frNmzbRx40bddFPR/rGIi4vT9OnT1aFDvtsFVhjFPSbeio6O1rhx41StWjXdfvvtRV5v8uTJ6tatm+6++26Py1y4cEF9+/bV0aNHNXHiRA0dOlTHjx/XM888oxkzZnhc780331TNmjX10EMPFWtfyoPjx4/r448/1pgxY/w9FABe8PaexamZq/OEY0kaMmSInkl5x6t+ETxKGpB/NsY0sNYecpZQHHa2H5DU2G25Rs62A/pPSUZu+8oSbtvvatWqpW3btuncuXOqUaOGli9froYN80+IT548Oc/7jIwMbdy40RWQUTTWWllrValSxbnpSu4+Va5cWX/961+Lvf60adOuuUzuI84zMjJcbSEhIUpOTva4zuXLl/XYY48Vezye+qpSpWwf1nn8+HG9/vrrBGQgiLmXVeTq/KtWSklJ8dOIEIhKmjgWS8q9E8XDkha5tT/kvJtFZ0knnKUY/5TU0xgT6rw4r6ezzStPPSXFxfn266mnirbtPn36aOnSpZKkefPmafjw4a7Pzpw5o5EjRyomJkbt2rXTokWLdPHiRU2ePFkpKSlq27at6wd1x44diouLU4sWLTRr1ixXHzNmzFB4eLjCw8M1c+ZMV/tLL72k3/zmN+ratau+//57V/uePXvUq1cvRUdHKzY2Vrt27co35uzsbPXs2VNhYWEaNWqU3J+i+NFHHykmJkZt27bVo48+qitXrhS6//PmzVNERITCw8M1YcIEV/v111+v559/XlFRUercubN+/vln1/g6d+6siIgITZo0Sddff71rnVdffVUdO3ZUZGSkpkyZIknKyspSq1at9NBDDyk8PFz79u3Ls/1p06apY8eOCg8P1+jRo137EhcXp9ynLx49elTNmjXLN/aVK1eqW7du6tu3r1q1aqXHHnvM9fjrXFlZWQoPD3e9nz59uqZOnSpJmjVrltq0aaPIyEgNGzYsX//vv/++BgwYoLi4ON16661KSkryuE8F7fuZM2fUt29fRUVFKTw8vMB/1BMTE5WamirJMes9ZcoUtW/fXhEREdq1a5cOHz6sBx98UGlpaWrbtq327Nmj9PR03XnnnYqOjlZCQoIOHTrkOmZPPfWUOnTooNdee01Tp07V9OnTXd+3gs4r9+3nft9zj21sbKz69++vNm3a6MqVK3r22Wdd+/jWW2+5lrvzzjs1YMAAtWjRQs8995zmzp2rmJgYRUREaM+ePZKkI0eO6L777lPHjh3VsWNHffON4396U6dO1ciRI/P97Dz33HPas2eP2rZtq2effTbfcQNQsRUUjqNrt9S4toP8NCIEqqLc5m2epHWSWhlj9htjfifpZUk9jDGZku52vpekzyT9S9JuSe9IGiNJzovz/o+kNOfXtNwL9gLVsGHDlJycrPPnz2vr1q3q1KmT67OXXnpJd911lzZs2KAVK1bo2Wef1aVLlzRt2jQNHTpUGRkZGjp0qCRp165d+uc//6kNGzYoKSlJly5dUnp6ut577z2tX79e3377rd555x1t3rxZ6enpSk5OVkZGhj777DOlpf3nz0ejR4/W7NmzlZ6erunTpxc4g5aUlKSuXbtq+/btGjRokH766SdJjkftpqSk6JtvvlFGRoYqV66suXPnetz3gwcPasKECfrqq6+UkZGhtLQ0LVy4UJIj3HXu3FlbtmxRt27d9M47jj9njRs3TuPGjdN3332nRo0aufpatmyZMjMztWHDBmVkZCg9PV2rVq2SJGVmZmrMmDHavn27mjZtmmcMY8eOVVpammsm3720pSg2bNig2bNna8eOHdqzZ48WLFhQ5HVffvllbd68WVu3btWbb77psf/58+dr69at+uSTT1yh3X2fvv/+e/3www/asGGDNm/erLS0NH399df63//9X91yyy3asmWLtm3bpl69rr6JTH433XSTNm3apMcff1zTp09X/fr19d///d+KjY1VRkaGmjRpoieeeEKpqalKT0/XyJEj9fzzz7vWv3jxojZu3Kg//OEPefotynl1tU2bNum1117TDz/8oDlz5qhu3bpKS0tTWlqa3nnnHf3444+SpC1btujNN9/Uzp079eGHH7qOxahRozR79mxJjvPm6aefVlpamubPn69Ro0a5tlPQz87LL7+sli1bKiMjQ6+++uo1xwqg4vA0c/xIowQ/jQiBrCh3sRju4aP4Apa1kn7voZ93Jb1brNFdg9vEapmLjIxUVlaW5s2bl69kYtmyZVq8eLFrFu78+fOuMHq1vn37qnr16qpevbrq16+vn3/+WWvWrNGgQYNUq1YtSdK9996r1atXKycnR4MGDVLNmjUlSf3795cknT59WmvXrtX999/v6vfChQv5trVq1SpXEOzbt6+rNvrLL79Uenq6OnbsKEk6d+6c6tev73Hf09LSFBcXp3r16kmSRowYoVWrVmngwIGqVq2a+vXrJ8lRX7t8+XJJ0rp161wh+oEHHnDVTS9btkzLli1Tu3btXPuSmZmpJk2aqGnTpurcuXOBY1ixYoX+/Oc/6+zZszp27JjCwsJ0zz33eBzz1WJiYtSiRQtJ0vDhw7VmzRoNHjy4SOtGRkZqxIgRGjhwoAYOHFjgMj169NCNN94oyfH9W7NmjQYOHJhnn5YtW6a1a9eqe/fukhzlAT/++KPuuOMO/eEPf9CECRPUr18/xcbGXnNM9957ryTHMS8o7H///ffatm2bevToIUm6cuWKGjRo4Po89xc2d0U9r64WExOj5s2bu/Zx69atrtnmEydOKDMzU9WqVVPHjh1dY2jZsqV69uwpSYqIiNCKFSskSV988YV27Njh6vvkyZM6ffq0pIJ/dgAEJ0/heFzbQT676A/BpWwLBCuY/v37a/z48Vq5cqWys7Nd7dZazZ8/X61atcqz/Pr16/P1Ub16ddfrypUr6/Lly8UeR05OjkJCQvLUmhaHtVYPP/yw/vSnP5VofXdVq1aVMUZS0fbHWquJEyfq0UcfzdOelZXl+gXhaufPn9eYMWO0ceNGNW7cWFOnTtX58+clSVWqVHGVS+S2FSR3jJ7eu/dzdV9Lly7VqlWrtGTJEr300kv67rvv8tXaeurffZ+stXriiScKrPndtGmTPvvsM02aNEnx8fH56tmvlnseeTrm1lqFhYVp3bp1Ba5f0LEu7LxyPz45OTm6ePFigX1ZazV79mwlJOSdwVm5cmWec79SpUqu95UqVXLtQ05Ojr799ltdd911Hve5sP0GUPEVFo6Bkqo4Vz35wciRIzVlyhRFRETkaU9ISNDs2bNddbG5F0vVrl1bp06duma/sbGxWrhwoc6ePaszZ87oH//4h2JjY9WtWzctXLhQ586d06lTp7RkyRJJUp06ddS8eXN98sknkhyhZMuWLfn67datmz7++GNJ0ueff65ffvlFkhQfH6/U1FQdPuy41vLYsWPau3evx/HFxMTo66+/1tGjR3XlyhXNmzfvmrcp69y5s+bPny9JeS4SS0hI0LvvvuuaFTxw4IBrHJ7khtWbbrpJp0+fzlML26xZM6Wnp0tSnvarbdiwQT/++KNycnKUkpKirl275vn85ptv1uHDh5Wdna0LFy64SjhycnK0b98+de/eXa+88opOnDjhGru75cuX69ixYzp37pwWLlyoLl265FsmISFB7733nmv9/fv36/Dhwzp48KBq1qypBx98UM8++6w2bdpU6PEoilatWunIkSOugHzp0iVt37690HUKO6/cj/PixYt16dKlAvtISEjQG2+84fr8hx9+0JkzZ4o87p49e7rKLSRd85fAov6MAagYCMcoLQRkLzRq1EhPPvlkvvYXXnhBly5dUmRkpMLCwvTCCy9Ikrp3764dO3bkuUivIO3bt1diYqJiYmLUqVMnjRo1Su3atVP79u01dOhQRUVFqXfv3q6SCEmaO3eu5syZo6ioKIWFhWnRokX5+p0yZYpWrVqlsLAwLViwwHWf6TZt2ujFF19Uz549FRkZqR49ergu4CpIgwYN9PLLL6t79+6KiopSdHS0BgwYUOixmjlzpmbMmKHIyEjt3r1bdevWleQIQA888IBuv/12RUREaPDgwdcMOCEhIXrkkUcUHh6uhISEPMdh/PjxeuONN9SuXTsdPXrUYx8dO3bU2LFj1bp1azVv3lyDBuX9x7Rq1aqaPHmyYmJi1KNHD912222SHKUJDz74oCIiItSuXTs9+eSTCgkJydd/TEyM7rvvPkVGRuq+++4r8NZ4V+/7/fffr1OnTum7775zXTCZlJSkSZMmFXo8iqJatWpKTU3VhAkTFBUVpbZt22rt2rXXXM/TefXII4/o66+/VlRUlNatW+dxtn/UqFFq06aN2rdvr/DwcD366KPFmumdNWuWNm7cqMjISLVp08ZjzXeuG2+8UV26dFF4eDgX6QEVHOEYpcm438mgvOnQoYPNvbgp186dO9W6dWs/jQgldfbsWdWoUUPGGCUnJ2vevHkFhviysHLlSk2fPr3YF/YV1fvvv6+NGzeW6PZtKHv8mwKUH8m9J+rE3pPXvA9yccJxbn/DPve+jBAVjzEm3VqbbxaLGmSUifT0dI0dO1bWWoWEhOjdd316vSYAIEgwc4yyQEBGmYiNjS2wLtof4uLiFBcXV2r9JyYmKjExsdT6B4BgRThGWaEGGQAAlHuEY5QlAjIAACjXCMcoawRkAABQbhGO4Q8E5FL21ltvue43DFxtw4YN+vrrr/09DB08eFAffvihv4cBAHkQjuEvBOQSMMbowQcfdL2/fPmy6tWr53rEcq5p06YpNDTU9UjnjIwMffbZZ67Pp06d6nocdUl4u36zZs0KvVfw1eLi4nT1bfcqmuIeE29FR0frk08+8fiEu7Jw/PhxPfPMM4qPz/f0eJc333xT//M//1OGo/Kd48eP6/XXX/f3MAAUE+EY/sRdLEqgVq1a2rZtm86dO6caNWpo+fLlatiwYb7lrn48cEZGhjZu3Kg+ffqU1VArBGutrLWqVKni/D6Xu0+VK1f2+/2SQ0JC8jzd8GqXL18u8HHYJXH58uV8j+UubbkBecyYMWW6XQAlRziGv1WcxFHG+vTpo6VLl0qS5s2bp+HDh7s+O3PmjEaOHKmYmBi1a9dOixYt0sWLFzV58mSlpKTkeZLejh07FBcXpxYtWmjWrFmuPmbMmKHw8HCFh4dr5syZrvaXXnpJv/nNb9S1a1d9//33rvY9e/aoV69eio6OVmxsrHbt2pVvzNnZ2erZs6fCwsI0atQouT8k5qOPPnI9ve3RRx/VlStXCt3/efPmKSIiQuHh4ZowYYKr/frrr9fzzz+vqKgode7cWT///LNrfJ07d1ZERIQmTZqk66+/3rXOq6++qo4dOyoyMlJTpkyRJGVlZalVq1Z66KGHFB4ern379uXZ/rRp09SxY0eFh4dr9OjRrn1xn+U+evSomjVrlm/sK1euVLdu3dS3b1+1atVKjz32mHJycvIsk5WVpfDwcNf76dOna+rUqZIcT3dr06aNIiMjNWzYsHz9v//++xowYIDi4uJ06623KikpyeM+FbTvZ86cUd++fRUVFaXw8PACn7pY0Biu/otCeHi4srKylJWVpdtuu00jRoxQ69atNXjwYJ09e1aS4/7Ud955p6Kjo5WQkOB6gmJcXJyeeuopdejQQa+99lqevj2da4mJiXke7537PV65cqViY2PVv39/tWnTRleuXNGzzz7r2u+33nrLtdydd96pAQMGqEWLFnruuec0d+5cxcTEKCIiQnv27JEkHTlyRPfdd586duyojh076ptvvnHt/8iRI/P9PD333HPas2eP2rZty9P1gACw5HAa4Rh+F9gzyOlPSb9k+LbP0LZS9MxrLjZs2DBNmzZN/fr109atWzVy5EitXr1akiPE3nXXXXr33Xd1/PhxxcTE6O6779a0adPyPGFt6tSp2rVrl1asWKFTp06pVatWevzxx7V161a99957Wr9+vay16tSpk+68807l5OQoOTlZGRkZunz5stq3b6/o6GhJ0ujRo/Xmm2/q1ltv1fr16zVmzBh99dVXecaclJSkrl27avLkyVq6dKnmzJkjyfEksZSUFH3zzTeqWrWqxowZo7lz5+qhhx4qcN8PHjyoCRMmKD09XaGhoerZs6cWLlyogQMH6syZM+rcubNeeukl/fGPf9Q777yjSZMmady4cRo3bpyGDx+e53HBy5YtU2ZmpjZs2CBrrfr3769Vq1apSZMmyszM1AcffKDOnTvnG8PYsWNdM/S//e1v9emnn+qee+655vct14YNG7Rjxw41bdpUvXr10oIFCzR48OAirfvyyy/rxx9/VPXq1XX8+HGP/W/btk01a9ZUx44d1bdvX91000159mnZsmX64YcftGHDBuXk5Oiee+7R119/raNHj+qWW25x/QJ24sSJEo3B3ffff685c+aoS5cuGjlypF5//XWNGzdOTzzxhBYtWqR69eopJSVFzz//vOshLhcvXnT9spH7y4FUtHPtaps2bdK2bdvUvHlzvf3226pbt67S0tJ04cIFdenSRT179pQkbdmyRTt37tQNN9ygFi1aaNSoUdqwYYNee+01zZ49WzNnztS4ceP09NNPq2vXrvrpp5+UkJCgnTt3SlKBP08vv/yytm3bpoyMjGseJwD+lZq5Wkuz0/K0EY7hD4EdkP0oMjJSWVlZmjdvXr6SiWXLlmnx4sWuGbfz58/rp59+KrCfvn37qnr16qpevbrq16+vn3/+WWvWrNGgQYNUq1YtSdK9996r1atXKycnR4MGDVLNmjUlSf3795cknT59WmvXrtX999/v6vfChQv5trVq1SotWLDAtd3c2ugvv/xS6enp6tixoyTp3Llzql+/vsd9T0tLU1xcnOrVqydJGjFihFatWqWBAweqWrVqrlrs6OhoLV++XJK0bt06LVy4UJL0wAMPaPz48a5jtWzZMrVr1861L5mZmWrSpImaNm1aYDiWpBUrVujPf/6zzp49q2PHjiksLKxYATkmJkYtWrSQJA0fPlxr1qwpckCOjIzUiBEjNHDgQA0cOLDAZXr06KEbb7xRkuP7t2bNGg0cODDPPi1btkxr165V9+7dJTlKAX788Ufdcccd+sMf/qAJEyaoX79+io2NLdEY3DVu3FhdunSRJD344IOaNWuWevXqpW3btqlHjx6SpCtXrqhBgwaudYYOHZqvn6Kea1eLiYlR8+bNXfu9detW12zziRMnlJmZqWrVqqljx46uMbRs2dIVnCMiIrRixQpJ0hdffKEdO3a4+j558qROnz4tqeCfJwClI7n3RJ/2V1BZRXTtlkoMjdeJvSd9ui3gWgI7IBdhprc09e/fX+PHj9fKlSuVnZ3tarfWav78+WrVqlWe5devX5+vj+rVq7teV65cWZcvXy72OHJychQSElLiGTJrrR5++GH96U/eP6e+atWqMsZIKtr+WGs1ceJEPfroo3nas7KyXL8gXO38+fMaM2aMNm7cqMaNG2vq1Kk6f/68JKlKlSquconctoLkjtHTe/d+ru5r6dKlWrVqlZYsWaKXXnpJ3333Xb66Wk/9u++TtVZPPPFEgfW9mzZt0meffaZJkyYpPj4+Xz27pzF4GnNB47HWKiwszOMFggUd/8LONfft5+Tk6OLFiwX2Za3V7NmzlZCQkGf9lStX5vl5qFSpkut9pUqVXOdSTk6Ovv32W1133XX5xuCLnycAReer4LrkcBozxyhXqEH2wsiRIzVlyhRFRETkaU9ISNDs2bNddbGbN2+WJNWuXVunTp26Zr+xsbFauHChzp49qzNnzugf//iHYmNj1a1bNy1cuFDnzp3TqVOntGTJEklSnTp11Lx5c33yySeSHAGkoMc6d+vWTR9//LEk6fPPP3fdfi4+Pl6pqak6fPiwJOnYsWPau3evx/HFxMS4SgGuXLmiefPm6c477yx0nzp37qz58+dLUp4LwhISEvTuu++6ZgAPHDjgGocnucHvpptu0unTp/PUvTZr1kzp6emSlKf9ahs2bNCPP/6onJwcpaSkqGvXrnk+v/nmm3X48GFlZ2frwoUL+vTTTyU5wtm+ffvUvXt3vfLKKzpx4oRr7O6WL1+uY8eO6dy5c1q4cKFr9tZdQkKC3nvvPdf6+/fv1+HDh3Xw4EHVrFlTDz74oJ599llt2rQpz3qextCsWTPXsps2bdKPP/7oWuenn35yBeGPP/5YXbt2VatWrXTkyBFX+6VLl7R9+3aPx0wq/FxzP/aLFy/WpUuXCuwjISFBb7zxhuvzH374QWfOnCl0u+569uyp2bNnu95f6xfDov7cASiZuk3rePW1/OKWfOF4yJAhWndol4Z9/ieffQHFQUD2QqNGjfTkk0/ma3/hhRd06dIlRUZGKiwsTC+88IIkqXv37tqxY0eei/QK0r59eyUmJiomJkadOnXSqFGj1K5dO7Vv315Dhw5VVFSUevfu7SqJkKS5c+dqzpw5ioqKUlhYmBYtWpSv3ylTpmjVqlUKCwvTggUL1KRJE0lSmzZt9OKLL6pnz56KjIxUjx49XBdrFaRBgwZ6+eWX1b17d0VFRSk6OloDBgwo9FjNnDlTM2bMUGRkpHbv3q26detKcoSdBx54QLfffrsiIiI0ePDga4aZkJAQPfLIIwoPD1dCQkKe4zB+/Hi98cYbateuXaG3a+vYsaPGjh2r1q1bq3nz5ho0KO8sRdWqVTV58mTFxMSoR48euu222yQ5yhAefPBBRUREqF27dnryyScVEhKSr/+YmBjdd999ioyM1H333acOHTrkW+bqfb///vt16tQpfffdd64LJpOSkjRp0qQ863kaw3333ecqN/nrX/+q3/zmN651WrVqpb/97W9q3bq1fvnlFz3++OOqVq2aUlNTNWHCBEVFRalt27Zau3Ztocde8nyuPfLII/r6668VFRWldevWefwLwKhRo9SmTRu1b99e4eHhevTRR4s10ztr1ixt3LhRkZGRatOmTZ6a9oLceOON6tKli8LDw7lIDyhnPN2torD/RwJlwbjfyaC86dChg736vrs7d+5U69at/TQilNTZs2dVo0YNGWOUnJysefPmFRjiy8LKlSs1ffp016ywr73//vt5Lsb0t6ysLPXr10/btm3z91DKJf5NAUomufdEndh7UnWb1inR+p5qjsd3uZ8ZX5QZY0y6tTbfLFZg1yAjYKSnp2vs2LGy1iokJMR1pwQAQPDxNHOcGOr5gUVAWSIgo0zExsYWWBftD3FxcYqLiyu1/hMTE5WYmFhq/RdXs2bNmD0GUG4U9hAQ7laB8oIaZAAAUCZ4Qh4CBQEZAACUOsIxAgkBGQAAlCrCMQINARkAAJQawjECEQG5lL311luuB3LAPw4ePKgPP/zQ38MAgKBDOEagIiCXgDFGDz74oOv95cuXVa9ePfXr1y/PctOmTVNoaKhCQ0MlOZ749dlnn7k+nzp1qqZPn17icXi7frNmzQp9mMbV4uLidPV9qcubxMTEPE/QO378uJ555hnFx1/71kELFy7Ujh07rrnc5MmT9cUXX3g1Tl95//33dfDgQX8PAwDyIRwjkBGQS6BWrVratm2bzp07J8nxWOGGDRvmW27y5MkaMmSI6/3VARlFY61VTk5OidYNCQlRcnKybrnllmsuW9SAPG3aNN1999352q9cuVKiMXqDgAygPCIcI9AF9H2Q//ep/9W/M/7t0z5/1fZX6jWz1zWX69Onj5YuXarBgwdr3rx5Gj58uFavXi1JOnPmjJ544glt27ZNly5d0tSpU9W7d29NnjxZ586d05o1azRx4kRJ0o4dOxQXF6effvpJTz31lOvR1TNmzHA9TGPUqFF66qmnJEkvvfSSPvjgA9WvX1+NGzdWdHS0JGnPnj36/e9/ryNHjqhmzZp65513XI9HzpWdna3hw4frwIEDuv322+X+FMWPPvpIs2bN0sWLF9WpUye9/vrrqly5ssf9nzdvnv7v//2/staqb9++euWVVyRJ119/vcaNG6dPP/1UNWrU0KJFi3TzzTdrz549GjFihM6cOaMBAwZo5syZOn36tCTp1Vdf1d///ndduHBBgwYNUlJSkrKyspSQkKBOnTopPT1dn332mZo2bera/rRp07RkyRKdO3dOd9xxh9566y0ZY/KMMT09Xc8884xOnz6tm266Se+//74aNGigd955R2+//bYuXryoX//61/rwww+VkZGhxYsX6+uvv9aLL76o+fPn69SpU3rsscd09uxZtWzZUu+++65CQ0OVmJiofv36afDgwWrWrJmGDh2q5cuX649//KNuuOEGTZkyRRcuXFDLli313nvv6frrr1ezZs00fPhwff7556pSpYrefvttTZw4Ubt379azzz6rxx57rNBj0bt3b3Xt2lVr165Vw4YNtWjRIi1dulQbN27UiBEjVKNGDa1bt041atS45rkLAKWJcIyKgBnkEho2bJiSk5N1/vx5bd26VZ06dXJ99tJLL+muu+7Shg0btGLFCj377LO6dOmSpk2bpqFDhyojI0NDhw6VJO3atUv//Oc/tWHDBiUlJenSpUtKT0/Xe++9p/Xr1+vbb7/VO++8o82bNys9PV3Jycmumei0tDTXNkePHq3Zs2crPT1d06dP15gxY/KNOSkpSV27dtX27ds1aNAg/fTTT5Icj9pNSUnRN998o4yMDFWuXFlz5871uO8HDx7UhAkT9NVXXykjI0NpaWlauHChJMcvB507d9aWLVvUrVs3vfPOO5KkcePGady4cfruu+/UqFEjV1/Lli1TZmamNmzYoIyMDKWnp2vVqlWSpMzMTI0ZM0bbt2/PE44laezYsUpLS3PN5F/92OhLly7piSeeUGpqqtLT0zVy5Eg9//zzkqR7771XaWlp2rJli1q3bq05c+bojjvuUP/+/fXqq68qIyNDLVu21EMPPaRXXnlFW7duVUREhJKSkgo8HjfeeKM2bdqku+++Wy+++KK++OIL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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "A = (0, 0)\n", "B = (20, 20) # pente 1\n", "pente = (B[1] - A[1]) / (B[0] - A[0])\n", "plot_discrete_line(A=A, B=B, pente=pente,\n", " methodes=methodes,\n", " edgecolors=['red', 'blue', 'orange', 'purple']\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Avec une pente $\\alpha=0$, tous les `yi += O/1` seront `yi += 0` :" ] }, { "cell_type": "code", "execution_count": 293, "metadata": { "ExecuteTime": { "end_time": "2021-01-24T22:58:49.438199Z", "start_time": "2021-01-24T22:58:49.056201Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Méthode de Bresenham (après symétries éventuelles) avec une pente 0 <= pente = 0.0 <= 1\n", "Méthode de longer au plus près inférieurement (après symétries éventuelles) avec une pente 0 <= pente = 0.0 <= 1\n", "Méthode de longer au plus près supérieurement (après symétries éventuelles) avec une pente 0 <= pente = 0.0 <= 1\n", "Méthode de longer aléatoirement (après symétries éventuelles) avec une pente 0 <= pente = 0.0 <= 1\n" ] }, { "data": { "image/png": "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fNy4ce7u/s4777gkT09P93Xr1nm3bt38yJEj7u5+1113+SuvvJJj+Xbt2vmVV17psbGxXrZsWX/mmWci0yT5zJkzI8cot/5SUlL8uuuuiyzz008/5Vv7oEGDvE+fPn78+HFfu3at16tXz93dFy5c6BdffLFv2bLFjx8/7i1btvSPP/7Y3d137doV6X/gwIE+b968SO2//e1v3d198uTJXrVqVd+2bZtnZGR4tWrVfOfOnXkfcBRr2f5NCZOU4rlkT4ZYAACQj7i4OG3evFnTp0/PMWRi/vz5mjdvXmR8cEZGhr7//vtc++natavKlCmjMmXKqEqVKtq+fbuWLl2qXr16qUKFCpKkm266SR9//LEyMzPVq1cvlS9fXpLUvXt3SaGzqcuWLdPNN98c6ffw4cM51rVkyRK9+eabkfVmjY3+6KOPlJqaqubNm0uSDh06pCpVquRab9YQi/T0dF199dXq0qWLatWqpZIlS6p379759nfjjTfq22+/1X333aeuXbuqc+fOJ629Z8+eKlGihBo1aqTt27dH2hMTE1W9enVJUuPGjbV582a1bt1aCxcu1B//+EcdPHhQu3fvVnR0tG688cZs+ys2NlbR0dGqWrWqJKlu3brasmWLKlWqlOs2A1kIyACAc19g6EFR6N69u4YPH65FixZp165dkXZ31+zZs9WgQYNs83/66ac5+ihTpkzkdcmSJXXs2LHTriMzM1NRUVFKS0s77WWlUL2DBg3S73//+1NepnLlymratKk+/fRT1apVS2XLlo0Mt8ivv9WrV+uDDz7QM888o3/84x+aPHlyvrUH948HhoTktt8yMjJ09913KyUlRTVq1NDYsWOz3eM2a5kSJUpkW75EiRI/a7/j/MMYZAAATmLIkCEaM2aMYmNjs7UnJSVp6tSpkUD32WefSZIuuugi7du376T9tmnTRnPmzNHBgwd14MABvfXWW2rTpo3atm2rOXPm6NChQ9q3b5/efvttSdLFF1+sOnXq6I033pAUCpKrV6/O0W/btm31+uuvS5Lef//9yO3nOnbsqFmzZmnHjh2SpN27d+u7777Lt8aDBw/qs88+U7169XJMy6u/nTt3KjMzU71799YTTzyhVatWnXLtpyIrDF922WXav39/tjHLQGHgDDIAACdRvXp13X///TnaH3/8cT344IOKi4tTZmam6tSpo3feeUcdOnTQk08+qcaNG2vUqFF59tu0aVMNHjxYiYmJkqShQ4eqSZMmkqS+ffsqPj5eVapUiQxhkEJDH+666y498cQTOnr0qPr166f4+Phs/Y4ZM0b9+/dXdHS0rr76atWsWVOS1KhRIz3xxBPq3LmzMjMzVapUKf31r39VrVq1ctQ2YMAAlStXTocPH9bgwYPVrFmzHPPk1V+5cuV02223KTMzU5IiZ5hPpfZTERUVpdtvv10xMTH61a9+lW3/AIXBgn/GOFclJCR4SkpKUZcBADiLvvzySzVs2LCoywBQTOT2b4qZpbp7wonzMsQCAAAACCAgAwAAAAEEZAAAACCAgAwAAAAEEJABAACAAAIyAAAAEEBABgCgEDz77LORB3IAJ1q5cqUWL158Vte5bds2vfrqq2d1ncUFARkAgDyYmQYOHBh5f+zYMVWuXFndunXLNt/48eNVsWJFVaxYUZKUlpam9957LzJ97NixmjRp0s+uo6DL165dWzt37jzl+du3b6/i/vyB090nBdWsWTO98cYbWr58+WktN3r0aH344Yf5znP48GFdd911aty4sWbOnClJ2rNnjx566CF17Ngxz+WeeeYZ/f3vfz+tes4Ve/bs0d/+9rcz1j9P0gMAIA8VKlTQmjVrdOjQIZUrV04LFixQtWrVcsw3evTobO/T0tKUkpKiG2644WyVWiy4u9xdJUoUn/N3WdtUsmRJ/eUvfznt5cePH3/SebIecZ6WlhZpi4qK0owZM/Jc5tixY7rzzjtPu568+rrggrMbKbMC8t13331G+i8+n0AAQLH14INS+/aF+/Pgg6e27htuuEHvvvuuJGn69Onq379/ZNqBAwc0ZMgQJSYmqkmTJpo7d66OHDmi0aNHa+bMmdnO6K1bt07t27dX3bp1NWXKlEgfTz31lGJiYhQTE6PJkydH2idMmKArr7xSrVu31tdffx1p37hxo7p06aJmzZqpTZs2+uqrr3LUvGvXLnXu3FnR0dEaOnSogk/Nfe2115SYmKjGjRvrjjvu0PHjx/Pd/unTpys2NlYxMTEaOXJkpP3CCy/Uo48+qvj4eLVs2VLbt2+P1NeyZUvFxsbqscce04UXXhhZZuLEiWrevLni4uI0ZswYSdLmzZvVoEED3XrrrYqJidGWLVuyrX/8+PFq3ry5YmJiNGzYsMi2BM9y79y5U7Vr185R+6JFi9S2bVt17dpVDRo00J133hl5/HWWzZs3KyYmJvJ+0qRJGjt2rCRpypQpatSokeLi4tSvX78c/b/88svq0aOH2rdvr/r162vcuHF5blNu237gwAF17dpV8fHxiomJiXxWggYPHqxZs2ZJCp31HjNmjJo2barY2Fh99dVX2rFjhwYOHKjk5GQ1btxYGzduVGpqqtq1a6dmzZopKSlJP/74Y2SfPfjgg0pISNCf//znbH+ZyOtzFVx/1nHP2rdt2rRR9+7d1ahRIx0/flwjRoyIbOOzzz4bma9du3bq0aOH6tatq0ceeUTTpk1TYmKiYmNjtXHjRklSenq6evfurebNm6t58+b65JNPJIX+ejJkyJAc351HHnlEGzduVOPGjTVixIgc+62gCMgAAOSjX79+mjFjhjIyMvT555+rRYsWkWkTJkzQtddeq5UrV2rhwoUaMWKEjh49qvHjx6tv375KS0tT3759JUlfffWVPvjgA61cuVLjxo3T0aNHlZqaqpdeekmffvqpVqxYoeeff16fffaZUlNTNWPGjMhQjeTk5Mg6hw0bpqlTpyo1NVWTJk3K9QzauHHj1Lp1a61du1a9evXS999/Lyn0qN2ZM2fqk08+UVpamkqWLKlp06blue3btm3TyJEj9c9//lNpaWlKTk7WnDlzJIXCXcuWLbV69Wq1bdtWzz//vCTpgQce0AMPPKAvvvhC1atXj/Q1f/58rV+/XitXrlRaWppSU1O1ZMkSSdL69et19913a+3atapVq1a2Gu69914lJydHzuS/8847p3P4tHLlSk2dOlXr1q3Txo0b9eabb57ysk8++aQ+++wzff7553rmmWfy7H/27Nn6/PPP9cYbb0RCe3Cbvv76a33zzTdauXKlPvvsMyUnJ2vx4sX6v//7P11xxRVavXq11qxZoy5dupy0pssuu0yrVq3SXXfdpUmTJqlKlSr63//9X7Vp00ZpaWmqWbOm7rvvPs2aNUupqakaMmSIHn300cjyR44cUUpKih5++OFs/Z7K5+pEq1at0p///Gd98803euGFF3TJJZcoOTlZycnJev7557Vp0yZJ0urVq/XMM8/oyy+/1KuvvhrZF0OHDtXUqVMlhT43v/nNb5ScnKzZs2dr6NChkfXk9t158sknVa9ePaWlpWnixIknrfV0McQCAHDOC5xYPevi4uK0efNmTZ8+PceQifnz52vevHmRs3AZGRmRMHqirl27qkyZMipTpoyqVKmi7du3a+nSperVq5cqVKggSbrpppv08ccfKzMzU7169VL58uUlSd27d5ck7d+/X8uWLdPNN98c6ffw4cM51rVkyZJIEOzatWtkbPRHH32k1NRUNW/eXJJ06NAhValSJc9tT05OVvv27VW5cmVJ0oABA7RkyRL17NlTpUuXjozFbtasmRYsWCBJWr58eSRE33LLLRo+fHhkX82fP19NmjSJbMv69etVs2ZN1apVSy1btsy1hoULF+qPf/yjDh48qN27dys6Olo33nhjnjWfKDExUXXr1pUk9e/fX0uXLlWfPn1Oadm4uDgNGDBAPXv2VM+ePXOdp1OnTqpUqZKk0PFbunSpevbsmW2b5s+fr2XLlqlDhw6SQsMDNm3apKuvvloPP/ywRo4cqW7duqlNmzYnremmm26SFNrnuYX9r7/+WmvWrFGnTp0kScePH1fVqlUj07N+YQs61c/ViRITE1WnTp3INn7++eeRs8179+7V+vXrVbp0aTVv3jxSQ7169dS5c2dJUmxsrBYuXChJ+vDDD7Vu3bpI3//+97+1f/9+Sbl/d840AjIAACfRvXt3DR8+XIsWLdKuXbsi7e6u2bNnq0GDBtnm//TTT3P0UaZMmcjrkiVL6tixY6ddR2ZmpqKiorKNNT0d7q5Bgwbp97///c9aPqhUqVIyM0mntj3urlGjRumOO+7I1r558+bILwgnysjI0N13362UlBTVqFFDY8eOVUZGhiTpggsuiAyXyGrLTVaNeb0P9nNiX++++66WLFmit99+WxMmTNAXX3yRY6xtXv0Ht8nddd999+U65nfVqlV677339Nhjj6ljx445xrOfKOtzlNc+d3dFR0fneTFgbvs6v89VcP9kZmbqyJEjufbl7po6daqSkpKyLb9o0aJsn/0SJUpE3pcoUSKyDZmZmVqxYoXKli2b5zbnt92FjSEWAACcxJAhQzRmzBjFxsZma09KStLUqVMj42KzLpa66KKLtG/fvpP226ZNG82ZM0cHDx7UgQMH9NZbb6lNmzZq27at5syZo0OHDmnfvn16++23JUkXX3yx6tSpozfeeENSKJSsXr06R79t27bV66+/Lkl6//33I7ef69ixo2bNmqUdO3ZIknbv3q3vvvsuz/oSExO1ePFi7dy5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7on0M2bMGG/VqpVnZGR4enq6X3rppX7kyBFPSUnxmJgY379/v+/bt88bNWrkq1atirQfOHDA9+7d6/Xq1fOJEye6u/u1117r33zzjbu7r1ixwjt06JCj7vvuu8/HjRvn7u7vvPOOS/L09HRft26dd+vWzY8cOeLu7nfddZe/8sorOZZv166dJycn+w8//OA1atTwHTt2+NGjR71Dhw7+1ltvubu7JJ83b567u48YMcJ/97vfubt7165d/fXXX3d396efftorVKjg7u4ffPCB33777Z6ZmenHjx/3rl27+uLFi33Tpk1uZr58+fJcj8GuXbsirwcOHBhZZ1aN7u7p6eleq1atHMsuXLjQy5Qp4xs3bvRjx475dddd52+88Ya7u9eqVcvT09N906ZNHh0dHVlm4sSJPmbMGHd3r1q1qmdkZLh76Pie6KWXXvJf/epXvnPnTj948KBHR0d7cnJyjm364IMPfOjQoZ6ZmenHjh3z66+/3hctWuSzZs3yoUOHRvrbs2dPjnXkVsOYMWMinwd39+joaN+0aZNv2rTJJfnSpUvd3f22227ziRMn+pEjR7xVq1a+Y8cOd3efMWOG33bbbZH9eNddd0X6Cvad12dt0KBBkf3o7pFjvHDhQi9fvrx/++237u7+7LPPRj4XGRkZ3qxZM//222994cKFfskll/i2bds8IyPDr7jiCh89erS7u0+ePNkfeOABd3fv37+/f/zxx+7u/t133/lVV10VqTG379OJx/JE2f5NCZOU4rlkT4ZYAACQj7i4OG3evFnTp0/PMWRi/vz5mjdvXuSMW0ZGhr7//vtc++natavKlCmjMmXKqEqVKtq+fbuWLl2qXr16qUKFCpKkm266SR9//LEyMzPVq1cvlS9fXpLUvXt3SdL+/fu1bNky3XzzzZF+Dx8+nGNdS5Ys0ZtvvhlZb9bY6I8++kipqalq3ry5JOnQoUOqUqVKntuenJys9u3bq3LlypKkAQMGaMmSJerZs6dKly4dGYvdrFkzLViwQJK0fPlyzZkzR5J0yy23aPjw4ZF9NX/+fDVp0iSyLevXr1fNmjVVq1YttWzZMtcaFi5cqD/+8Y86ePCgdu/erejoaN1444151nyixMRE1a1bV5LUv39/LV26VH369DmlZePi4jRgwAD17NlTPXv2zHWeTp06qVKlSpJCx2/p0qXq2bNn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9Qx4AADOJjPTwIEDI++PHTumypUrq1u3btnmGz9+vCpWrKiKFStKCj3x67333otMHzt2rCZNmvSz6yjo8rVr1873YRonat++vc71u0cNHjw42xP09uzZo4ceekgdO3Y86bJz5szRunXrTjrf6NGj9eGHHxaozsLy8ssva9u2bUVdxnmjUO9i4e57JC2U1EpSlJll3We5uqQfwq9/kFRDksLTL5G0SwAAnGMqVKigNWvW6NChQ5JCjxWuVq1ajvlGjx6t//qv/4q8PzEg49S4uzIzM3/WslFRUZoxY4auuOKKk857qgF5/Pjxuu6663K0Hz9+/GfVWBAE5LOrwA8KMbPKko66+x4zKyepk0IX3i2U1EfSDEmDJGU9Rmde+P3y8PR/+i/hZswAgCLzfw/+n/6V9q9C7fNXjX+lLpO7nHS+G264Qe+++6769Omj6dOnq3///vr4448lSQcOHNB9992nNWvW6OjRoxo7dqyuv/56jR49WocOHdLSpUs1atQoSdK6devUvn17ff/993rwwQcjj65+6qmnIg/TGDp0qB588EFJ0oQJE/TKK6+oSpUqqlGjhpo1ayZJ2rhxo+655x6lp6erfPnyev755yOPR86ya9cu9e/fXz/88INatWql4P9mX3vtNU2ZMkVHjhxRixYt9Le//U0lS5bMc/unT5+u//mf/5G7q2vXrvrDH0LX1l944YV64IEH9M4776hcuXKaO3euLr/8cm3cuFEDBgzQgQMH1KNHD02ePFn794cuVZo4caL+8Y9/6PDhw+rVq5fGjRunzZs3KykpSS1atFBqaqree+891apVK7L+8ePH6+2339ahQ4d09dVX69lnn9WJly6lpqbqoYce0v79+3XZZZfp5ZdfVtWqVfX888/rueee05EjR/TrX/9ar776qtLS0jRv3jwtXrxYTzzxhGbPnq19+/bpzjvv1MGDB1WvXj29+OKLqlixogYPHqxu3bqpT58+ql27tvr27asFCxbot7/9rS699FKNGTNGhw8fVr169fTSSy/pwgsvVO3atdW/f3+9//77uuCCC/Tcc89p1KhR2rBhg0aMGKE777wz331x/fXXq3Xr1lq2bJmqVaumuXPn6t1331VKSooGDBigcuXKafny5SpXrtxJP7v4+QrjDHJVSQvN7HNJyZIWuPs7kkZKesjMNig0xviF8PwvSKoUbn9I0iOFUAMAAGdEv379NGPGDGVkZOjzzz9XixYtItMmTJiga6+9VitXrtTChQs1YsQIHT16VOPHj1ffvn2Vlpamvn37SpK++uorffDBB1q5cqXGjRuno0ePKjU1VS+99JI+/fRTrVixQs8//7w+++wzpaamasaMGZEz0cnJyZF1Dhs2TFOnTlVqaqomTZqku+++O0fN48aNU+vWrbV27Vr16tVL33//vaTQgxJmzpypTz75RGlpaSpZsqSmTZuW57Zv27ZNI0eO1D//+U+lpaUpOTlZc+bMkRT65aBly5ZavXq12rZtq+eff16S9MADD+iBBx7QF198oerVq0f6mj9/vtavX6+VK1cqLS1NqampWrJkiSRp/fr1uvvuu7V27dps4ViS7r33XiUnJ0fO5J/42OijR4/qvvvu06xZs5SamqohQ4bo0UcflSTddNNNSk5O1urVq9WwYUO98MILuvrqq9W9e3dNnDhRaWlpqlevnm699Vb94Q9/0Oeff67Y2FiNGzcu1/1RqVIlrVq1Stddd52eeOIJffjhh1q1apUSEhL01FNPRearWbOm0tLS1KZNm8hQkBUrVmjMmDGntC/uuecerV27VlFRUZo9e7b69OmjhIQETZs2TWlpaYTjs6DAZ5Dd/XNJTXJp/1ah8cgntmdIurmg6wUAnD9O5UzvmRIXF6fNmzdr+vTpuuGGG7JNmz9/vubNmxcZH5yRkREJoyfq2rWrypQpozJlyqhKlSravn27li5dql69eqlChQqSQoHu448/VmZmpnr16qXy5ctLkrp37y5J2r9/v5YtW6abb/7P/0YPHz6cY11LlizRm2++GVlv1tjojz76SKmpqWrevLkk6dChQ6pSpUqe256cnKz27dsr61qgAQMGaMmSJerZs6dKly4dGYvdrFkzLViwQJK0fPnySIi+5ZZbNHz48Mi+mj9/vpo0aRLZlvXr16tmzZqqVauWWrZsmWsNCxcu1B//+EcdPHhQu3fvVnR0tG688cbI9K+//lpr1qxRp06dJIWGP1StWlWStGbNGj322GPas2eP9u/fr6SkpBz97927V3v27FG7du0kSYMGDcq2f4OyftlZsWKF1q1bp2uuuUaSdOTIEbVq1SoyX9bxio2N1f79+3XRRRfpoosuUpkyZbRnz55890WdOnXUuHHjyH7dvHlzrrXgzCpwQAYA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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "A = (0, 0)\n", "B = (20, 0) # pente 0\n", "pente = (B[1] - A[1]) / (B[0] - A[0])\n", "plot_discrete_line(A=A, B=B, pente=pente,\n", " methodes=methodes,\n", " edgecolors=['red', 'blue', 'orange', 'purple']\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Avec une pente $0 < \\alpha < 1$, tous les `yi += O/1` suivent la méthode de Bresenham :" ] }, { "cell_type": "code", "execution_count": 294, "metadata": { "ExecuteTime": { "end_time": "2021-01-24T22:58:58.714252Z", "start_time": "2021-01-24T22:58:58.301638Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Méthode de Bresenham (après symétries éventuelles) avec une pente 0 <= pente = 0.35 <= 1\n", "Méthode de longer au plus près inférieurement (après symétries éventuelles) avec une pente 0 <= pente = 0.35 <= 1\n", "Méthode de longer au plus près supérieurement (après symétries éventuelles) avec une pente 0 <= pente = 0.35 <= 1\n", "Méthode de longer aléatoirement (après symétries éventuelles) avec une pente 0 <= pente = 0.35 <= 1\n" ] }, { "data": { "image/png": "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jh07ct9995GTk+N1/9PS0qhVq5Y7CNeuXZu//vWvREZGsn79+gK3l5OTw9ixYwkPD6dDhw78+9//9lr72LFjefTRR+nevTutW7dmwYIF+fofMWIEV199NaNHj3bvy9SpU4mKiiI8PJzx48e7l/fu3Zs///nPdO3alXbt2hETE8Ott97KlVdeybPPPut1X0XcrLUV/qtLly5WREQuLTt37vzfncces/b660v367HHLlhDrVq17JYtW+xtt91mMzIybGRkpF2xYoUdNGiQtdbap59+2s6ZM8daa+2pU6fslVdeadPS0uzs2bPtQw895N7OpEmT7LXXXmszMzNtYmKirV+/vj179qyNjY214eHhNi0tzaamptr27dvbTZs2uZenp6fblJQU26ZNG/vSSy9Za63t27ev3bNnj7XW2g0bNtg+ffqcV/cjjzxip0yZYq219osvvrCATUxMtDt37rSDBw+2Z8+etdZa+8ADD9j333//vPWvv/56e9VVV9kOHTrYoKAg+9Zbb7kfA+z8+fPdr1FB24uNjbU33nije51Tp055rf2uu+6yI0aMsDk5OXbHjh22TZs21lprV6xYYevUqWMPHz5sc3JybLdu3ezq1auttdaePHnSvf0xY8bYJUuWuGv/29/+Zq21dvr06bZp06b22LFjNjMz0zZr1swmJSUV/oJLlZbvZ4oLEGsLyJ4aYiEiIuJFREQECQkJzJ0797whE8uWLWPJkiXu8cGZmZkcOnSowO0MGjSIwMBAAgMDady4McePH2fNmjUMHz6cWrVqAXDrrbeyevVqcnNzGT58ODVr1gRgyJAhgPNo6rp167j99tvd283Kyjqvr1WrVrFo0SJ3v3ljo7/77jvi4uKIiooCICMjg8aNGxdYb94Qi8TERLp3785NN91Ey5Yt8ff357bbbvO6vVtuuYWff/6ZRx55hEGDBtG/f/8L1j5s2DD8/Pxo3749x48fdy+Pjo6mefPmAHTs2JGEhASuu+46VqxYwb/+9S/OnDlDcnIyYWFh3HLLLfmerw4dOhAWFkbTpk0BaN26NYcPH6ZBgwYF7rNIHgVkERGp+DyGHpSHIUOG8MQTT7By5UpOnjzpXm6tZeHChbRt2zZf+x9//PG8bQQGBrpv+/v743A4il1Hbm4uwcHBxMfHF3tdcNZ711138cILLxR5nUaNGtG5c2d+/PFH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LSryui+++CKbN29m69atvPXWW4Vuf+HChWzdupVPP/3UHdo992n37t3s2bOHjRs3snnzZmJiYvjhhx/473//yxVXXMGWLVvYvn07N9100wVratiwIZs2beKBBx7g5ZdfpnHjxvzf//0fPXv2JD4+npCQEB555BEWLFhAXFwcd999N88884x7/bNnzxIbG8tf//rXfNstyvvqXJs2beLVV19lz549zJo1i7p16xITE0NMTAzvvPMOBw4cAGDLli289dZb/PTTT8yZM8f9XIwbN44ZM2YAzvfNn//8Z2JiYli4cCHjxo1z91PQZ+fFF1+kTZs2xMfH89JLL12w1uLSEAsREanwPA6s+lxERAQJCQnMnTv3vCETy5YtY8mSJe6jcJmZme4weq5BgwYRGBhIYGAgjRs35vjx46xZs4bhw4dTq1YtAG699VZWr15Nbm4uw4cPp2bNmgAMGTIEgLS0NNatW8ftt9/u3m5WVtZ5fa1atcodBAcNGuQeG/3dd98RFxdHVFQUABkZGTRu3LjQfY+JiaF37940atQIgNGjR7Nq1SqGDRtG9erV3WOxu3TpwvLlywFYv369O0TfeeedPPHEE+7natmyZXTq1Mm9L3v37iUkJISWLVvSrVu3AmtYsWIF//rXvzhz5gzJycmEhYVxyy23FFrzuaKjo2ndujUAo0aNYs2aNYwYMaJI60ZERDB69GiGDRvGsGHDCmzTr18/GjRoADhfvzVr1jBs2LB8+7Rs2TLWrVtHnz59AOfwgAMHDtC9e3f++te/MmHCBAYPHkzPnj0vWNOtt94KOJ/zgsL+7t272b59O/369QMgJyeHpk2buh/P+4PNU1HfV+eKjo6mVatW7n3cunWr+2hzSkoKe/fupXr16kRFRblraNOmDf379wegQ4cOrFixAoBvv/2WnTt3urf922+/kZaWBhT82SlrCsgiIiIXMGTIEJ544glWrlzJyZMn3cuttSxcuJC2bdvma//jjz+et43AwED3bX9/fxwOR7HryM3NJTg4ON9Y0+Kw1nLXXXfxwgsvXNT6nqpVq4YxBija/lhrefrpp7nvvvvyLU9ISHD/gXCuzMxMHnzwQWJjY2nRogWTJ08mMzMTgICAAPdwibxlBcmrsbD7nts5d1tffvklq1atYunSpTz//PNs27btvLG2hW3fc5+stTzyyCMFjvndtGkTX331Fc8++yw33HDDeePZz5X3PirsObfWEhYWVujJgAU9197eV57PT25uLmfPni1wW9ZaZsyYwYABA/Ktv3LlynzvfT8/P/d9Pz8/9z7k5uayYcMGgoKCCt1nb/td2jTEQkRE5ALuvvtuJk2aRIcOHfItHzBgADNmzHCPi807Weqyyy4jNTX1gtvt2bMnixcv5syZM6Snp/PZZ5/Rs2dPevXqxeLFi8nIyCA1NZWlS5cCUKdOHVq1asWnn34KOEPJli1bzttur169+PjjjwH4+uuv3dPP3XDDDSxYsIATJ04AkJyczMGDBwutLzo6mh9++IGkpCRycnKYO3cu119/vdd96tatGwsXLgTId5LYgAEDePfdd91HBY8ePequozB5YbVhw4akpaXlGwsbGhpKXFwcQL7l59q4cSMHDhwgNzeX+fPnc9111+V7/PLLL+fEiROcPHmSrKws9xCO3NxcDh8+TJ8+ffjnP/9JSkqKu3ZPy5cvJzk5mYyMDBYvXkyPHj3OazNgwABmz57tXv/IkSOcOHGCY8eOUbNmTcaMGcOTTz7Jpk2bvD4fRdG2bVsSExPdATk7O5sdO3Z4Xcfb+8rzeV6yZAnZ2dkFbmPAgAG8+eab7sf37NlDenp6kevu37+/e7gFcME/Aov6GbtYCsgiIiIX0Lx5cx599NHzlj/33HNkZ2cTERFBWFgYzz33HAB9+vRh586d+U7SK0jnzp0ZO3Ys0dHRXHPNNYwbN45OnTrRuXNnRo4cSWRkJDfffLN7SATARx99xKxZs4iMjCQsLIzPP//8vO1OmjSJVatWERYWxqJFiwgJCQGgffv2TJs2jf79+xMREUG/fv3cJ3AVpGnTprz44ov06dOHyMhIunTpwtChQ70+V9OnT+eVV14hIiKCffv2UbduXcAZgO68806uvfZaOnTowIgRIy4YcIKDg7n33nsJDw9nwIAB+Z6HJ554gjfffJNOnTp5na4tKiqKhx9+mHbt2tGqVSuGDx+e7/Fq1aoxceJEoqOj6devH1dffTXgHJowZswYOnToQKdOnXj00UcJDg4+b/vR0dHcdtttREREcNttt9G1a9fz2py777fffjupqals27bNfcLklClTePbZZ70+H0VRvXp1FixYwIQJE4iMjKRjx46sW7fugusV9r669957+eGHH4iMjGT9+vWFHu0fN24c7du3p3PnzoSHh3PfffcV60jva6+9RmxsLBEREbRv377QMd95GjRoQI8ePQgPDy+Tk/SM55mtFVXXrl1tVZ+PUURE8vvpp59o165deZchxXTmzBlq1KiBMYZ58+Yxd+7cAkO8L6xcuZKXX3652Cf2FdV7771HbGzsRU3fJr5X0M8UY0yctfa8v2o0BllERERKTVxcHA8//DDWWoKDg3n33XfLuySRYtMRZBERqZB0BFlESlNxjiCXyhhkY0yCMWabMSbeGBPrWlbfGLPcGLPX9b2ea7kxxrxmjNlnjNlqjOlcGjWIiIiIiJSG0jxJr4+1tqNHCn8K+M5aeyXwnes+wM3Ala6v8cCbpViDiIiIiEiJlOUsFkOB91233weGeSz/wDptAIKNMU0LWF9ERERExOdKKyBbYJkxJs4YM9617HJrbd7cMb8Cl7tuNwM8L7R+xLUsH2PMeGNMrDEmNjExsZTKFBERKRtvv/22e75hkXNt3LiRH374obzL4NixY8yZM6e8y6jwSisgX2et7Yxz+MRDxpheng9a55mAxTob0Fo701rb1VrbNe8SlyIiIr5kjGHMmDHu+w6Hg0aNGrkvsZxn6tSp1KtXz31J5/j4eL766iv345MnT3ZfjvpilHT90NBQr3MFn6t3795U9ZPji/uclFSXLl349NNPC73CnS+cPn2av/zlL9xwww2Ftnnrrbf44IMPfFhV6Tl9+jRvvPFGqWyrVKZ5s9YedX0/YYz5DIgGjhtjmlprf3ENoci7XM5RoIXH6s1dy0RERCqUWrVqsX37djIyMqhRowbLly+nWbPz/ul53uWB4+PjiY2NZeDAgb4qtUqw1mKtxc+v6lzHLG+f/P39y32+5ODg4HxXNzyXw+Eo8HLYF8PhcJx3We6ylheQH3zwwRJvq8TvQGNMLWPMZXm3gf7AdmAJcJer2V1A3izhS4A/umaz6AakeAzFEBERqVAGDhzIl19+CcDcuXMZNWqU+7H09HTuvvtuoqOj6dSpE59//jlnz55l4sSJzJ8/P9+V9Hbu3Env3r1p3bo1r732mnsbr7zyCuHh4YSHhzN9+nT38ueff56rrrqK6667jt27d7uX79+/n5tuuokuXbrQs2dPdu3adV7NJ0+epH///oSFhTFu3Dg8p3T98MMP3Vdvu++++8jJyfG6/3PnzqVDhw6Eh4czYcIE9/LatWvzzDPPEBkZSbdu3Th+/Li7vm7dutGhQweeffZZateu7V7npZdeIioqioiICCZNmgRAQkICbdu25Y9//CPh4eEcPnw4X/9Tp04lKiqK8PBwxo8f794Xz6PcSUlJhIaGnlf7ypUr6dWrF4MGDaJt27bcf//95Obm5muTkJBAeHi4+/7LL7/M5MmTAefV3dq3b09ERAR33HHHedt/7733GDp0KL179+bKK69kypQphe5TQfuenp7OoEGDiIyMJDw8vMCrLhZUw7n/UQgPDychIYGEhASuvvpqRo8eTbt27RgxYgRnzpwBnPNTX3/99XTp0oUBAwa4r6DYu3dvHn/8cbp27cqrr76ab9uFvdfGjh2b7/Leea/xypUr6dmzJ0OGDKF9+/bk5OTw5JNPuvf77bffdre7/vrrGTp0KK1bt+app57io48+Ijo6mg4dOrB//34AEhMTue2224iKiiIqKoq1a9e69//uu+8+7/P01FNPsX//fjp27Fjyq+vl/WVzsV9Aa2CL62sH8IxreQOcs1fsBb4F6ruWG+B1YD+wDeh6oT66dOliRUTk0rJz587/3Yl9zNrl15fuV+xjF6yhVq1adsuWLfa2226zGRkZNjIy0q5YscIOGjTIWmvt008/befMmWOttfbUqVP2yiuvtGlpaXb27Nn2oYcecm9n0qRJ9tprr7WZmZk2MTHR1q9f3549e9bGxsba8PBwm5aWZlNTU2379u3tpk2b3MvT09NtSkqKbdOmjX3ppZestdb27dvX7tmzx1pr7YYNG2yfPn3Oq/uRRx6xU6ZMsdZa+8UXX1jAJiYm2p07d9rBgwfbs2fPWmutfeCBB+z7779/3vrXX3+9jYmJsUePHrUtWrSwJ06csNnZ2bZPnz72s88+s9Y6h04uWbLEWmvtk08+af/xj39Ya60dNGiQ/fjjj6211r755pu2Vq1a1lprv/nmG3vvvffa3Nxcm5OTYwcNGmR/+OEHe+DAAWuMsevXry/wNTh58qT79pgxY9x95tVorbWJiYm2ZcuW5627YsUKGxgYaPfv328dDoe98cYb7aeffmqttbZly5Y2MTHRHjhwwIaFhbnXeemll+ykSZOstdY2bdrUZmZmWmudr++5Zs+ebZs0aWKTkpLsmTNnbFhYmI2JiTlvn7755hs7btw4m5ubax0Oh7355pvtypUr7YIFC+y4cePc2zt9+vR5fRRUw6RJk9zvB2utDQsLswcOHLAHDhywgF2zZo211to//elP9qWXXrJnz5611157rT1x4oS11tp58+bZP/3pT+7n8YEHHnBvy3Pbhb3X7rrrLvfzaK11v8YrVqywNWvWtD///LO11tq3337b/b7IzMy0Xbp0sT///LNdsWKFrVu3rj127JjNzMy0V1xxhZ04caK11trp06fbxx57zFpr7ahRo+zq1auttdYePHjQXn311e4aC/o8nftanivfzxQXINYWkD1LfOzbWvszEFnA8pPAeYNcXMU8VNJ+RUREfCEiIoKEhATmzp173pCJZcuWsWTJEvcRt8zMTA4dOlTgdgYNGkRgYCCBgYE0btyY48ePs2bNGoYPH06tWrUAuPXWW1m9ejW5ubkMHz6cmjVrAjBkyBAA0tLSWLduHbfffrt7u1lZWef1tWrVKhYtWuTuN29s9HfffUdcXBxRUVEAZGRk0Lhx40L3PSYmht69e5N3LtDo0aNZtWoVw4YNo3r16u6x2F26dGH58uUArF+/nsWLFwNw55138sQTT7ifq2XLltGpUyf3vuzdu5eQkBBatmxJt27dCqxhxYoV/Otf/+LMmTMkJycTFhbGLbfcUmjN54qOjqZ169YAjBo1ijVr1jBixIgirRsREcHo0aMZNmwYw4YNK7BNv379aNCgAeB8/dasWcOwYcPy7dOyZctYt24dffr0AZxDAQ4cOED37t3561//yoQJExg8eDA9e/a8qBo8tWjRgh49egAwZswYXnvtNW666Sa2b99Ov379AMjJyaFp0/9NIDZy5MjztlPU99q5oqOjadWqlXu/t27d6j7anJKSwt69e6levTpRUVHuGtq0aUP//v0B6NChAytWrADg22+/ZefOne5t//bbb6SlpQEFf55Kky41LSIiFV+X6eXa/ZAhQ3jiiSdYuXIlJ0+edC+31rJw4ULatm2br/2PP/543jYCAwPdt/39/XE4HMWuIzc3l+DgYOLj44u9Ljjrveuuu3jhhRcuan1P1apVwxgDFG1/rLU8/fTT3HffffmWJyQkuP9AOFdmZiYPPvggsbGxtGjRgsmTJ5OZmQlAQECAe7hE3rKC5NVY2H3P7Zy7rS+//JJVq1axdOlSnn/+ebZt23beuNrCtu+5T9ZaHnnkkQLH927atImvvvqKZ599lhtuuOG88eyF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VE3lFZCPAi087jd3Lbton332WYkKEhEREREB8CunfmOAK40xrYwx1YE7gCXlVIuIiIiIiFu5HEG21jqMMQ8D3+Cc5u1da+2O8qhFRERERMRTuY1BttZ+BXxVXv2LiIiIiBSkvIZYiIiIiIhUSArIIiIiIiIeFJBFRERERDwoIIuIiIiIeFBAFhERERHxoIAsIiIiIuJBAVlERERExIMCsoiIiIiIBwVkEREREREPCsgiIiIiIh4UkEVEREREPCggi4iIiIh4UEAWEREREfGggCwiIiIi4kEBWURERETEgwKyiIiIiIgHBWQREREREQ8KyCIiIiIiHhSQRUREREQ8KCCLiIiIiHhQQBYRERER8aCALCIiIiLiQQFZRERERMSDArKIiIiIiAcFZBERERERDwrIIiIiIiIeFJBFRERERDwoIIuIiIiIeFBAFhERERHxoIAsIiIiIuJBAVlERERExIMCsoiIiIiIBwVkEREREREPCsgiIiIiIh4UkEVEREREPCggi4iIiIh4UEAWEREREfGggCwiIiIi4kEBWURERETEgwKyiIiIiIgHBWQREREREQ8KyCIiIiIiHhSQRUREREQ8KCCLiIiIiHhQQBYRERER8aCALCIiIiLiQQFZRERERMSDArKIiIiIiAcFZBERERERDwrIIiIiIiIeFJBFRERERDwoIIuIiIiIeChRQDbG3G6M2WGMyTXGdD3nsaeNMfuMMbuNMQM8lt/kWrbPGPNUSfoXERERESltJT2CvB24FVjludAY0x64AwgDbgLeMMb4G2P8gdeBm4H2wChXWxERERGRCiGgJCtba38CMMac+9BQYJ61Ngs4YIzZB0S7Httnrf3Ztd48V9udJalDRERERKS0lNUY5GbAYY/7R1zLClt+HmPMeGNMrDEmNjExsYzKFBERERHJ74JHkI0x3wJNCnjoGWvt56VfkpO1diYwE6Br1662rPoREREREfF0wYBsrb3xIrZ7FGjhcb+5axlelouIiIiIlLuyGmKxBLjDGBNojGkFXAlsBGKAK40xrYwx1XGeyLekjGoQERERESm2Ep2kZ4wZDswAGgFfGmPirbUDrLU7jDGf4Dz5zgE8ZK3Nca3zMPAN4A+8a63dUaI9EBEREREpRcbaij+8t2vXrjY2Nra8yxARERGRKsQYE2et7Xrucl1JT0RERETEgwKyiIiIiIgHBWQREREREQ8KyCIiIiIiHhSQRUREREQ8KCCLiIiIiHhQQBYRERER8aCALCIiIiLiQQFZRERERMSDArKIiIiIiAcFZBERERERDwrIIiIiIiIeFJBFRERERDwoIIuIiIiIeFBAFhERERHxoIAsIiIiIuJBAVlERERExIMCsoiIiIiIBwVkEREREREPCsgiIiIiIh4UkEVEREREPCggi4iIiIh4UEAWEREREfGggCwiIiIi4kEBWURERETEgwKyiIiIiIgHBWQREREREQ8KyCIiIiIiHhSQRUREREQ8KCCLiIiIiHhQQBYRERER8aCALCIiIiLiQQFZRERERMSDArKIiIiIiAdjrS3vGi7IGJMIHCxi84ZAUhmWIxWDXudLh17rS4de60uDXudLR2V4rVtaaxudu7BSBOTiMMbEWmu7lncdUrb0Ol869FpfOvRaXxr0Ol86KvNrrSEWIiIiIiIeFJBFRERERDxUxYA8s7wLEJ/Q63zp0Gt96dBrfWnQ63zpqLSvdZUbgywiIiIiUhJV8QiyiIiIiMhFU0AWEREREfFQZQKyMeYmY8xuY8w+Y8xT5V2PlIwxpoUxZoUxZqcxZocx5jHX8vrGmOXGmL2u7/Vcy40x5jXX67/VGNO5fPdAisMY42+M2WyM+cJ1v5Ux5kfX6znfGFPdtTzQdX+f6/HQci1cisUYE2yMWWCM2WWM+ckYc60+01WPMebPrp/b240xc40xQfpMVw3GmHeNMSeMMds9lhX7M2yMucvVfq8x5q7y2JcLqRIB2RjjD7wO3Ay0B0YZY9qXb1VSQg7gr9ba9kA34CHXa/oU8J219krgO9d9cL72V7q+xgNv+r5kKYHHgJ887v8T+Le19nfAKeAe1/J7gFOu5f92tZPK41Xgv9baq4FInK+5PtNViDGmGfAo0NVaGw74A3egz3RV8R5w0znLivUZNsbUByYB1wDRwKS8UF2RVImAjPMJ3met/dlaexaYBwwt55qkBKy1v1hrN7lup+L8RdoM5+v6vqvZ+8Aw1+2hwAfWaQMQbIxp6tuq5WIYY5oDg4D/c903QF9ggavJua9z3uu/ALjB1V4qOGNMXaAXMAvAWnvWWnsafaarogCghjEmAKgJ/II+01WCtXYVkHzO4uJ+hgcAy621ydbaU8Byzg/d5a6qBORmwGGP+0dcy6QKcP3LrRPwI3C5tfYX10O/Ape7bus9UHlNB/4G5LruNwBOW2sdrvuer6X7dXY9nuJqLxVfKyARmO0aTvN/xpha6DNdpVhrjwIvA4dwBuMUIA59pquy4n6GK8Vnu6oEZKmijDG1gYXA49ba3zwfs845CjVPYSVmjBkMnLDWxpV3LVLmAoDOwJvW2k5AOv/7Vyygz3RV4PpX+VCcfxBdAdSiAh4dlLJRlT7DVSUgHwVaeNxv7lomlZgxphrOcPyRtXaRa/HxvH+zur6fcC3Xe6By6gEMMcYk4Bwa1RfnONVg179nIf9r6X6dXY/XBU76smC5aEeAI9baH133F+AMzPpMVy03AgestYnW2mxgEc7PuT7TVVdxP8OV4rNdVQJyDHCl6yzZ6jhPCFhSzjVJCbjGoM0CfrLWvuLx0BIg74zXu4DPPZb/0XXWbDcgxeNfPlJBWWufttY2t9aG4vzcfm+tHQ2sAEa4mp37Oue9/iNc7avE0Yqqzlr7K3DYGNPWtegGYCf6TFc1h4Buxpiarp/jea+zPtNVV3E/w98A/Y0x9Vz/cejvWlahVJkr6RljBuIcy+gPvGutfb58K5KSMMZcB6wGtvG/sal/xzkO+RMgBDgI/N5am+z6QfwfnP/KOwP8yVob6/PC5aIZY3oDT1hrBxtjWuM8olwf2AyMsdZmGWOCgDk4x6QnA3dYa38up5KlmIwxHXGejFkd+Bn4E84DNfpMVyHGmCnASJyzEW0GxuEcY6rPdCVnjJkL9AYaAsdxzkaxmGJ+ho0xd+P8nQ7wvLV2tg93o0iqTEAWERERESkNVWWIhYiIiIhIqVBAFhERERHxoIAsIiIiIuJBAVlERERExIMCsoiIiIiIBwVkEREREREPCsgiIiIiIh7+f5d28BXm2Q8aAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "A = (0, 0)\n", "B = (20, 7) # pente 7/20\n", "pente = (B[1] - A[1]) / (B[0] - A[0])\n", "plot_discrete_line(A=A, B=B, pente=pente,\n", " methodes=methodes,\n", " edgecolors=['red', 'blue', 'orange', 'purple']\n", ")" ] }, { "cell_type": "code", "execution_count": 295, "metadata": { "ExecuteTime": { "end_time": "2021-01-24T22:59:15.372078Z", "start_time": "2021-01-24T22:59:14.973927Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Méthode de Bresenham (avant symétries) avec une pente = 2.857142857142857\n", "Méthode de Bresenham (après symétries éventuelles) avec une pente 0 <= pente = 0.35 <= 1\n", "Méthode de longer au plus près inférieurement (avant symétries) avec une pente = 2.857142857142857\n", "Méthode de longer au plus près inférieurement (après symétries éventuelles) avec une pente 0 <= pente = 0.35 <= 1\n", "Méthode de longer au plus près supérieurement (avant symétries) avec une pente = 2.857142857142857\n", "Méthode de longer au plus près supérieurement (après symétries éventuelles) avec une pente 0 <= pente = 0.35 <= 1\n", "Méthode de longer aléatoirement (avant symétries) avec une pente = 2.857142857142857\n", "Méthode de longer aléatoirement (après symétries éventuelles) avec une pente 0 <= pente = 0.35 <= 1\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsgAAAHwCAYAAAC7apkrAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAABqVUlEQVR4nO3dd3wVVf7/8ddJAgkQJEhRFAhgiZBCCwGlGCygohTFRYRVZAGVtbC7uuhXpa2uuvpzUdxVYbGsIqDoAtaFVZCmEAIR6UXpSgsgCQlp5/fHvQz3kkJILpmU9/PxyMNz5s6c+57hJn4yOTNjrLWIiIiIiIhHkNsBRERERETKExXIIiIiIiI+VCCLiIiIiPhQgSwiIiIi4kMFsoiIiIiIDxXIIiIiIiI+VCCLiIiIiPhQgSwiIiIi4kMFsogUmzFmnTEmMQDjvG2Mebr0iQKrtLkCdXwKGdvJdq7exxgTZoyZb4y5LdBjF/Be5fIzICICKpBFKixjzHZjTIYx5pgx5ogxZpkx5j5jzDn7vrbWRltrFwZ6XO++NAv0uGXN9/h49+m6c/0+AR43E+gLjDDGtPF97VzuT3nhxj4aY0KNMVONMTu838spxpgbi1i/mTHmc2PMYWPML8aYV40xIaetc4cxZoMxJt0Ys80Y0/Xc74lI5aICWaRiu8VaWxuIBJ4DRgNT3Y1U+ZxegFQ2vvtnrU231va01qa4GKkqCQF2AVcDdYAngQ+K+IXxn8B+oBHQxrvdyJMvGmOuB54H7gFqA92AH89NdJHKSwWySCVgrT1qrZ0LDADuNsbEABhjLjLGfGSMOWCM+ckY89DJbYwxo40xe7xnrTYZY64tarn3NecMm7f9iDFmjTHmqDFmpjEmrKB8xpi2xphV3jFnAgWu513XGmMu9en7/Sn+TO9b1D6fTS7v+4w2xqwB0o0xIcaYlsaYhd4z9uuMMb1PG2+7MeY6Y8y7QFPgE2NMmjHmz+cg23U+/cL+LZsYYz72vt8hY8yrZ9g/33zbjTF/8K57rven2OP4ZH/cGLPeeM6kvnXyM3CmsQr7/ARiH0vC+wvJOGvtdmttnrX2U+AnoH0hmzQHPrDWZlprfwG+BKJ9Xh8PTLDWfucdb4+1dk8gM4tUCdZafelLXxXwC9gOXFfA8p3A/Xh+AU4GxgDVgRZ4ziT1BKLwnLW6yLtNM+CSwpYX9J7e9grgIuB8YANwXwF5qgM7gD8A1YD+QDbwdCH7ZYFLffpv+65b1PsWtc9nm8v7PilAE6CGd52twP95t70GOAZEFXF8rvN5LdDZTr5PYf+WwcD3wN+BWngK0i6nZfXdv5P5xgOhwKXedXqdy/05m3FOy77Wm/18YGlxx6Loz0+J99G7/qfAkUK+Pi3m9/UFQCZwRSGv3wv8G6gJXOw9Dv28rwUDWcBjeD6ru4FXgRpu/7zSl74q2pfOIItUPnvx/I+/A9DAWjvBWptlrf0RmALcAeTiKYJaGWOqWc/Zq21FLC/MK9bavdbaVOATPH/yPV0nPEXRRGtttrV2FpBUyn0s7H2L2ueS5HrFWrvLWpvhXT8ceM479td4CqKBxcwc6GwnFfZvloCnCHzUes5SZlprlxSxfx3wFGfjrLUnrLVbgcnA7ed4f85mHF+verOnAs/g+Xco7ljF+dyedTZr7c3W2ohCvm4+w/5gjKkGTAPesdZuLGS1RXjOGP+KpwBeCcz2vnYBp34B6erdr7Z4pm2IyFmo1PPqRKqoi4FUPPOSLzLGHPF5LRhYbK3daowZBYwDoo0x/wX+WMTyvYW81y8+7eN4CrLTXQTssdZan2U7znanivm+he5zCXPtOm39XdbavNPWv7iYmQOdDYDC/s3wnF3dYa3NKSKT7/5F4j2jaow5uSwUWH2O9+dsxiks+w7vexR3rOJ8bkuT7awZz8W17+I5A/xAEet8iecXl6vw/ML2Jp45x38GMryrTrLW/uzd5iU8BfITgc4sUpnpDLJIJWKM6YCnYFuCp4D46bSzWLWttTcBWGvft9Z2wVMEWDz/ky10eSn8DFxsfKouPHM9C3Mcz5+PT7rwLN6ryH0uQS7fgm4v0MT43yWkKVDY/E57Wj/Q2U69UcH/ZruApqboCwx9M+4CfrbWXuHz1dxae+s53p+zGcdXk9PG2luKsU4qzT5ijPnCO3+5oK8vCntT73GZiucM8G3W2uxCVj3fu6+ves/yHwLeAk5+Tx/Gc1bZdz9O3ycRKQYVyCKVgDHmPGPMzcAM4D1r7Q945lke816IVcMYE2yMiTHGdDDGRBljrjHGhOKZ75gB5BW2vJTxvgVygIeMMdWMMbfi+fN/YVKAO715b8BzlX5xFbrPAci1HE/x/mfv+onALXiOeUH24Zmzek6zFfFvtgJPYfqcMaaW90K0zkXs3wrgqDHm/wrJd67252zG8fV7Y0xjY8z5eM6OzizFWCeVZh+x1t5orQ0v5KvQW7cBrwEt8dyVJqOwlay1B/FcwHe/8VxUGQHcDazxWe0t4EFjTENjTF08874/Lca+i4gPFcgiFdsnxphjeM50PQG8hOf2Tlhrc4Gb8cxD/Ak4CPwLz62kQvHcFu4gnj83NwQeL2J5iVlrs4BbgSF4pn4MAD4uYpOH8RSeR4BBnJpfWZz3KmqfS5XLu/4twI3ecf8J3FXEXNFngSeN544Xj5zDbAX+m3nf7xY8F9vtxHNmcUAR+3cyX2wh+c7J/pzNOKd5H5iH56K5bXguYCzpWCeVeB9LyhgTiefCuzbALz5nnAf5rPOFMeb/vN1bgRuAA3guxMvGUwSf9Bc887s347kAcTWeOdoichaM/5QwERGR8s0Ysx0YZq39n9tZRKRy0hlkEREREREfKpBFRERERHxoioWIiIiIiA+dQRYRERER8VGuHxRSv35926xZM7djiIiIiEgllJycfNBa2+D05eW6QG7WrBkrV650O4aIiIiIVELGmAKfUqopFiIiIiIiPlQgi4iIiIj4KNdTLERERM5kxo2lethjke744tlzNraIlF8VrkDOzs5m9+7dZGZmuh1FRCq4sLAwGjduTLVq1dyOIqV0dMevAR+zTuR5AR9TRCqGClcg7969m9q1a9OsWTOMMW7HEZEKylrLoUOH2L17N82bN3c7jgRAIAvac1Fwi0jFUeHmIGdmZlKvXj0VxyJSKsYY6tWrp79GiYhIPhWuQAZUHItIQOhniYiIFKRCFsgVyRtvvMHhw4fdjiEiIiIixaQCuQSMMQwePNjp5+Tk0KBBA26++Wa/9SZMmEDdunWpW7cuACkpKXz++efO6+PGjePFF18scY7Sbt+sWTMOHjxY7PUTExOJioqiTZs2tGzZksmTJ5f4vUtj4cKF+Y61iIiISKBUuIv0yoNatWqxdu1aMjIyqFGjBvPnz+fiiy/Ot96YMWP8+ikpKaxcuZKbbrqprKIG3LRp04iPjyc1NZVLLrmEIUOGUL16db91cnNzCQ4OdimhiIiISOnoDHIJ3XTTTXz22WcATJ8+nYEDBzqvpaenM3ToUBISEmjbti1z5swhKyuLMWPGMHPmTNq0acPMmTMBWL9+PYmJibRo0YJXXnnFGeOll14iJiaGmJgYJk6c6Cx/5plnuPzyy+nSpQubNm1ylm/bto0bbriB9u3b07VrVzZu3Jgv86FDh+jRowfR0dEMGzYMa63z2nvvvUdCQgJt2rTh3nvvJTc3t8j9T0tLo1atWk4hHB4ezp/+9Cdat27Nt99+W+B4ubm5DBkyhJiYGGJjY/n73/9eZPYhQ4bw0EMPcdVVV9GiRQtmzZrl9/79+/fniiuuYNCgQc6+TJgwgQ4dOhATE8OIESOc5YmJifzhD38gPj6eli1bkpSUxK233spll13Gk08+WeS+ioiISNVSsc8gjxoFKSmBHbNNG/ApSAtzxx13MGHCBG6++WbWrFnD0KFDWbx4MeApYq+55hrefPNNjhw5QkJCAtdddx0TJkxg5cqVvPrqq4BnisTGjRtZsGABx44dIyoqivvvv581a9bw1ltvsXz5cqy1dOzYkauvvpq8vDxmzJhBSkoKOTk5tGvXjvbt2wMwYsQIXn/9dS677DKWL1/OyJEj+frrr/0yjx8/ni5dujBmzBg+++wzpk6dCsCGDRuYOXMmS5cupVq1aowcOZJp06Zx11135dvvQYMGERoaypYtW5g4caJTIKenp9OxY0f+3//7f2zYsIHnn38+33jR0dHs2bOHtWvXAnDkyJEzZv/5559ZsmQJGzdupHfv3vTv3x+A1atXs27dOi666CI6d+7M0qVL6dKlCw888IBz5v63v/0tn376KbfccgsA1atXZ+XKlbz88sv06dOH5ORkzj//fC655BL+8Ic/UK9evWJ9RERERKRyq9gFsovi4uLYvn0706dPzzdlYt68ecydO9eZH5yZmcnOnTsLHKdXr16EhoYSGhpKw4YN2bdvH0uWLKFfv37UqlULgFtvvZXFixeTl5dHv379qFmzJgC9e/cGPGdTly1bxu233+6Me+LEiXzvtWjRIj7++GPnfU/Ojf7qq69ITk6mQ4cOAGRkZNCwYcMC856cYnHgwAGuuuoqbrjhBiIjIwkODua2224rcrxbbrmFH3/8kQcffJBevXrRo0ePM2bv27cvQUFBtGrVin379jnLExISaNy4MQBt2rRh+/btdOnShQULFvC3v/2N48ePk5qaSnR0tFMgnzxesbGxREdH06hRIwBatGjBrl27VCCLiIgIUNEL5GKc6T2XevfuzSOPPMLChQs5dOiQs9xay0cffURUVJTf+suXL883RmhoqNMODg4mJyfnrHPk5eURERFBSgnPpltrufvuu3n22eI/UrVBgwa0a9eO5cuXExkZSVhYmHM2uajxvv/+e/773//y+uuv88EHHzBx4sQis/seH98pIQUdt8zMTEaOHMnKlStp0qQJ48aN87vH7cltgoKC/LYPCgoq0XEXERGRyklzkEth6NChjB07ltjYWL/lPXv2ZNKkSU5Bt3r1agBq167NsWPHzjhu165dmT17NsePHyc9PZ3//Oc/dO3alW7dujF79mwyMjI4duwYn3zyCQDnnXcezZs358MPPwQ8heT333+fb9xu3brx/vvvA/DFF184t5+79tprmTVrFvv37wcgNTWVHTt2FJnx+PHjrF69mksuuSTfa4WNd/DgQfLy8rjtttt4+umnWbVqVbGzF8fJYrh+/fqkpaX5zVkWERERKa6KfQbZZY0bN+ahhx7Kt/ypp55i1KhRxMXFkZeXR/Pmzfn000/p3r07zz33HG3atOHxxx8vdNx27doxZMgQEhISABg2bBht27YFYMCAAbRu3ZqGDRs6UxjAM/Xh/vvv5+mnnyY7O5s77riD1q1b+407duxYBg4cSHR0NFdddRVNmzYFoFWrVjz99NP06NGDvLw8qlWrxj/+8Q8iIyPzZRs0aBA1atTgxIkTDBkyxJkD7auw8WrUqME999xDXl4egHOGuTjZiyMiIoLhw4cTExPDhRde6Hd8RERERIrL+P7ZuryJj4+3K1eu9Fu2YcMGWrZs6VIiEals9DOl4ptx4+Mc3fErdSLPC9iYJ8e744viTz0TkYrHGJNsrY0/fbmmWIiIiIiI+FCBLCIiIiLiQwWyiIiIiIiPMxbIxpg3jTH7jTFrfZadb4yZb4zZ4v1vXe9yY4x5xRiz1RizxhjTzmebu73rbzHG3H1udkdEREREpHSKcwb5beCG05Y9Bnxlrb0M+MrbB7gRuMz7NQJ4DTwFNTAW6AgkAGNPFtUiIiKl8WLyLH7JPOx2DBGpRM54mzdr7SJjTLPTFvcBEr3td4CFwGjv8n9bz60xvjPGRBhjGnnXnW+tTQUwxszHU3RPL/0uiIhIRTF5cmDHW7PmU5IPbCX5wFaCfjI8c+HvCA8JC8DIQWTuPnTm1USkUirpfZAvsNb+7G3/AlzgbV8M7PJZb7d3WWHL8zHGjMBz9tm5T29F9sYbb/Cb3/zGeayziK8VK1aQkZHB1VdfXWbvuXfvXr766it++9vfltl7ivhatChwY/3nPyOddh6WOiHVgNzAvYGIVEmlflCItdYaYwJ2M2Vr7WRgMnjugxyocQPJGMOgQYN47733AMjJyaFRo0Z07NiRTz/91FlvwoQJXHHFFU5xnJKSwt69e7npppsAGDduHOHh4TzyyCMlylHa7Zs1a8bKlSupX79+sdZPTEzkxRdfJD4+3+0CK42zPSal1b59ex5++GGqV6/OlVdeWeztxowZQ7du3bjuuusKXefEiRP06tWLgwcP8vjjjzNgwACOHDnCH//4R1566aVCt3v99depWbMmd91111ntS3lw5MgR3n//fUaOHHnmlcVV3boFZpxp006de7mgZi0SrgnMuDt+SCMyNjwwg4lIhVPSAnmfMaaRtfZn7xSK/d7le4AmPus19i7bw6kpGSeXLyzhe7uuVq1arF27loyMDGrUqMH8+fO5+OL8J8THjBnj109JSWHlypVOgSzFY63FWktQUOW56crJfQoODubVV1896+0nTJhwxnVOPuI8JSXFWRYREcGMGTMK3SYnJ4f77rvvrPMUNlZISNk+rPPIkSP885//VIFcRSxc+Lpf/7GOAaq6RaTKK2nFMRc4eSeKu4E5Psvv8t7NohNw1DsV479AD2NMXe/FeT28y0pl1ChITAzs16hRxXvvm266ic8++wyA6dOnM3DgQOe19PR0hg4dSkJCAm3btmXOnDlkZWUxZswYZs6cSZs2bZg5cyYA69evJzExkRYtWvDKK684Y7z00kvExMQQExPDxIkTneXPPPMMl19+OV26dGHTpk3O8m3btnHDDTfQvn17unbtysaNG/NlPnToED169CA6Opphw4bh+xTF9957j4SEBNq0acO9995Lbm7Rf6KcPn06sbGxxMTEMHr0aGd5eHg4TzzxBK1bt6ZTp07s27fPydepUydiY2N58sknCQ8/dWbmhRdeoEOHDsTFxTF27FgAtm/fTlRUFHfddRcxMTHs2rXL7/0nTJhAhw4diImJYcSIEc6+JCYmcvLpiwcPHqRZs2b5si9cuJBu3brRq1cvoqKiuO+++5zHX5+0fft2YmJinP6LL77IuHHjAHjllVdo1aoVcXFx3HHHHfnGf/vtt+nTpw+JiYlcdtlljB8/vtB9Kmjf09PT6dWrF61btyYmJsb5rPgaMmQIs2bNAjxnvceOHUu7du2IjY1l48aN7N+/n8GDB5OUlESbNm3Ytm0bycnJXH311bRv356ePXvy888/O8ds1KhRxMfH8/LLLzNu3DhefPFF59+toM+V7/uf/Hc/eWy7du1K7969adWqFbm5uTz66KPOPr7xxhvOeldffTV9+vShRYsWPPbYY0ybNo2EhARiY2PZtm0bAAcOHOC2226jQ4cOdOjQgaVLlwKev54MHTo03/fOY489xrZt22jTpg2PPvpovuMmlcvcuU/59bs2aeZOEBGpdIpzm7fpwLdAlDFmtzHmd8BzwPXGmC3Add4+wOfAj8BWYAowEsB7cd5fgCTv14STF+xVVHfccQczZswgMzOTNWvW0LFjR+e1Z555hmuuuYYVK1awYMECHn30UbKzs5kwYQIDBgwgJSWFAQMGALBx40b++9//smLFCsaPH092djbJycm89dZbLF++nO+++44pU6awevVqkpOTmTFjBikpKXz++eckJSU57zlixAgmTZpEcnIyL774YoFn0MaPH0+XLl1Yt24d/fr1Y+fOnYDnUbszZ85k6dKlpKSkEBwczLRp0wrd97179zJ69Gi+/vprUlJSSEpKYvbs2YCnuOvUqRPff/893bp1Y8qUKQA8/PDDPPzww/zwww80btzYGWvevHls2bKFFStWkJKSQnJyMou8ExS3bNnCyJEjWbduHZGRkX4ZHnjgAZKSkpwz+b5TW4pjxYoVTJo0ifXr17Nt2zY+/vjjYm/73HPPsXr1atasWcPrr79e4DorVqzgo48+Ys2aNXz44YdO0e67T5s2bWLz5s2sWLGC1atXk5SUxDfffMOXX37JRRddxPfff8/atWu54YbTbyKTX/369Vm1ahX3338/L774Ig0bNuRf//oXXbt2JSUlhaZNm/Lggw8ya9YskpOTGTp0KE888YSzfVZWFitXruRPf/qT37jF+VydbtWqVbz88sts3ryZqVOnUqdOHZKSkkhKSmLKlCn89NNPAHz//fe8/vrrbNiwgXfffdc5FsOGDWPSpEmA53Pzhz/8gaSkJD766COGDRvmvE9B3zvPPfccl1xyCSkpKbzwwgtnzCoVW3r6Qad9YfU6LiYRkcqmOHexGFjIS9cWsK4Ffl/IOG8Cb55VujPwObFa5uLi4ti+fTvTp0/PN2Vi3rx5zJ071zkLl5mZ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6y3Cw8Np1qwZAwcO5IsvviAkJITJkyfz+OOPs3XrVh599FHuu+++Io/FjTfeSJcuXVi2bBkXX3wxc+bM4bPPPmPlypUMGjSIGjVq8O2331KjRo0zfnZFyrO3t/lPr/hN5HCXkohIVaYzyCV0xx13MGPGDDIzM1mzZg0dO3Z0XnvmmWe45pprWLFiBQsWLODRRx8lOzubCRMmMGDAAFJSUhgwYAAAGzdu5L///S8rVqxg/PjxZGdnk5yczFtvvcXy5cv57rvvmDJlCqtXryY5OZkZM2Y4Z6KTkpKc9xwxYgSTJk0iOTmZF198kZEj8z9xavz48XTp0oV169bRr18/du7cCXgetTtz5kyWLl1KSkoKwcHBTJs2rdB937t3L6NHj+brr78mJSWFpKQkZs+eDXh+OejUqRPff/893bp1Y8oUz62aHn74YR5++GF++OEHGjdu7Iw1b948tmzZwooVK0hJSSE5OZlFixYBsGXLFkaOHMm6dev8imOABx54gKSkJOdM/umPjc7OzubBBx9k1qxZJCcnM3ToUJ544gkAbr31VpKSkvj+++9p2bIlU6dO5aqrrqJ379688MILpKSkcMkll3DXXXfx/PPPs2bNGmJjYxk/fnyBx6NevXqsWrWK6667jqeffpr//e9/rFq1ivj4eF566dRjcZs2bUpKSgpdu3Z1poJ89913jB07tljH4ve//z3r1q0jIiKCjz76iP79+xMfH8+0adNISUlRcSyVws70H512aFAYISEV+jyOiFRQFfonT3HO9J4rcXFxbN++nenTp3PTTTf5vTZv3jzmzp3rzA/OzMx0itHT9erVi9DQUEJDQ2nYsCH79u1jyZIl9OvXj1q1agGegm7x4sXk5eXRr18/atasCUDv3r0BSEtLY9myZdx+++3OuCdOnMj3XosWLeLjjz923vfk3OivvvqK5ORkOnToAEBGRgYNGxZ+S6WkpCQSExNp0KABAIMGDWLRokX07duX6tWrO3Ox27dvz/z58wH49ttvnSL6zjvv5JFHHnGO1bx582jbtq2zL1u2bKFp06ZERkbSqVOnAjMsWLCAv/3tbxw/fpzU1FSio6O55ZZbnNc3bdrE2rVruf766wHP9IdGjRoBsHbtWp588kmOHDlCWloaPXv2zDf+0aNHOXLkCFdffTUAd999t9/x9XXyl53vvvuO9evX07lz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7XI8F9utAn7wjjUZGA380RizFc8c46neTaYC9bzL/wg8VorcIiJSTry34gW//vAu49wJIiISIKW6i4W1diww9rTFPwIJBaybCdxemvcTEZHyZ+XOr512sAmmfngjF9OIiJSenqQnIiIllnkijezcLKff8sJ4F9OIiASGCmQRESmxKcv+4tcf3nmMS0lERAJHBbKIiJTYhp+TnHa1oOqEhYa7mEZEJDBUIIuISImkpu0n1556QEd85DUuphERCRwVyCIiUiKTl/hPpxic8KhLSUREAksFsoiIlMj21E1OOzSkJiEhpboxkohIuaECWUREztrOQ5ux9tQjqLtf3s/FNCIigaUCWUREztrUpf53r+jXdoRLSUREAk8FsoiInLVfju1y2rWq13ExiYhI4KlAFhGRs7Jm9zLAOv3ecb9zL4yIyDmgAllERM7K+0l/9+snRvVxKYmIyLmhAllERM7K4eP7nXZEjQYuJhEROTdUIIuISLEt3DTHrz+wwyh3goiInEMqkEVEpNjmrpnq0zO0adLFtSwiIueK7uouIlIJTBycHPAxzcYvuaJWNYJ/PewsS8866rQvrFWH4F9nndWYF0YcIvdwMDsW7zrzyiIiLlGBLCJSSexauiOg49XJDiXqis20jVoPwMTFe/1ef7VvfWIbLT6rMfdsq0dGaF0uuLJJwHKKiASaCmQRkUqkSefIgI2V9e0P1A7N4vKW0QBMe3Wt81qQgduu6XjWY17eYCnU7wxDRwUqpohIwGkOsoiInFFOTg6/ZuY4/fhm9VxMIyJybqlAFhGRMxr2zgq//sz7dHGeiFReKpBFROSMZibtdNrVgg3N6oe7mEZE5NxSgSwiIkVKyzxBZnau07+u5YUuphEROfdUIIuISJEGvLbMr//B/Z1dSiIiUjZUIIuISJHmb/jZaYdVCyI8LNTFNCIi554KZBERKdTBjDSyc63TH9AhcLeRExEpr1Qgi4hIof66arlf/193J7iURESk7KhAFhGRQm05esRp1w4LISREz5cSkcpPBbKIiBRoT+Ze8jg1veKBay53MY2ISNlRgSwiIgWafuBjv/5fb2vrUhIRkbKlAllERAp0IPug064fXt3FJCIiZUsFsoiI5LNu92K//l/6xrmURESk7KlAFhGRfGYlPefXv697lEtJRETKngpkERHJ58jxfU67cd0aLiYRESl7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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "A = (0, 0)\n", "B = (7, 20) # pente 20/7\n", "pente = (B[1] - A[1]) / (B[0] - A[0])\n", "plot_discrete_line(A=A, B=B, pente=pente,\n", " methodes=methodes,\n", " edgecolors=['red', 'blue', 'orange', 'purple']\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Avec une pente $\\alpha = +\\infty$, ce sont maintenant les `yi += 1` et tous les `xi += O/1` sont des `+= 1` :" ] }, { "cell_type": "code", "execution_count": 296, "metadata": { "ExecuteTime": { "end_time": "2021-01-24T22:59:46.835095Z", "start_time": "2021-01-24T22:59:46.413939Z" }, "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Méthode de Bresenham (avant symétries) avec une pente = +oo\n", "[(0, 0), (0, 1), (0, 2), (0, 3), (0, 4), (0, 5), (0, 6), (0, 7)]\n", "Méthode de Bresenham (avant symétries) avec une pente = +oo\n", "Méthode de longer au plus près inférieurement (avant symétries) avec une pente = +oo\n", "Méthode de longer au plus près supérieurement (avant symétries) avec une pente = +oo\n", "Méthode de longer aléatoirement (avant symétries) avec une pente = +oo\n" ] }, { "data": { "image/png": "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5uyzz6ZFixa0a9eOjz76aKeaV6xYQefOncnIyGDAgAEkP8T929/+Rk5ODk2bNuXKK69k27Ztu9z/tWvXcvjhh6eDcLVq1fjtb39LkyZNePfdd4scb9u2bfTr14/MzEyysrL44x//uMva+/Xrx7XXXsupp57K8ccfz7hx4wptv1evXpx00kn07ds3vS8jRoygVatWZGZmMnDgwHR7hw4d+PWvf03Lli05+eSTmTlzJhdccAEnnngit9566y73VdquJGeQTwO6hRDOBQ4FjgTuB2qEEA5JnUWuC3yZ6v8lcBzwRQjhEKA6sKLUK5ck/XBcfz3k5ZXumE2bQiKQFqd3796MGDGC8847jzlz5tC/f3/eeustoCDEnnnmmTz++OOsWrWKnJwczjrrLEaMGMGsWbP405/+BBRMkfjoo4+YPHkya9asoVGjRvzyl79kzpw5PPHEE0yfPp0YI61bt+b0008nPz+fMWPGkJeXx9atW2nevDktWrQAYODAgTz00EOceOKJTJ8+nUGDBvHGG28Uqnn48OG0bduWIUOG8PLLL/PYY48BsGDBAsaOHcvbb79NpUqVGDRoEKNGjeKyyy7bab/79u1LlSpVWLhwIffdd186IK9bt47WrVvz3//93yxYsIC77rprp/EyMjL48ssvmTt3LgCrVq3abe1ff/0106ZN46OPPqJbt2706tULgPfff5958+bx4x//mNNOO423336btm3bcvXVV6fP3P/85z/npZde4vzzzwegcuXKzJo1i/vvv5/u3buTm5vLj370I0444QR+/etfc9RRR5XoLaIfrt0G5BjjzcDNACGEDsANMca+IYRngV7AGOBy4PnUKi+knr+bWv6G848lSQer7OxslixZwujRo3eaMjFx4kReeOEF7rnnHqDg0nSfffZZkeN07dqVKlWqUKVKFWrXrs0333zDtGnT6NmzJ4cffjgAF1xwAW+99Rb5+fn07NmTww47DIBu3boBBWdT33nnHS666KL0uJs2bdppW1OnTuW5555Lb3f73OjXX3+d3NxcWrVqBcCGDRuoXbt2kfVun2KxfPlyTj31VM4++2zq169PxYoVufDCC3c53vnnn8+//vUvrrnmGrp27Urnzp13W3uPHj2oUKECjRs35ptvvkm35+TkULduXQCaNm3KkiVLaNu2LZMnT+YPf/gD69evZ+XKlWRkZKQD8vbXKysri4yMDOrUqQPA8ccfz+eff25A1m7ty41CBgNjQgi3A+8Dj6XaHwOeDiEsAlYCvfetREnSD14JzvSWpW7dunHDDTcwZcoUVqz4fx+KxhgZP348jRo1KtR/+vTpO41RpUqV9OOKFSuydevWnfrsTn5+PjVq1CBvL8+mxxi5/PLL+f3vS/5ly1q1atG8eXOmT59O/fr1OfTQQ9Nnk3c13gcffMA///lPHnroIf7+979z33337bL25OuTPK9W1Ou2ceNGBg0axKxZszjuuOMYNmxYoWvcbl+nQoUKhdavUKHCXr3u+uHZoxuFxBinxBjPSz3+V4wxJ8b4kxjjRTHGTan2jannP0kt/1dZFC5J0v7Sv39/hg4dSlZWVqH2Ll26MHLkyHSge//99wE44ogjWLNmzW7HbdeuHRMmTGD9+vWsW7eOf/zjH7Rr14727dszYcIENmzYwJo1a3jxxRcBOPLII2nYsCHPPvssUBAkP/jgg53Gbd++Pc888wwAr776avrycx07dmTcuHEsW7YMgJUrV7J06dJd1rh+/Xref/99TjjhhJ2WFTfet99+S35+PhdeeCG33347s2fPLnHtJbE9DB999NGsXbu20JxlqTR4q2lJknajbt26XHvttTu133bbbVx//fVkZ2eTn59Pw4YNeemllzjjjDO48847adq0KTffXPxl/5o3b06/fv3IyckBYMCAATRr1gyAiy++mCZNmlC7du30FAYomPrwy1/+kttvv50tW7bQu3dvmjRpUmjcoUOH0qdPHzIyMjj11FPTV4tq3Lgxt99+O507dyY/P59KlSrx5z//mfr16+9UW9++fdOXeevXr196DnRSceNVrVqV//zP/yQ/Px8gfYa5JLWXRI0aNbjiiivIzMzkP/7jPwq9PlJpCAfC9OCWLVvGWbNmlXcZklQqxpxzM6uXfve9uvrD9v3Zn9dBXrBgASeffPJ+256k77ei/psSQsiNMbbcse8eTbGQJEmSvu8MyJIkSVKCAVmSJElKMCBLkiRJCQZkSZIkKcGALEmSJCUYkCVJKgUPP/xw+oYc0o5mzJjBm2++uV+3+dVXX/H000/v121+XxiQJUkqRgiBSy+9NP1869at1KpVi/POO69QvxEjRlCzZk1q1qwJQF5eHq+88kp6+bBhw7jnnnv2uo59Xb9BgwZ8++23Je7foUMHvu/3J9jT12RftWjRgmeffZZ33313j9YbMmQIr7322i77bNq0ibPOOoumTZsyduxYAFatWsVvfvMbOnbsWOx6Dz30EH/961/3qJ4DxapVq/jLX/5SZuN7Jz1Jkopx+OGHM3fuXDZs2EDVqlWZNGkSxx577E79hgwZUuh5Xl4es2bN4txzz91fpX4vxBiJMVKhwvfn/N32fapYsSJ/+tOf9nj9ESNG7LbP9luc5+Xlpdtq1KjBmDFjil1n69atXHXVVXtcT3FjHXLI/o2U2wPyoEGDymT87887UJL0vXX99dChQ+n+XH99ybZ97rnn8vLLLwMwevRo+vTpk162bt06+vfvT05ODs2aNeP5559n8+bNDBkyhLFjxxY6ozd//nw6dOjA8ccfzwMPPJAe49577yUzM5PMzEzuu+++dPsdd9zBT3/6U9q2bcvHH3+cbl+8eDFnn302LVq0oF27dnz00Uc71bxixQo6d+5MRkYGAwYMIHnX3L/97W/k5OTQtGlTrrzySrZt27bL/R89ejRZWVlkZmYyePDgdHu1atW45ZZbaNKkCW3atOGbb75J19emTRuysrK49dZbqVatWnqdu+++m1atWpGdnc3QoUMBWLJkCY0aNeKyyy4jMzOTzz//vND2R4wYQatWrcjMzGTgwIHpfUme5f72229p0KDBTrVPmTKF9u3b07VrVxo1asRVV12Vvv31dkuWLCEzMzP9/J577mHYsGEAPPDAAzRu3Jjs7Gx69+690/hPPvkk3bt3p0OHDpx44okMHz682H0qat/XrVtH165dadKkCZmZmen3SlK/fv0YN24cUHDWe+jQoTRv3pysrCw++ugjli1bxqWXXsrMmTNp2rQpixcvJjc3l9NPP50WLVrQpUsXvv766/Rrdv3119OyZUvuv//+Qp9MFPe+Sm5/+3Hf/tq2a9eObt260bhxY7Zt28aNN96Y3seHH3443e/000+ne/fuHH/88dx0002MGjWKnJwcsrKyWLx4MQDLly/nwgsvpFWrVrRq1Yq3334bKPj0pH///jv97tx0000sXryYpk2bcuONN+70uu0rA7IkSbvQu3dvxowZw8aNG5kzZw6tW7dOL7vjjjs488wzmTFjBpMnT+bGG29ky5YtjBgxgosvvpi8vDwuvvhiAD766CP++c9/MmPGDIYPH86WLVvIzc3liSeeYPr06bz33ns8+uijvP/+++Tm5jJmzJj0VI2ZM2emtzlw4EBGjhxJbm4u99xzT5Fn0IYPH07btm2ZN28ePXv25LPPPgMKbrU7duxY3n77bfLy8qhYsSKjRo0qdt+/+uorBg8ezBtvvEFeXh4zZ85kwoQJQEG4a9OmDR988AHt27fn0UcfBeC6667juuuu48MPP6Ru3brpsSZOnMjChQuZMWMGeXl55ObmMnXqVAAWLlzIoEGDmDdvHvXr1y9Uw9VXX83MmTPTZ/JfeumlPTl8zJgxg5EjRzJ//nwWL17Mc889V+J177zzTt5//33mzJnDQw89VOz448ePZ86cOTz77LPp0J7cp48//phPPvmEGTNm8P777zNz5kzefPNN/ud//ocf//jHfPDBB8ydO5ezzz57tzUdffTRzJ49m1/+8pfcc8891K5dm//7f/8v7dq1Iy8vj3r16nHNNdcwbtw4cnNz6d+/P7fcckt6/c2bNzNr1ix++9vfFhq3JO+rHc2ePZv777+fTz75hMcee4zq1aszc+ZMZs6cyaOPPsqnn34KwAcffMBDDz3EggULePrpp9OvxYABAxg5ciRQ8L759a9/zcyZMxk/fjwDBgxIb6eo350777yTE044gby8PO6+++7d1rqnnGIhSTrgJU6s7nfZ2dksWbKE0aNH7zRlYuLEibzwwgvps3AbN25Mh9Edde3alSpVqlClShVq167NN998w7Rp0+jZsyeHH344ABdccAFvvfUW+fn59OzZk8MOOwyAbt26AbB27VreeecdLrroovS4mzZt2mlbU6dOTQfBrl27pudGv/766+Tm5tKqVSsANmzYQO3atYvd95kzZ9KhQwdq1aoFQN++fZk6dSo9evSgcuXK6bnYLVq0YNKkSQC8++676RB9ySWXcMMNN6Rfq4kTJ9KsWbP0vixcuJB69epRv3592rRpU2QNkydP5g9/+APr169n5cqVZGRkcP755xdb845ycnI4/vjjAejTpw/Tpk2jV69eJVo3Ozubvn370qNHD3r06FFkn06dOnHUUUcBBcdv2rRp9OjRo9A+TZw4kXfeeYczzjgDKJge8Omnn3Lqqafy29/+lsGDB3PeeefRrl273dZ0wQUXAAWveVFh/+OPP2bu3Ll06tQJgG3btlGnTp308u1/sCWV9H21o5ycHBo2bJjexzlz5qTPNq9evZqFCxdSuXJlWrVqla7hhBNOoHPnzgBkZWUxefJkAF577TXmz5+fHvu7775j7dq1QNG/O2XNgCxJ0m5069aNG264gSlTprBixYp0e4yR8ePH06hRo0L9p0+fvtMYVapUST+uWLEiW7du3eM68vPzqVGjRqG5pnsixsjll1/O73//+71aP6lSpUqEEICS7U+MkZtvvpkrr7yyUPuSJUvSfyDsaOPGjQwaNIhZs2Zx3HHHMWzYMDZu3AjAIYcckp4usb2tKNtrLO55cpwdx3r55ZeZOnUqL774InfccQcffvjhTnNtixs/uU8xRq655poi5/zOnj2bV155hVtvvZWOHTvuNJ99R9vfR8W95jFGMjIyiv0yYFGv9a7eV8nXJz8/n82bNxc5VoyRkSNH0qVLl0LrT5kypdB7v0KFCunnFSpUSO9Dfn4+7733Hoceemix+7yr/S5tTrGQJGk3+vfvz9ChQ8nKyirU3qVLF0aOHJmeF7v9y1JHHHEEa9as2e247dq1Y8KECaxfv55169bxj3/8g3bt2tG+fXsmTJjAhg0bWLNmDS+++CIARx55JA0bNuTZZ58FCkLJBx98sNO47du355lnngHg1VdfTV9+rmPHjowbN45ly5YBsHLlSpYuXVpsfTk5Obz55pt8++23bNu2jdGjR3P66afvcp/atGnD+PHjAQp9SaxLly48/vjj6bOCX375ZbqO4mwPq0cffTRr164tNBe2QYMG5ObmAhRq39GMGTP49NNPyc/PZ+zYsbRt27bQ8mOOOYZly5axYsUKNm3alJ7CkZ+fz+eff84ZZ5zBXXfdxerVq9O1J02aNImVK1eyYcMGJkyYwGmnnbZTny5duvDEE0+k1//iiy9YtmwZX331FYcddhiXXnopN954I7Nnz97l61ESjRo1Yvny5emAvGXLFubNm7fLdXb1vkq+zi+88AJbtmwpcowuXbrw4IMPppd/8sknrFu3rsR1d+7cOT3dAtjtH4El/R3bWwZkSZJ2o27dulx77bU7td92221s2bKF7OxsMjIyuO222wA444wzmD9/fqEv6RWlefPm9OvXj5ycHFq3bs2AAQNo1qwZzZs35+KLL6ZJkyacc8456SkRAKNGjeKxxx6jSZMmZGRk8Pzzz+807tChQ5k6dSoZGRk899xz1KtXD4DGjRtz++2307lzZ7Kzs+nUqVP6C1xFqVOnDnfeeSdnnHEGTZo0oUWLFnTv3n2Xr9V9993HvffeS3Z2NosWLaJ69epAQQC65JJLOOWUU8jKyqJXr167DTg1atTgiiuuIDMzky5duhR6HW644QYefPBBmjVrtsvLtbVq1Yqrr76ak08+mYYNG9KzZ89CyytVqsSQIUPIycmhU6dOnHTSSUDB1IRLL72UrKwsmjVrxrXXXkuNGjV2Gj8nJ4cLL7yQ7OxsLrzwQlq2bLlTnx33/aKLLmLNmjV8+OGH6S9MDh8+nFtvvXWXr0dJVK5cmXHjxjF48GCaNGlC06ZNeeedd3a7XnHvqyuuuII333yTJk2a8O677xZ7tn/AgAE0btyY5s2bk5mZyZVXXrlHZ3ofeOABZs2aRXZ2No0bNy52zvd2Rx11FKeddhqZmZll8iW9kPxma3lp2bJl/L5fb1HSD8eYc25m9dLvqF7/yPIupdRs35/er+77R/MltWDBAk4++eT9tj2VjvXr11O1alVCCIwZM4bRo0cXGeL3hylTpnDPPffs8Rf7SurJJ59k1qxZe3X5Nu1/Rf03JYSQG2Pc6a8a5yBLkqRSk5uby9VXX02MkRo1avD444+Xd0nSHjMgS5KkUtOuXbsi50WXhw4dOtChQ4cyG79fv37069evzMZX+XEOsiRJkpRgQJYkSZISDMiSJElSggFZkqRS8PDDD6evNyztaMaMGbz55pvlXQZfffUVTz/9dHmXccAzIEuSVIwQApdeemn6+datW6lVq1b6FsvbjRgxgpo1a6Zv6ZyXl8crr7ySXj5s2LD07aj3xr6u36BBg11eK3hHHTp04Pt++dU9fU32VYsWLXj22WeLvcPd/rBq1Sp+85vf0LFjx2L7PPTQQ/z1r3/dj1WVnlWrVvGXv/ylVMbyKhaSJBXj8MMPZ+7cuWzYsIGqVasyadIkjj322J367Xh74Ly8PGbNmsW55567v0r9XogxEmOkQoXvz/m77ftUsWLFcr9eco0aNQrd3XBHW7duLfJ22Htj69atO92Wu6xtD8iDBg3a57G+P+9ASZLKwLnnnsvLL78MwOjRo+nTp0962bp16+jfvz85OTk0a9aM559/ns2bNzNkyBDGjh1b6E568+fPp0OHDhx//PE88MAD6THuvfdeMjMzyczM5L777ku333HHHfz0pz+lbdu2fPzxx+n2xYsXc/bZZ9OiRQvatWvHRx99tFPNK1asoHPnzmRkZDBgwACSNwX729/+lr5725VXXsm2bdt2uf+jR48mKyuLzMxMBg8enG6vVq0at9xyC02aNKFNmzZ888036fratGlDVlYWt956K9WqVUuvc/fdd9OqVSuys7MZOnQoAEuWLKFRo0ZcdtllZGZm8vnnnxfa/ogRI2jVqhWZmZkMHDgwvS/Js9zffvstDRo02Kn2KVOm0L59e7p27UqjRo246qqryM/PL9RnyZIlZGZmpp/fc889DBs2DCi4u1vjxo3Jzs6md+/eO43/5JNP0r17dzp06MCJJ57I8OHDi92novZ93bp1dO3alSZNmpCZmVnkXReLqmHHTxQyMzNZsmQJS5Ys4aSTTqJv376cfPLJ9OrVi/Xr1wMF16c+/fTTadGiBV26dEnfQbFDhw5cf/31tGzZkvvvv7/Q2MW91/r161fo9t7bj/GUKVNo164d3bp1o3Hjxmzbto0bb7wxvd8PP/xwut/pp59O9+7dOf7447npppsYNWoUOTk5ZGVlsXjxYgCWL1/OhRdeSKtWrWjVqhVvv/12ev/79++/0+/TTTfdxOLFi2natOk+313PM8iSpANf7vXw77zSHbNmU2hx32679e7dmxEjRnDeeecxZ84c+vfvz1tvvQUUhNgzzzyTxx9/nFWrVpGTk8NZZ53FiBEjCt1hbdiwYXz00UdMnjyZNWvW0KhRI375y18yZ84cnnjiCaZPn06MkdatW3P66aeTn5/PmDFjyMvLY+vWrTRv3pwWLVoAMHDgQB566CFOPPFEpk+fzqBBg3jjjTcK1Tx8+HDatm3LkCFDePnll3nssceAgjuJjR07lrfffptKlSoxaNAgRo0axWWXXVbkvn/11VcMHjyY3NxcatasSefOnZkwYQI9evRg3bp1tGnThjvuuIPf/e53PProo9x6661cd911XHfddfTp06fQ7YInTpzIwoULmTFjBjFGunXrxtSpU6lXrx4LFy7kqaeeok2bNjvVcPXVV6fP0P/85z/npZde4vzzz9/tcdtuxowZzJ8/n/r163P22Wfz3HPP0atXrxKte+edd/Lpp59SpUoVVq1aVez4c+fO5bDDDqNVq1Z07dqVo48+utA+TZw4kU8++YQZM2aQn5/P+eefz5tvvsm3337Lj3/84/QfYKtXr96rGpI+/vhjHnvsMU477TT69+/PX/7yF6677jquueYann/+eWrVqsXYsWO55ZZb0jdx2bx5c/qPje1/HEDJ3ms7mj17NnPnzqVhw4Y88sgjVK9enZkzZ7Jp0yZOO+00OnfuDMAHH3zAggUL+NGPfsTxxx/PgAEDmDFjBvfffz8jR47kvvvu47rrruPXv/41bdu25bPPPqNLly4sWLAAoMjfpzvvvJO5c+eSl5e329dpdwzIkiTtQnZ2NkuWLGH06NE7TZmYOHEiL7zwQvqM28aNG/nss8+KHKdr165UqVKFKlWqULt2bb755humTZtGz549OfzwwwG44IILeOutt8jPz6dnz54cdthhAHTr1g2AtWvX8s4773DRRRelx920adNO25o6dSrPPfdcervb50a//vrr5Obm0qpVKwA2bNhA7dq1i933mTNn0qFDB2rVqgVA3759mTp1Kj169KBy5crpudgtWrRg0qRJALz77rtMmDABgEsuuYQbbrgh/VpNnDiRZs2apfdl4cKF1KtXj/r16xcZjgEmT57MH/7wB9avX8/KlSvJyMjYo4Cck5PD8ccfD0CfPn2YNm1aiQNydnY2ffv2pUePHvTo0aPIPp06deKoo44CCo7ftGnT6NGjR6F9mjhxIu+88w5nnHEGUDAV4NNPP+XUU0/lt7/9LYMHD+a8886jXbt2e1VD0nHHHcdpp50GwKWXXsoDDzzA2Wefzdy5c+nUqRMA27Zto06dOul1Lr744p3GKel7bUc5OTk0bNgwvd9z5sxJn21evXo1CxcupHLlyrRq1SpdwwknnJAOzllZWUyePBmA1157jfnz56fH/u6771i7di1Q9O9TaTIgS5IOfCU401uWunXrxg033MCUKVNYsWJFuj3GyPjx42nUqFGh/tOnT99pjCpVqqQfV6xYka1bt+5xHfn5+dSoUWOvz5DFGLn88sv5/e9/v1frJ1WqVIkQAlCy/YkxcvPNN3PllVcWal+yZEn6D4Qdbdy4kUGDBjFr1iyOO+44hg0bxsaNGwE45JBD0tMltrcVZXuNxT1PjrPjWC+//DJTp07lxRdf5I477uDDDz/caV5tceMn9ynGyDXXXFPk/N7Zs2fzyiuvcOutt9KxY8ed5rMXV0NxNRdVT4yRjIyMYr8gWNTrv6v3WnL7+fn5bN68ucixYoyMHDmSLl26FFp/ypQphX4fKlSokH5eoUKF9HspPz+f9957j0MPPXSnGkrj92lXnIMsSdJu9O/fn6FDh5KVlVWovUuXLowcOTI9L/b9998H4IgjjmDNmjW7Hbddu3ZMmDCB9evXs27dOv7xj3/Qrl072rdvz4QJE9iwYQNr1qzhxRdfBODII4+kYcOGPPvss0BBACnqts7t27fnmWeeAeDVV19NX36uY8eOjBs3jmXLlgGwcuVKli5dWmx9OTk56akA27ZtY/To0Zx++um73Kc2bdowfvx4gEJfCOvSpQuPP/54+gzgl19+ma6jONuD39FHH83atWsLzXtt0KABubm5AIXadzRjxgw+/fRT8vPzGTt2LG3bti20/JhjjmHZsmWsWLGCTZs28dJLLwEF4ezzzz/njDPO4K677mL16tXp2pMmTZrEypUr2bBhAxMmTEifvU3q0qULTzzxRHr9L774gmXLlvHVV19x2GGHcemll3LjjTcye/bsQusVV0ODBg3SfWfPns2nn36aXuezzz5LB+FnnnmGtm3b0qhRI5YvX55u37JlC/PmzSv2NYNdv9eSr/0LL7zAli1bihyjS5cuPPjgg+nln3zyCevWrdvldpM6d+7MyJEj089394dhSX/vSsKALEnSbtStW5drr712p/bbbruNLVu2kJ2dTUZGBrfddhsAZ5xxBvPnzy/0Jb2iNG/enH79+pGTk0Pr1q0ZMGAAzZo1o3nz5lx88cU0adKEc845Jz0lAmDUqFE89thjNGnShIyMDJ5//vmdxh06dChTp04lIyOD5557jnr16gHQuHFjbr/9djp37kx2djadOnVKf1mrKHXq1OHOO+/kjDPOoEmTJrRo0YLu3bvv8rW67777uPfee8nOzmbRokVUr14dKAg7l1xyCaeccgpZWVn06tVrt2GmRo0aXHHFFWRmZtKlS5dCr8MNN9zAgw8+SLNmzXZ5ubZWrVpx9dVXc/LJJ9OwYUN69uxZaHmlSpUYMmQIOTk5dOrUiZNOOgkomIZw6aWXkpWVRbNmzbj22mupUaPGTuPn5ORw4YUXkp2dzYUXXkjLli136rPjvl900UWsWbOGDz/8MP2FyeHDh3PrrbcWWq+4Gi688ML0dJM//elP/PSnP02v06hRI/785z9z8skn8+9//5tf/vKXVK5cmXHjxjF48GCaNGlC06ZNeeedd3b52kPx77UrrriCN998kyZNmvDuu+8W+wnAgAEDaNy4Mc2bNyczM5Mrr7xyj870PvDAA8yaNYvs7GwaN25caE57UY466ihOO+00MjMz9/lLeiH5zdby0rJly/h9v96ipB+OMefczOql31G9/pHlXUqp2b4/vV/d94/mS2rBggWcfPLJ+217Kh3r16+natWqhBAYM2YMo0ePLjLE7w9TpkzhnnvuSZ8VLm1PPvlkoS9jlrclS5Zw3nnnMXfu3PIu5YBU1H9TQgi5Mcad/qpxDrIkSSo1ubm5XH311cQYqVGjRvpKCdLBxIAsSZJKTbt27YqcF10eOnToQIcOHcps/H79+tGvX78yG39PNWjQwLPHpcQ5yJIkSVKCAVmSJElKMCBLkiRJCQZkSZIkKcGALElSKXj44YfTN+RQ+fjqq694+umny7sMfQ8YkCVJKkYIgUsvvTT9fOvWrdSqVYvzzjuvUL8RI0ZQs2ZNatasCRTc8euVV15JLx82bBj33HPPXtexr+s3aNBglzfT2FGHDh040O9P0K9fv0J30Fu1ahW/+c1v6Nix427XnTBhAvPnz99tvyFDhvDaa6/tU52l5cknn+Srr74q7zJ+MAzIkiQV4/DDD2fu3Lls2LABKLit8LHHHrtTvyFDhvCzn/0s/XzHgKySiTGSn5+/V+vWqFGDMWPG8OMf/3i3fUsakEeMGMFZZ521U/u2bdv2qsZ9YUDev7wOsiTpgPc/1/8P/5v3v6U65n80/Q/Ovu/s3fY799xzefnll+nVqxejR4+mT58+vPXWWwCsW7eOa665hrlz57JlyxaGDRvGOeecw5AhQ9iwYQPTpk3j5ptvBmD+/Pl06NCBzz77jOuvvz596+p77703fTONAQMGcP311wNwxx138NRTT1G7dm2OO+44WrRoAcDixYv51a9+xfLlyznssMN49NFH07dH3m7FihX06dOHL7/8klNOOYXkXXP/9re/8cADD7B582Zat27NX/7yFypWrFjs/o8ePZr/7//7/4gx0rVrV+666y4AqlWrxnXXXcdLL71E1apVef755znmmGNYvHgxffv2Zd26dXTv3p377ruPtWvXAnD33Xfz97//nU2bNtGzZ0+GDx/OkiVL6NKlC61btyY3N5dXXnmF+vXrp7c/YsQIXnzxRTZs2MCpp57Kww8/TAihUI25ubn85je/Ye3atRx99NE8+eST1KlTh0cffZRHHnmEzZs385Of/ISnn36avLw8XnjhBd58801uv/12xo8fz5o1a7jqqqtYv349J5xwAo8//jg1a9akX79+nHfeefTq1YsGDRpw8cUXM2nSJH73u9/xox/9iKFDh7Jp0yZOOOEEnnjiCapVq0aDBg3o06cPr776KocccgiPPPIIN998M4sWLeLGG2/kqquu2uVrcc4559C2bVveeecdjj32WJ5//nlefvllZs2aRd++falatSrvvvsuVatW3e17V3vPM8iSJO1C7969GTNmDBs3bmTOnDm0bt06veyOO+7gzDPPZMaMGUyePJkbb7yRLVu2MGLECC6++GLy8vK4+OKLAfjoo4/45z//yYwZMxg+fDhbtmwhNzeXJ554gunTp/Pee+/x6KOP8v7775Obm8uYMWPSZ6JnzpyZ3ubAgQMZOXIkubm53HPPPQwaNGinmocPH07btm2ZN28ePXv25LPPPgMKbrU7duxY3n77bfLy8qhYsSKjRo0qdt+/+uorBg8ezBtvvEFeXh4zZ85kwoQJQMEfB23atOGDDz6gffv2PProowBcd911XHfddXz44YfUrVs3PdbEiRNZuHAhM2bMIC8vj9zcXKZOnQrAwoULGTRoEPPmzSsUjgGuvvpqZs6cmT6Tv+Nto7ds2cI111zDuHHjyM3NpX///txyyy0AXHDBBcycOZMPPviAk08+mccee4xTTz2Vbt26cffdd5OXl8cJJ5zAZZddxl133cWcOXPIyspi+PDhRb4eRx11FLNnz+ass87i9ttv57XXXmP27Nm0bNmSe++9N92vXr165OXl0a5du/RUkPfee4+hQ4eW6LX41a9+xbx586hRowbjx4+nV69etGzZklGjRpGXl2c43g92ewY5hHAoMBWokuo/LsY4NITwJHA6sDrVtV+MMS8U/Fl3P3AusD7VPrssipck/TCU5ExvWcnOzmbJkiWMHj2ac889t9CyiRMn8sILL6TnB2/cuDEdRnfUtWtXqlSpQpUqVahduzbffPMN06ZNo2fPnhx++OFAQaB76623yM/Pp2fPnhx22GEAdOvWDYC1a9fyzjvvcNFFF6XH3bRp007bmjp1Ks8991x6u9vnRr/++uvk5ubSqlUrADZs2EDt2rWL3feZM2fSoUMHatWqBUDfvn2ZOnUqPXr0oHLlyum52C1atGDSpEkAvPvuu+kQfckll3DD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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "A = (0, 0)\n", "B = (0, 7) # pente +infini\n", "print(methode_bresenham(A, B))\n", "pente = '+oo'\n", "plot_discrete_line(A=A, B=B, pente=pente,\n", " methodes=methodes,\n", " edgecolors=['red', 'blue', 'orange', 'purple']\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Meilleur visualisation avec quatre sous-figures ?\n", "\n", "Pas le temps, mais il serait plus approprié de montrer les quatres méthodes m1/m2/m3/m4 comme ça :\n", "[ m1 | m2 ]\n", "[ m3 | m4 ]\n", "\n", "Avec plt.subplots(2,2) ce ne serait pas trop difficile" ] }, { "cell_type": "code", "execution_count": 327, "metadata": { "ExecuteTime": { "end_time": "2021-01-24T23:11:35.534270Z", "start_time": "2021-01-24T23:11:35.530889Z" } }, "outputs": [], "source": [ "nos_4_methodes = [\n", " methode_bresenham,\n", " methode_longer_aleatoirement,\n", " methode_longer_inferieurement,\n", " methode_longer_superieurement,\n", "]" ] }, { "cell_type": "code", "execution_count": 353, "metadata": { "ExecuteTime": { "end_time": "2021-01-26T09:03:14.214321Z", "start_time": "2021-01-26T09:03:14.173345Z" }, "code_folding": [ 0 ] }, "outputs": [], "source": [ "def plot_4_differents_methods(A=None, B=None,\n", " title=\"Dessin d'une droite discrète\",\n", " width=50, height=None,\n", " figsize=(20,14),\n", " linewidth=2,\n", " fill=True,\n", " methodes=nos_4_methodes,\n", " edgecolors=['red', 'blue', 'orange', 'purple'],\n", " facecolors=None,\n", " alpha=0.9,\n", " linecolor='k',\n", " equal=True,\n", " pente=None,\n", " ):\n", " fig, axs = plt.subplots(2, 2, figsize=figsize)\n", "\n", " if not facecolors: facecolors = edgecolors\n", " if not height: height = width\n", " \n", " use_fake_methode = False\n", " if not methodes:\n", " use_fake_methode = True\n", " def fake_methode(A, B): return points\n", " fake_methode.__nom__ = \"Fake method XXX\"\n", " methodes = [fake_methode]\n", "\n", " i_x_axis = 0\n", " j_y_axis = 0\n", " for i, methode in enumerate(methodes):\n", " points = methode(A, B)\n", " ax = axs[i_x_axis, j_y_axis]\n", " if equal: ax.set_aspect('equal')\n", " \n", " # points in P should be ordored, but not restricted to Mi = (xi, yi) with xi=i\n", " min_x = min(p[0] for p in points)\n", " max_x = max(p[0] for p in points)\n", " # plt.xlim((min_x - 0.2)*width, (max_x + 1 + 0.2)*width)\n", " min_y = min(p[1] for p in points)\n", " max_y = max(p[1] for p in points)\n", " # plt.ylim((min_y - 0.2)*height, (max_y + 1 + 0.2)*height)\n", " \n", " _xs = np.linspace(min_x, max_x, 2000)\n", " _ys = np.linspace(min_y, max_y, 2000)\n", "\n", " # Trick to add a legend?\n", " ax.plot(\n", " _xs[:2]*width, _ys[:2]*width,\n", " color=edgecolors[i], label=methode.__nom__\n", " )\n", " \n", " # plot the line\n", " ax.plot(_xs*width, _ys*width, color=linecolor, linewidth=1+linewidth)\n", "\n", " # plot the points as big rectangles\n", " for p in points:\n", " x, y = p\n", " rect = Rectangle(\n", " (x*width, y*height),\n", " width, height,\n", " linewidth=linewidth,\n", " edgecolor=edgecolors[i], facecolor=facecolors[i],\n", " alpha=alpha, fill=fill,\n", " )\n", " ax.add_patch(rect)\n", " \n", " i_x_axis = (i_x_axis + 1) % 2\n", " if i_x_axis == 1:\n", " j_y_axis = (j_y_axis + 1) % 2\n", "\n", " if not use_fake_methode:\n", " ax.legend()\n", " if not title:\n", " title = methode.nom\n", " if title:\n", " if pente and \"pente\" not in title:\n", " if not isinstance(pente, str):\n", " pente = \"{:.5g}\".format(pente)\n", " title += \" de pente = ${}$\".format(pente)\n", " ax.set_title(title)\n", "\n", " plt.show()\n", " # return fig" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Un exemple :" ] }, { "cell_type": "code", "execution_count": 354, "metadata": { "ExecuteTime": { "end_time": "2021-01-26T09:03:16.392119Z", "start_time": "2021-01-26T09:03:15.227861Z" }, "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Méthode de Bresenham (après symétries éventuelles) avec une pente 0 <= pente = 0.35 <= 1\n", "Méthode de longer aléatoirement (après symétries éventuelles) avec une pente 0 <= pente = 0.35 <= 1\n", "Méthode de longer au plus près inférieurement (après symétries éventuelles) avec une pente 0 <= pente = 0.35 <= 1\n", "Méthode de longer au plus près supérieurement (après symétries éventuelles) avec une pente 0 <= pente = 0.35 <= 1\n" ] }, { "data": { "image/png": "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PPDAA1usf8KECXzuc5/jnHPOqd2WG2+8keHDhzNw4EAuvPDC2uWjR4/mu9/9LsOGDaNfv348++yznHnmmRx00EFcc801DW6rJEntST7nYPl8UK4txBiprrkctYOo2aaCggLuvPNOjjzyyCa9/8Ybb+T4449vcMwLL7wApD53EydOBKBbt25MmjSJveu5j1xVVRUXXXQRX/nKV5oUT31ztTYLQlLH0pQuY1u7itTNDd8mdX363enldwN7ppd/D/hhy0IELr8cRo/O7uPyyxu16rPPPptJkyaRTCZ56aWXOPzww2tfu/nmm/n85z/PvHnzmDFjBldeeSWbNm3ixhtvZOLEiVv8cXj99df5+9//zrx587jhhhvYtGkT8+fP549//CNz587lmWee4Xe/+x0vvPAC8+fPZ9KkSbVJzbPPPlu7zgsvvJA77riD+fPnc+utt3LxxRdvE/MNN9zAMcccwyuvvMIZZ5zBe++9B8Brr73Gfffdxz//+U8WLFhAQUEB9957b8btPueccxg8eDAHH3wwP/7xj2sLQuvWrePwww/nxRdfZM8998w434IFC/jggw9YuHAhL7/8Ml/72te2G/vSpUuZNWsW06ZN44c//OQj88ILL3Dbbbfx6quv8q9//Yt//vOfAFxyySU8++yztcli3cvKunTpwnPPPcdFF13Eaaedxi9/+UsWLlzIPffcw4oVO+SBUkmS6mq9HGz+5TB9dHYf8y9v1Krz/aBcWVkZgwYNYuDAgVx11VW1y3fddVeuvvpqhgwZwhFHHEFF+nLPd955hyOOOIJBgwZxzTXXsOuuu9a+57/+678YPnw4gwcP5rrrrgOgvLycgw8+mK985SsMHDiQ999/f4v1N3TwreYspg8//JA+ffpsE/vMmTM59thjOfnkkzn44IO56KKLtik4lZeXM3DgwNrnt956K9dffz0At99+O/3792fw4MGcffbZ28x/zz33cNpppzF69GgOOuggbrjhhnq3KdO2r1u3jpNPPpkhQ4YwcODA2s9KXeedd17tQco+ffpw3XXXceihhzJo0CBef/11li1bxrnnnsuzzz7L0KFDeeedd5g/fz6jRo3isMMOY8yYMSxNX+I7evRoLr/8coYNG8YvfvGLLc48a+iAad2DpDXfz5kzZzJy5EjGjRtH//792bx5M1deeWXtNv72t7+tHTdq1ChOO+00DjjgAH74wx9y7733MmLECAYNGsQ777wDwPLlyxk/fjzDhw9n+PDhtbn29ddfz/nnn7/Nz84Pf/hD3nnnHYYOHcqVV165zX6TtGNp7E2lAYgxzgRmpr/+FzAiw5gk8KUsxNYuDB48mPLycsrKymrvCVTj8ccf55FHHqn9hZ5MJmuLL1s7+eSTKSwspLCwkL322ouKigpmzZrFGWecwS677ALAmWeeydNPP011dTVnnHEGO++8MwDjxo0DUmfLzJ49my996ZPdu2HDhm3W9dRTT/HQQw/VrrfmNOp//OMfzJ8/n+HDhwNQWVnJXnvtlTHee++9l2HDhrF8+XKOOuooxo4dy/77709BQQHjx49vcL5TTz2Vf/3rX3znO9/h5JNP5sQTT9xu7KeffjqdOnWif//+tYkNwIgRI9h3330BGDp0KOXl5RxzzDHMmDGD//f//h/r16/no48+YsCAAZx66qlb7K9BgwYxYMAAevXqBcABBxzA+++/z5577plxmyVJaq/yMQc7++yzufHGGznllFN46aWXOP/883n66aeBTw7K/eEPf2DlypWMGDGC448/nhtvvJHnnnuOO++8E0j9p/b1119nxowZrFmzhoMPPphvfetbvPTSS7UH5WKMHH744YwaNYrq6urag3JVVVUceuihHHbYYUDqwNZvfvMbDjroIObOncvFF1/Mk08+uUXMNQflrr32Wh599FHuvjtVq6t7UK5z585cfPHF3HvvvfWeJbJkyRKuuuoq5s+fz+67786JJ57I1KlTOf3001m3bh1HHHEEN998Mz/4wQ/43e9+xzXXXMNll13GZZddRklJCb/5zW9q53r88cd56623mDdvHjFGxo0bx1NPPUXv3r156623+NOf/sQRRxyxTQyXXHIJ1157LQBf/vKXmTZtWm2u1Rjz5s3j1VdfZf/992fs2LE89NBDTJgwYftvBG655RYWLVpEYWEhK1eurHf+hQsXsvPOOzN8+HBOPvlkunfvvsU2Pf7447z55pvMmzeP6upqTj31VP7v//6PDz/8kL333ru24Lhq1artxtS9e3eef/55fvWrX3Hrrbfy+9//nt///ve197vctGkTX/7yl3n44Yfp0aMH9913H1dffTV/+MMfANi4cWNtIa2m8AWN+1xt7fnnn2fhwoX07duXu+66i912241nn32WDRs2cPTRR3PiiScC8OKLL/Laa6+xxx57cMABB3DBBRcwb948fvGLX3DHHXdw2223cdlll/Hd736XY445hvfee48xY8bw2muvAWT82bnllltYuHAhCxYs2O4+k9T+Nakg1GbqHLVpC+PGjeOKK65g5syZW5xhEmPkwQcf5OCDD95i/Ny5c7eZo7CwsPbrgoKCZp3iWV1dTbdu3Zr9CzjGyFe/+lV+8pOfNPo9PXr04NBDD2Xu3Lnsv//+FBUV1Z4t1NB8L774In//+9/5zW9+w/33389tt93WYOx190/do2mZ9lsymeTiiy/mueeeY7/99uP6668nmUxu855OnTpt8f5OnTq1yam1kiTtsA67rc1Wna8H5QCeffZZRo8eTY8ePYDUmdtPPfUUp59+Ol26dKm9l9Jhhx3GE088AcCcOXOYOnUqAIlEorYZyeOPP87jjz/OIYccUrstb731Fr1792b//ffPWAwCGjz41hgjRozggAMOAKCkpIRZs2Y1uiA0ePBgzjnnHE4//XROP/30jGNOOOGE2oN8Z555JrNmzeL000/fYpsef/xxZs+ezXHHHQekLndatGgRRx11FN///ve56qqrOOWUUxg5cuR2YzrzzDOB1D6v+R7X9cYbb7Bw4UJOOOEEIHWvzZqDkkDtVQN1NfZztbURI0bQt2/f2m186aWXas8mWrVqFW+99RZdunRh+PDhtTF85jOfqS0UDRo0iBkzZgAwffp0Xn311dq5V69ezdq1a4HMPzuSOpaWXDKWN84//3yuu+46Bg0atMXyMWPGcMcdd9QWMGquI+7atStr1qzZ7rwjR45k6tSprF+/nnXr1jFlyhRGjhzJsccey9SpU6msrGTNmjX89a9/BeBTn/oUffv2ZfLkyUCqcPLiiy9uM++xxx5LaWkpAH/729/4+OOPAfjCF77AAw88wLJlywD46KOPePfddxuMcf369bzwwgt85jOf2ea1+ub78MMPqa6uZvz48dx00008//zzjY69MWqKP927d2ft2rVbnE4rSZI6jpqDcnUvF4NPDsotWLCABQsW8N5779GvX7+Mc2T7oFzNo+YsisaoOYhW89433nhji7NEmqJz586EEIDGbU+MkR/96Ee163777bf5+te/DlBbENtazcG3Bx54gJdffplvfOMbtfnXTjvtVHv5V90DcluribG+53Xn2XquRx99lG9/+9s8//zzDB8+POM21jd/3W2KMfKd73yHmTNnMnPmTBYsWMB5553HZz/7WZ5//vnay+tuvPHGerejRs3nqL59HmNkwIABtfv55Zdf5vHHH699PdO+buhzVXf/VFdXb9HgZettvOOOO2rfv2jRotrCz9YHRuseNK3Zhurqap555pna93/wwQe1l6dl42dHUvtmQagR9t13Xy699NJtlv/4xz9m06ZNDB48mAEDBvDjH/8YgOOOO45XX311i+vXMzn00EM577zzGDFiBIcffjgXXHABhxxyCIceeigTJ05kyJAhnHTSSbVHkyB1Kdfdd9/NkCFDGDBgAA8//PA281533XU89dRTDBgwgIceeojevXsD0L9/f2666SZOPPFEBg8ezAknnFB7bfPWzjnnHIYOHcphhx3GeeedV3u6dF31zffBBx8wevRohg4dyrnnnlt7BlFjYm+Mbt268Y1vfIOBAwcyZsyYLfaPJEnqOPL1oNyIESNqL23avHkzZWVl222bfsQRR/Dggw8CMGnSpC321R/+8Ifasz4++OCD2jjq09DBtz59+jB//nyABg/KzZs3j0WLFlFdXc19993HMcccs8XrPXv2ZNmyZaxYsYINGzbU3g+yurqa999/n+OOO46f/vSnrFq1qjb2up544gk++ugjKisrmTp1KkcfffQ2Y8aMGcMf//jH2vcvXryYZcuWsWTJEnbeeWfOPfdcrrzySp5//vkG90djHHzwwSxfvry2m9mmTZt45ZVXGnxPQ5+ruvv5kUceYdOmTRnnGDNmDL/+9a9rX3/zzTdZt25do+M+8cQTueOOO2qfb+9KhMb+jEnaMewYl4y1kUx/fEaPHs3o0aMBKC4urr1xW1177LHHFjeC3trChQtrv/7e977H9773vW3GXH311Vx99dXbLO/bty//+7//22Dce+655xZHJOqaOHFixlNW65o5c2a9r229T+qbL9Mf1vpiv+eeezKuo+6+BmrvBwBw0003cdNNNzUY+9bvb2i7JElS+9PQQbnLL7+cwYMHU11dTd++fZk2bRrHHXcct9xyC0OHDuVHP/pRvfPWPSgH1B6UA2oPyu21117bHJT71re+xU033cSmTZs4++yzGTJkyBbzXnfddZSUlDBgwACOOuqojAflqqur6dy5M7/85S/Zf//9M8bXq1cvbrnlFo477jhijJx88smc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CEmSJEmSJOUZC0KSJEmSJEl5xoKQJEmSJElSnrEgJEmSJEmSlGcsCEmSJEmSJOUZC0KSJEmSJEl5xoKQJEmSJElSnrEgJEmSJEmSlGcsCEmSJEmSJOUZC0KSJEmSJEl5xoKQJEmSJElSnrEgJEmSJEmSlGcsCEmSJEmSJOUZC0KSJEmSJEl5xoKQJEmSJElSnrEgJEmSJEmSlGcsCEmSJEmSJOUZC0KSJEmSJEl5xoKQJEmSJElSnrEgJEmSJEmSlGcsCEmSJEmSJOUZC0KSJEmSJEl5xoKQJEmSJElSnrEgJEmSJEmSlGcsCEmSJEmSJOUZC0KSJEmSJEl5xoKQJEmSJElSnrEgJEmSJEmSlGcsCEmSJEmSJOUZC0KSJEmSJEl5xoKQJEmSJElSnrEgJEmSJEmSlGcsCEmSJEmSJOUZC0KSJEmSJEl5xoKQJEmSJElSnrEgJEmSJEmSlGcsCEmSJEmSJOUZC0KSJEmSJEl5xoKQJEmSJElSnrEgJEmSJEmSlGcsCEmSJEmSJOUZC0KSJEmSJEl5xoKQJEmSJElSnrEgJEmSJEmSlGcsCEmSJEmSJOUZC0KSJEmSJEl5xoKQJEmSJElSnrEgJEmSJEmSlGcsCEmSJEmSJOUZC0KSJEmSJEl5xoKQJEmSJElSnrEgJEmSJEmSlGcsCEmSJEmSJOUZC0KSJEmSJEl5xoKQJEmSJElSnrEgJEmSJEmSlGcsCEmSJEmSJOUZC0KSJEmSJEl5xoKQJEmSJElSnrEgJEmSJEmSlGcsCEmSJEmSJOUZC0KSJEmSJEl5xoKQJEmSJElSnrEgJEmSJEmSlGcsCEmSJEmSJOUZC0KSJEmSJEl5xoKQJEmSJElSnrEgJEmSJEmSlGcsCEmSJEmSJOUZC0KSJEmSJEl5xoKQJEmSJElSnrEgJEmSJEmSlGcsCEmSJEmSJOUZC0KSJEmSJEl5xoKQJEmSJElSnrEgJEmSJEmSlGcsCEmSJEmSJOUZC0KSJEmSJEl5xoKQJEmSJElSnrEgJEmSJEmSlGcsCEmSJEmSJOUZC0KSJEmSJEl5xoKQJEmSJElSnrEgJEmSJEmSlGcsCEmSJEmSJOUZC0KSJEmSJEl5xoKQJEmSJElSnrEgJEmSJEmSlGcsCEmSJEmSJOUZC0KSJEmSJEl5xoKQJEmSJElSnrEgJEmSJEmSlGcsCEmS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ykJstf738v/l3wv+nc0p+fTQTzP2trHbHXf22Wdz4403csopp/DSSy9x/vnn8/TTTwOphOHzn/88f/jDH1i5ciUjRozg+OOP58Ybb+S5557jzjvvBFL/gX399deZMWMGa9as4eCDD+Zb3/oWL730En/84x+ZO3cuMUYOP/xwRo0aRXV1NZMmTWLBggVUVVVx6KGHcthhhwFw4YUX8pvf/IaDDjqIuXPncvHFF/Pkk09uEfMNN9zAMcccw7XXXsujjz7K3Xen8sTXXnuN++67j3/+85907tyZiy++mHvvvbfeM0KWLFnCVVddxfz589l999058cQTmTp1Kqeffjrr1q3jiCOO4Oabb+YHP/gBv/vd77jmmmu47LLLuOyyyygpKdnij+/jjz/OW2+9xbx584gxMm7cOJ566il69+7NW2+9xZ/+9CeOOOKIbWK45JJLuPbaawH48pe/zLRp0zj11FO3+32rMW/ePF599VX2339/xo4dy0MPPcSECRO2/0bglltuYdGiRRQWFrJy5cp651+4cCE777wzw4cP5+STT6Z79+5bbNPjjz/Om2++ybx586iurubUU0/l//7v//jwww/Ze++9a5PdVatWNSuGut544w3uvvtujj76aM4//3x+9atfcdlll/Gd73yHhx9+mB49enDfffdx9dVX84c//AGAjRs31hbXaoph0LjP2taef/55Fi5cSN++fbnrrrvYbbfdePbZZ9mwYQNHH300J554IgAvvvgir732GnvssQcHHHAAF1xwAfPmzeMXv/gFd9xxB7fddhuXXXYZ3/3udznmmGN47733GDNmDK+99hpAxp+nW265hYULF7JgwYLt7idJ2tG0VQ52+eWQ7V+rQ4dCnfpLvczB2ncOtmnTpnrzizPPPJNvfOMbAFxzzTXcfffdfOc732HcuHGccsoptbnY4MGDueOOOxg1ahTXXnstN9xwwxbFuRp77rknzz//PB9++CFnnnkm06dPZ5ddduGnP/0pP/vZz2rj7N27NwsWLOC73/0u5513Hv/85z9JJpMMHDiQiy66aLv7oqysjN/97necddZZPPjgg5x77rnceeed3HrrrQwbNmw7n1hJ2vE0qSCUjwYPHkx5eTllZWV88Ytf3OK1xx9/nEceeaT2jIpkMsl7772XcZ6TTz6ZwsJCCgsL2WuvvaioqGDWrFmcccYZ7LJL6sagZ555Jk8//TTV1dWcccYZ7LzzzgCMGzcOgLVr1zJ79my+9KVPcr0NGzZss66nnnqKhx56qHa9NdfV/+Mf/2D+/PkMHz4cgMrKSvbaa696t/3ZZ59l9OjR9OjRA4BzzjmHp556itNPP50uXbrUXsd/2GGH8cQTTwAwZ84cpk6dCkAikeCKK66o3VePP/44hxxySO22vPXWW/Tu3Zv9998/YyICMGPGDP7f//t/rF+/no8++ogBAwY0qSA0YsQIDjjgAABKSkqYNWtWowtCgwcP5pxzzuH000/n9NNPzzjmhBNOYM899wRS379Zs2Zx+umnb7FNjz/+OLNnz+a4444DUpc2LVq0iKOOOorvf//7XHXVVZxyyimMHDmyWTHUtd9++3H00UcDcO6553L77bczduxYFi5cyAknnACkTrfu1atX7XsmTpy4zTyN/axtbcSIEfTt27d2u1966aXaI3yrVq3irbfeokuXLgwfPrw2hs985jO1haJBgwYxY8YMAKZPn77FaeWrV6+uPQqY6edJktSxmIO17xzsjTfeqDe/WLhwIddccw0rV65k7dq1jBkzZpv5V61axcqVK2sbbnz1q1/dYv/WVZOrPPPMM7z66qu1uc7GjRu3uBy/5vs1aNAg1q5dS9euXenatWvtgbWG9kXfvn0ZOnRo7X4tLy/PGIskdSQ7REGoMWfy5NK4ceO44oormDlzJitWfHJvxhgjDz74IAcffPAW4+fOnbvNHIWFhbVfFxQUNOseK9XV1XTr1q3ZZ0DEGPnqV7/KT37yk2a9v67OnTvXtttszPbEGPnRj37EN7/5zS2Wl5eX1yZjW0smk1x88cU899xz7Lffflx//fUkk0kAdtppp9rLv2qWZbJ1S9Ctn9edZ+u5Hn30UZ566in++te/cvPNN/Pyyy+z005b/sjUN3/dbYox8p3vfIeLLrpom/ief/55HnvsMa655hq+8IUv1B7h2l4M9cWcKZ4YIwMGDKj3htaZ9n9Dn7W666+urmbjxo0Z54oxcscdd2yTBM6cOXOLn4dOnTrVPu/UqVPtZ6m6uppnnnmGoqKibWLIxs+TJGn7GnMmTy6Zg22rrXOwuvPWl1+cd955TJ06lSFDhnDPPfcwc+bMJmzhtmrijDFywgknUFZWlnFc3Xxi61yjqqqqwX2x9efEy8Mk5YOW3EMob5x//vlcd911DBo0aIvlY8aM4Y477qi9pvqFF14AoGvXrqxZs2a7844cOZKpU6eyfv161q1bx5QpUxg5ciTHHnssU6dOpbKykjVr1vDXv/4VgE996lP07duXyZMnA6k/ii+++OI28x577LGUlpYC8Le//a32euwvfOELPPDAAyxbtgyAjz76iHfffbfe+EaMGFF7adPmzZspKyvbbtv0I444ggcffBCASZMmbbGv/vCHP9Se4fHBBx/UxlGfmsSje/furF27dov71vTp04f58+cDbLF8a/PmzWPRokVUV1dz3333ccwxx2zxes+ePVm2bBkrVqxgw4YNTJs2DUglfu+//z7HHXccP/3pT1m1alVt7HU98cQTfPTRR1RWVjJ16tTaI1Z1jRkzhj/+8Y+171+8eDHLli1jyZIl7Lzzzpx77rlceeWVPP/881u8r74Y+vTpUzv2+eefZ9GiRbXvee+992oTs9LSUo455hgOPvhgli9fXrt806ZNvPLKK/XuM2j4s1Z33z/yyCNs2rQp4xxjxozh17/+de3rb775JuvWNb6t9Yknnsgdd9xR+3x7SXhjf+4kSTsOc7D2l4PVaCi/WLNmDb169WLTpk3ce++9te+p+/3Zbbfd2H333WsvA/yf//mfRm3jP//5T95++20gdS+pN998s8H31NWcfWF+IakjsyDUCPvuuy+XXnrpNst//OMfs2nTJgYPHsyAAQP48Y9/DMBxxx3Hq6++usUNDTM59NBDOe+88xgxYgSHH344F1xwAYcccgiHHnooEydOZMiQIZx00km1pxcD3Hvvvdx9990MGTKEAQMG8PDDD28z73XXXcdTTz3FgAEDeOihh+jduzcA/fv356abbuLEE09k8ODBnHDCCbU3/8ukV69e3HLLLRx33HEMGTKEww47jNNOO63BfXXbbbfxs5/9jMGDB/P222+z2267Aan/3CcSCY488kgGDRrEhAkTtvvHtVu3bnzjG99g4MCBjBkzZov9cMUVV/DrX/+aQw45pMF2rsOHD+eSSy6hX79+9O3blzPOOGOL1zt37sy1117LiBEjOOGEE/jc5z4HpE57Pvfccxk0aBCHHHIIl156Kd26ddtm/hEjRjB+/HgGDx7M+PHjM15fvvW2f+lLX2LNmjW8/PLLtTeXvOGGG7jmmmu2eF99MYwfP7721O0777yTz372s7Xv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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "A = (0, 0)\n", "B = (20, 7) # pente 7/20\n", "pente = (B[1] - A[1]) / (B[0] - A[0])\n", "plot_4_differents_methods(A=A, B=B, pente=pente)" ] }, { "cell_type": "code", "execution_count": 355, "metadata": { "ExecuteTime": { "end_time": "2021-01-26T09:03:20.756640Z", "start_time": "2021-01-26T09:03:19.389435Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Méthode de Bresenham (avant symétries) avec une pente = 2.857142857142857\n", "Méthode de Bresenham (après symétries éventuelles) avec une pente 0 <= pente = 0.35 <= 1\n", "Méthode de longer aléatoirement (avant symétries) avec une pente = 2.857142857142857\n", "Méthode de longer aléatoirement (après symétries éventuelles) avec une pente 0 <= pente = 0.35 <= 1\n", "Méthode de longer au plus près inférieurement (avant symétries) avec une pente = 2.857142857142857\n", "Méthode de longer au plus près inférieurement (après symétries éventuelles) avec une pente 0 <= pente = 0.35 <= 1\n", "Méthode de longer au plus près supérieurement (avant symétries) avec une pente = 2.857142857142857\n", "Méthode de longer au plus près supérieurement (après symétries éventuelles) avec une pente 0 <= pente = 0.35 <= 1\n" ] }, { "data": { "image/png": "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SJ07d65wH7fbrdtuu03f//73axRPZceqbyTVwUVSjbJ+8INuGjasT52+fvCDbtU59Zw5c7Ro0SLl5+dr27ZtGj58uG/db37zG1122WX66KOPtHr1as2fP19FRUV69NFHNXv27DIfml988YX++9//6qOPPtKvf/1rFRUVKS0tTf/617+0adMmbdy4UX//+9+1detWpaWladGiRb4e748//th3zltuuUXPPPOM0tLS9NRTT+lHP/rRaTH/+te/1ujRo/XZZ59p2rRp+uabbyRJn3/+uRYvXqwPPvhAn3zyiUJDQ/Xyyy9XeN1z587VwIED1adPH/3qV7/yJdWnTp3S8OHD9emnn+qcc86p8HiffPKJDh06pB07dmj79u268cYbzxj7kSNHtH79eq1YsUIPPPCAb/nWrVv19NNPa+fOnfr666/1wQcfSJJ+8pOf6OOPP/ZVEqxYscK3T0REhDZv3qzbbrtNU6ZM0Z///Gft2LFDCxcuVGZmZnV+7ACARubyyy/PXrJkSbQkpaamtp8xY8Z3JetycnJCZs6c2XPAgAH9+vXrF/fvf/87Oj8/3/z2t7/tvHz58nZ9+/aN+/vf/95Okj7//POoYcOG9enateuAxx577NySYzzyyCOxvXv3ju/du3f8o48+6lt+//33d+zZs2f/IUOG9Pnyyy8jS5Z/9tlnkWPGjOkdHx/fb8iQIX22bt3qKh/z0aNHQy+++OLeF1xwQfzs2bN7+H8J/pe//KX9gAED+vXt2zcuOTm5x5kSor/97W/tL7zwwrjevXvH33777b6yuhYtWlx0xx13dOnTp09cQkJC3wMHDoSVxJeQkND3wgsvjLvzzjs7t2jR4qKSfX71q1/F9u/fv9+FF14Yd/fdd3eWpF27dkX07Nmz/7Rp03peeOGF8V999VWE//nvu+++Tv379+/Xu3fv+KSkpB4ej0dS2d70I0eOhHXp0mVA+dg/+ugjXXLJJbr66qvVp08f3XbbbSrZv8S+ffvUv39/3/xTTz2lRx55RJK0YMECxcXFaeDAgZozZ85p783ChQs1ZcoUjR07Vr1799avf/1r3zH79Omj73//++rfv78OHDigJ598UomJiRo4cKAefvhhSU7b5+qrr1ZCQoL69+/v6zDxd8MNN/g6BXr27KmHH35YgwcP1oABA/TFF18oIyND8+bN08cff6xBgwbpq6++Ulpami699FINGTJEV155pY4cOSLJ6SC46667NHToUP3xj38scxtgVR0U/p0SrVq1kuTcSjdmzBhdc801iouLU3FxsebPn++7xr/97W++7S699FJNmTJF559/vh544AG9/PLLGjZsmAYMGKCvvvpKknTs2DHNmDFDiYmJSkxM9LXLHnnkEf3gBz84rQPpgQce0FdffaVBgwZp/vz5p71vCCweqYUGY+DAgdq3b59SU1N11VVXlVm3atUqLVu2zPdBl5+f70tgy7v66qsVGRmpyMhInXvuuUpPT9f69es1bdo0tWzZUpI0ffp0rVu3Th6PR9OmTVOLFk5F1zXXXCPJ6bXdsGGDZs6c6TtuQUHBaedau3atXnvtNd95S+71fu+995SWlqbExERJUl5ens4999zT9pec8u+hQ4fq2LFjGjVqlCZOnKgePXooNDRUM2bMqPJ43/ve9/T111/rjjvu0NVXX60JEyacMfapU6cqJCREcXFxSk9P9y0fNmyYunbtKkkaNGiQ9u3bp9GjR2v16tX63e9+p9zcXH333XeKj4/X9773vTLv14ABAxQfH6+SZ1+ef/75OnDggM4555wKrxkAcJY2/qCbsnbUbTlydP9cjXj+wJk2u+666757+OGHO82ePTvr888/b/HDH/4wc8OGDa0k6Re/+EWncePG5SxZsmTft99+Gzp06NB+11xzTc7Pf/7zw5s3b2754osvfiNJ99xzT9SePXtcGzZs2JWVlRXar1+//vPnzz/20UcfRaWkpJyTlpb2ubVWQ4YM6Td+/PgTHo/HvP766+23b9++s6ioSIMGDYq76KKLciXppptu6vHcc8/tHzBgQMH//ve/lrfffnv3jRs37vaP+YEHHug8cuTIk0899dSRRYsWtX3llVc6SNKWLVtcS5cubb958+YvIiMj7bx587r/9a9/PecnP/lJhd8M79u3L/yRRx7pkpaW9nlMTIx7zJgxF7700kvR1113XVZeXl7IyJEjTz7zzDOHbrvttq7PPPNMzO9+97sjP/nJT7r96Ec/yrj11lu/+93vfhdTcqzXXnutzZ49e1zbtm373Fqryy+//IK33nqr1fnnn1/4zTffRP7zn//cO378+H3lY5g/f37GU089dUSSpk6det6iRYvaJicnZ1f3x/zRRx9p586d6tGjhyZOnKjXXntN1157bbX2ffzxx7V3715FRkYqKyur0uPv2LFDLVq0UGJioq6++mp16NBBX375pV544QWNGDFCq1at0u7du/XRRx/J4/Hoe9/7nt5//319++236ty5s69yMTv7zJfVoUMHbdmyRX/5y1/01FNP6R//+If+8Y9/6KmnntKKFStUVFSk6667Tm+++aZiYmK0ePFi/fKXv9Tzzz8vSSosLNTmzZslyfflgeR0UPz1r39V7969tWnTJv3oRz/S//73vypj2bJli3bs2KHzzjtPzz33nNq2bauPP/5YBQUFuvjiizVhwgRJ0qeffqrPP/9c7du31/nnn6+bbrpJH330kf74xz/qmWee0dNPP62f/vSnuvvuuzV69Gh98803uvLKK/X5559LcjqQVq9erRMnTqhPnz66/fbb9fjjj2vHjh365JNPzvieoe6RVKOs58/8xzSQrrnmGt13331as2ZNmZ5Oa61effVV9enTp8z2mzZtOu0YkZG+L68VGhpaqxIcj8ej6OjoWn8wWWt1/fXX67e//W2194mJidHgwYO1adMm9ejRQy6Xy9drXdXxPv30U/33v//VX//6V73yyit6+umnq4zd//3x/6a+ovctPz9fP/rRj7R582Z1++47PfLss8rft0/69FPp5ElF7t8vtWqlkK+/VmRBgbNcUkhurtw7d0rlR5uMiBAAoHEbPnx43sGDByP//ve/t7/88svLZD1r1qxp89///jd6wYIFHSWpoKDA7Nmzp8IP/wkTJmRFRUXZqKgod/v27YsOHjwYtmbNmlZXXXVVVps2bTySdPXVVx9fvXp1a4/Ho6uuuiqrdevWnpJ9JSk7Oztk69atrWbOnNmr5LiFhYWnDXW8cePG1q+99toeSZozZ072rbfeWixJb7/9dusdO3a0SEhI6CdJ+fn5Ieeee26lDYf169e3HDFixInOnTu7JWn27Nnfvf/++62uu+66rPDwcDtnzpxsSRoyZMipd999t40kbd26tdWqVav2SNJNN92U+cgjj3T1nrvN2rVr28TFxcVJUm5ubsgXX3zhOv/88ws7depUOH78+FMVxfDWW2+1/v3vf98xPz8/JCsrKywuLi5PUrWT6mHDhun888+XJCUlJWn9+vXVTqoHDhyouXPnaurUqZo6dWqF21xxxRW+L9WnT5+u9evXa+rUqerRo4dGjBghyeks2bBhg8aNGyfJ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q6++unvOnDnHiouLN7vd7s1jx47NWrly5RdffPHFNmOMfffddz+v6Gdw9OjRrSXTU6ZMySw5Z0mM1trNhw8f/qRz584F5fddvnz5roiICM9nn322raioaPPIkSOzf//731trre3Ro4c9duyY3bt3r42Pj7clnnzySfvwww9ba63t1KmTzc/Pt9Zae/z4cVvev/71L9uxY0f77bff2tzcXBsfH28//vhju3fvXmuMsR9++KG11tr//ve/9qabbrIej8e63W47adIku2bNGrt06VJ70003+Y6XlZV12jkqiuHhhx+2Tz75pG+b+Ph4u3fvXrt3714rya5fv95aa+2NN95on3zySVtYWGhHjhxpMzIyrLXWLlq0yN54443WWmsvvfRSe/vtt/uO5X/syy67zO7evdtaa+3GjRvtuHHjrLXWXn/99XbJkiW+fVq2bGmttXb16tW2RYsW9uuvv7bWWvu3v/3N/r//9/+stdbm5+fbIUOG2K+//tquXr3atm3b1h4+fNjm5+fbzp0724ceeshaa+3TTz9tf/rTn1prrU1KSrLr1q2z1lq7f/9+27dvX1+MI0eOtPn5+fbYsWO2ffv2trCw8LSfZXk7d+48bZmkzbaKzyFevHjx4sWrspd/W/XGG216YqI9UZevG2+0Taqt+tlnn9kSd9xxh/31r39trbV2xYoVVpI9duyY3blzp508ebItLCy01lp7++232xdeeMGWd+mll9qPP/7YHjp0yHbr1s1mZGTYoqIiO27cOPv6669ba62VZJctW2attXb+/Pm+NsnVV19tU1JSrLXWPvvss752zH//+1978803W4/HY4uLi+3VV19t33///dPadeVlZmb6pufNm+c7Z0l7qap22Lfffuvb95e//KVdsGBBmX1LDBgwwK5Zs8Zaa+2vfvUrX1vJf7sePXrYJ554wlpr7bFjx+yYMWPsyZMnrbXWPv744773u0ePHvYvf/mLtdbau+66yw4YMMDm5OTYjIwMe+65557xvQgNDbVbt2611lo7c+ZM+9JLL5X5mVSENlhgXw2+/FuShg8fnnfw4MHIv//97+0vv/zyMiUya9asafPf//43esGCBR0lqaCgwOzZsyeiouNMmDAhKyoqykZFRbnbt29fdPDgwbA1a9a0uuqqq7LatGnjkaSrr776+OrVq1t7PB5dddVVWa1bt/aU7CtJ2dnZIVu3bm01c+bMXiXHLSwsPG1IvY0bN7Z+7bXX9kjSnDlzsm+99dZiSXr77bdb79ixo0VCQkI/ScrPzw8599xzK+2qXr9+fcsRI0ac6Ny5s1uSZs+e/d3777/f6rrrrssKDw+3c+bMyZakIUOGnHr33XfbSNLWrVtbrVq1ao8k3XTTTZmPPPJIV++526xdu7ZNnLeOJTc3N+SLL75wnX/++YWdOnUqHD9+/KmKYnjrrbda//73v++Yn58fkpWVFRYXF5cnqdqlSgMGDDgVFxdXKEmzZs36Li0trU119x04cKDmzp2rqVOnaurUqRVuc8UVV+icc86RJE2fPl3r16/X1KlT1aNHD40YMUKStGrVKm3YsEHjxo2T5JQp7927V6NGjdK9996r+++/X5MnT9aYMWNqFYO/bt266eKLL5YkzZs3TwsWLNDEiRO1Y8cOXXHFFZKckqBOnTr59pk9e/Zpxzl58qQ2bNigmTNn+pYVFBSc8fzDhg3zPYdw1apV2rZtm+8b1OzsbH355ZeKiIhQYmKiL4ZevXppwoQJkqQBAwZo9erVkqR33323zP1EOTk5vm9Zr776akVGRioyMlLnnnuu79tnAACam8bYVl27dq1ee+01eY+pdu3aSZLee+89paWlKTExUZKUl5enc889t/zuPh9//LHGjh2rmJgYSdLcuXO1du1aTZ06VREREZo8ebIkZ2ybd955R5L04Ycf6o033pAkJScn67777pPktFtWrVqliy5yiixPnjypL7/8Ut27dy/Tritv9erV+t3vfqfc3Fx99913io+P1/e+9z3f+l27dlXaDtuxY4cefPBBZWVl6eTJk7ryyitPO352draysrJ06aWXSpKuv/76Mu0zfyVtuo0bN2rnzp2+NmFhYaFGjhzp2+6aa66R5LS7Tp48qdatW6t169aKjIxUVlZWle/Feeedp0GDBvne13379lUYC+pPtZPqKc9POXDmrQJn4sSJWQ8//HC3VatW7crIyPDFba3V0qVL9yQkJJTJNtavX9+y/DEiIyN9tSChoaFyu901Hl++uLhYrVu3dn/xxRdnHrmgAtZaM3PmzMw///nPh2qzv7+wsDBbcj9JWFjYGa/HWqu77rrryPz588uMQrFr166IFi1aeCraJzc319x77709Nm3atPOCCy4ouueeezrn5+eHlJy/pBwoNze30nOXH8a//HxYWJj8S8L9n6P3n//8R2vXrtXy5cv1m9/8Rtu3bz/tPuHKjt+yZemvgLVWd9xxR4X3K2/ZskUrV67Ugw8+qPHjx+uhhx4qs76yGCqLuaJ4rLWKj4+vdJA0/1hLeDweRUdH65NPPjltnf/5PR6PCgsLKzyWtVbPPPPMaX8g1qxZo8hIX5WYQkJCfPMhISEquSXB4/Fo48aNcrlcOvrpUUnSya9O6uTRk2rZoqVvmS2yOrLNKaNy57t9y09TYRMCAICz9/zzoq2qOmmr6vrrr9dvf/vb2uxeRnh4uK9d5L2eM5775z//uW699dYyy/ft21dhW0ly2mA/+tGPtHnzZnXr1k2PPPLIac9krqoddsMNN+iNN95QQkKCFi5cqDVr1tTgCk9XEqe1VldccYVSU1Mr3M6/3VW+TeZ2u8u8F59+Wrrfzp37ZG2kb1l6eqhyc/P06afSyZPS7t1SePjp54ugDRZQjeKeakm6/fbbv73vvvsODxs2rMwNAuPGjcv5v//7v9iSBOODDz6IkqQ2bdoUnzx58ozXN27cuJMrV66MPnHiREhOTk7IypUr240bN+7EZZdddnLlypXRJ0+eNMePHw955513oiWpffv2nq5duxY+//zz7SQn6fjwww+jyh93xIgRJxYuXHiOJL3yyittcnJyQiVp4sSJOStWrGh36NChMElKT08P3b17d6W/5mPGjDm1adOm1keOHAlzu91asmRJ+7Fjx56s6poGDRp0cuHChe0k6fnnn29fsnzSpEk5L730Uofs7OwQSdq7d294SRyVyc3NDZGkjh07urOzs0OWL1/ermRdt27dCj766KOWkvTyyy+3q+wY27dvb/nFF19EFBcXa+nSpe0HDx5cZn1sbKwyMjKUmZmpgoICrVixQpLz3h44cEDjxo3TE088oezsbF8vqb933nlH3333nfLy8vTGG2/4vhH0d+WVV+pf//qXb/+DBw8qIyNDhw8fVosWLTRv3jzNnz9fW7ZsKbNfZTH07NnTt+2WLVu0d+9e3z7ffPON70M7JSVFo0ePVp8+fXTs2DHf8qKiIn322WeVvWWSpDZt2ui8887TkiVLJDkfzp96P0F79uyptLQ0SdKyZctUVHTaeCi+63722Wd963fv3q1TpyosSKjQhAkT9Mwzz/jmt+3YJk+RR9ZjZYutPEUeeYo8kpU8bo+iIqJ08tRJ33L/FwAATVlja6tecsklSklJkSS99dZbvnuEx48fr6VLlyojI0OS9N1332n//v2Vxjds2DC9//77+vbbb1VcXKzU1FRfj25lRowYoVdffVWSygwcduWVV+r555/3tdcOHTrki6MyJQl0hw4ddPLkyTJjzpSoqh124sQJderUSUVFRXr55Zd9+7Ru3VonTpyQJLVt21bt2rXTunXrJEkvvfRSta7xgw8+0J49eyQ54/js3r27yn38VfRepKdnyO2WrJWKipxXcbHk8TjTUVGtlZNzwreu5IXAaxTl35LUq1evogcffPC0/1WPP/744VtuuaV737594zwej+nWrVvB6tWr90yaNOnEU0891alv375x995775GKjilJo0ePzk1OTs4cPHhwP0m67rrrjl188cV5kjRt2rTv+vfvH3/OOecUDRw40JeJpKamfn3zzTf3eOKJJzq53W4zbdq070aOHFnmA/Txxx8/PGPGjPMvuOCC+KFDh57s1KlToSQNGTIk/8EHHzw0fvz4Cz0ej8LDw+2CBQu+ufDCCwtVgR49ehQ9/PDDhy699NILrbXm8ssvz5o3b15WVe/VM888c2Du3LnnPfnkk50uu+yynFatWhVL0vTp03M+++wzV2JiYl9JatGihefll1/eGxYWdvpoDl4dOnQonjt37rF+/frFx8TEuBMSEnzvwwMPPJA+e/bs8xcuXBhzxRVXVBpT//79T912223d9+3b5xo1alTO5ZdfXmZ9eHi4HnroIQ0bNkxdunRR3759JTnftM6bN0/Z2dmy1urOO+9UdHT0accfNmyYZsyYoYMHD2revHkaOnToaWUwEyZM0Oeff+4ru2nVqpX+/e9/a8+ePZo/f75CQkIUHh6uZ599tsx+lcUwY8YMvfjii4qPj9fw4cN14YUX+vbp06eP/vznP+sHP/iB4uLidPvttysiIkJLly7VnXfeqezsbLndbt11112Kj4+v7G2TJL388su6/fbb9dhjj6moqEhz5sxRQkKCbr75Zk2ZMkUJCQmaOHFipd/e3nTTTdq3b58GDx4sa61iYmJ85VbVsWDBAv34xz/WwIEDlX8qX8MHDdeTDz0pE2JkQo1Cwr1tASOFhIWoQ0wHDRs0TJfNuUyXXXyZHrrH6fUnqQYANHWNra368MMPKykpSfHx8Ro1apS6d+8u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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "A = (0, 0)\n", "B = (7, 20) # pente 20/7\n", "pente = (B[1] - A[1]) / (B[0] - A[0])\n", "plot_4_differents_methods(A=A, B=B, pente=pente)" ] }, { "cell_type": "code", "execution_count": 356, "metadata": { "ExecuteTime": { "end_time": "2021-01-26T09:03:21.982873Z", "start_time": "2021-01-26T09:03:20.773125Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Méthode de Bresenham (avant symétries) avec une pente = -2.857142857142857\n", "Méthode de Bresenham (avant symétries) avec une pente = -2.857142857142857\n", "Méthode de Bresenham (avant symétries) avec une pente = 2.857142857142857\n", "Méthode de Bresenham (après symétries éventuelles) avec une pente 0 <= pente = 0.35 <= 1\n", "Méthode de longer aléatoirement (avant symétries) avec une pente = -2.857142857142857\n", "Méthode de longer aléatoirement (avant symétries) avec une pente = -2.857142857142857\n", "Méthode de longer aléatoirement (avant symétries) avec une pente = 2.857142857142857\n", "Méthode de longer aléatoirement (après symétries éventuelles) avec une pente 0 <= pente = 0.35 <= 1\n", "Méthode de longer au plus près inférieurement (avant symétries) avec une pente = -2.857142857142857\n", "Méthode de longer au plus près inférieurement (avant symétries) avec une pente = -2.857142857142857\n", "Méthode de longer au plus près inférieurement (avant symétries) avec une pente = 2.857142857142857\n", "Méthode de longer au plus près inférieurement (après symétries éventuelles) avec une pente 0 <= pente = 0.35 <= 1\n", "Méthode de longer au plus près supérieurement (avant symétries) avec une pente = -2.857142857142857\n", "Méthode de longer au plus près supérieurement (avant symétries) avec une pente = -2.857142857142857\n", "Méthode de longer au plus près supérieurement (avant symétries) avec une pente = 2.857142857142857\n", "Méthode de longer au plus près supérieurement (après symétries éventuelles) avec une pente 0 <= pente = 0.35 <= 1\n" ] }, { "data": { "image/png": "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BkVFRf2te/fuKd26dTsQERER8jsv27Zt65WSkhLqw6AFsdaquLhYe/bs0VlnneV0OADQKjX332uEH3KwtocczDncDYUkpXXr1q2EP9oIFWOMTjvtNJWXlzsdCgC0Zvy9BtAo5GDOodCGJEW0pj/af/nLX3TgwAGnw0AjGWOcDgEAWrtW9fcaQMtADuYMCm20CMYYzZo1y7fscrnUrVs3jR8/vtp2jzzyiDp37qzOnTtLkt5//32tWLHC9/rDDz+sJ554IuA4mtq+d+/e+vrrrxu8fWZmpvr27auBAwcqJSVFzz33XMDHboq1a9ee8F4DANAUjz/+eNf9+/dHOh0HWqZ33nlHr7/+erMes6CgQC+88EKzHhNtF4U2WoRTTjlFW7duVVlZmSTp1Vdf1RlnnHHCdg8++KCysrJ8yzUL7dboxRdf1Pvvv68333xT9957ryoqKk7YprKy0oHIAACozhgzaOLEib4Peh4/flydO3dOHzly5Dn+291zzz2JnTt3ruzWrVulJG3YsCEuJyenU9Xrd911V48HH3wwIdA4mtr+jDPO6L9v374Gz1U0ZMiQvuvWrWsf6PFag8Z2FjTVoEGDlJubq7feeqtR7R588EGtXr263m2OHTumSy+9VAMHDlROTo4k6eDBg7rrrrs0atSoOts9++yz+te//tWoeFqKgwcP6umnn3Y6DPih0EaLMW7cOP3nP/+RJM2bN0/Z2dm+144ePaof/OAHGjJkiL7zne9oyZIlqqio0IMPPqicnJxqF9Jt27YpMzNTZ599tp588knfPn7/+98rLS1NaWlp+sMf/uBb/6tf/UrnnnuuRowYoe3bt/vWf/bZZxozZowGDRqkiy66SJ988skJMRcXF2v06NHq16+frr/+evnP4v/vf/9bQ4YM0cCBA3XTTTedtFg+cuSITjnlFEVGem7+d+jQQXfffbfS09P11ltv1bq/yspKXXfddUpLS1P//v31f//3f/XGft111+n222/X8OHDdfbZZ2vBggXVjn/VVVfpvPPO09VXX+07l0ceeUQZGRlKS0vTjTfe6FufmZmpO++8U4MHD1ZKSoreffddTZkyRX369NEDDzxQ77kCAFqnuLg49/bt2+OOHDliJGnx4sWnJiQkHK+53RNPPLHv+uuv933Oa9OmTe3/85//dKq5HerndrvD7ma7tVZut1uRkZH605/+pGHDhjWq/SOPPKJLL7203m3ee+89SZ4OmenTp0uS4uPjNX/+fPXo0aPWNi6XSzfffLO+973vNSqeuvbV3Ci0Wx4KbVT3gx/01JAhfYP6+MEPejbk0DNmzND8+fNVXl6uDz/8UEOHDvW99qtf/UqXXHKJ3nnnHa1Zs0azZ8/W8ePH9cgjj2j69OnVLqSffPKJXnnlFb3zzjv65S9/qePHjysvL0//+Mc/tHHjRr399tv661//qvfee095eXmaP3++r2f83Xff9R3zxhtv1FNPPaW8vDw98cQT+tGPfnRCzL/85S81YsQIffTRR5o8ebK+/PJLSdLHH3+snJwcvfnmm3r//fcVGRmpF198sdbzvvrqqzVgwAD17dtXv/jFL3yF9tGjRzV06FB98MEHOu2002rd3/vvv6+9e/dq69at2rJli77//e+fNPZ9+/bpjTfe0PLly3Xffff51r/33nv6wx/+oG3btunzzz/Xm2++KUm69dZb9e677/pGHCxfvtzXpl27dtq0aZNuvvlmTZw4UX/+85+1detWzZkzR8XFxQ35sQMAWplLL730UG5ubrwkzZs3r8vUqVO/qXqtpKQkYtq0ab379++fkpKSkvrvf/87vry83Pz617/usWzZss7nnXde6l//+tfOkvTxxx/HDRkypO+ZZ57Z/9FHHz29ah8PP/xwQp8+ffr16dOn3yOPPOJbf++993bv3bt32qBBg/p++umnMVXrP/roo5iLLrqoT79+/VIGDRrU97333outGfNXX30VeeGFF/Y555xz+k2fPr2X/43xp59+ukv//v1TzjvvvNSZM2f2OlmR9Je//KXLueeem9qnT59+t9xyi2/4Xfv27b9z2223ndG3b9/U9PT083bv3h1VFV96evp55557burtt9/eo3379t+pavOLX/wiIS0tLeXcc89NvfPOO3tI0vbt29v17t07bfLkyb3PPffcfp999lk7/+Pfc889iWlpaSl9+vTpl52d3cvtdkuq3uu+b9++qDPOOKN/zdjfeecdffe739UVV1yhvn376uabb1ZV+yr5+flKS0vzLT/xxBN6+OGHJUlPPvmkUlNTNWDAAM2YMeOE92bOnDmaOHGiMjMz1adPH/3yl7/07bNv37763ve+p7S0NO3evVuPP/64MjIyNGDAAD300EOSPLnPFVdcofT0dKWlpfk6Ufxdd911vo6C3r1766GHHtL555+v/v3765NPPlFRUZFmzZqld999VwMHDtRnn32mvLw8XXzxxRo0aJAuv/xy7du3T5Kn0+COO+7Q4MGD9cc//rHaRwjr67Tw76jo0KGDJM/H8C666CJNmDBBqampqqys1OzZs33n+Je//MW33cUXX6yJEyfq7LPP1n333acXX3xRQ4YMUf/+/fXZZ59Jkvbv36+pU6cqIyNDGRkZvrzs4Ycf1g9+8IMTOpXuu+8+ffbZZxo4cKBmz559wvuG5sfXe6HFGDBggPLz8zVv3jyNGzeu2murVq3S0qVLfRe/8vJyX1Fb0xVXXKGYmBjFxMTo9NNPV2Fhod544w1NnjxZp5xyiiRpypQpWr9+vdxutyZPnqz27T2jwSZMmCDJ07u7YcMGTZs2zbffY8eOnXCsdevWadGiRb7jVn12/LXXXlNeXp4yMjIkSWVlZTr99NNPaC95ho4PHjxY+/fv1/DhwzVmzBj16tVLkZGRmjp1ar37u/LKK/X555/rtttu0xVXXKHRo0efNPZJkyYpIiJCqampKiws9K0fMmSIzjzzTEnSwIEDlZ+frxEjRmjNmjX67W9/q9LSUn3zzTfq16+frrzyymrvV//+/dWvXz9VfTfn2Wefrd27d+u0006r9ZwBAE309g966uDW4A5ljk8r1QXP7z7ZZtdcc803Dz30UOL06dMPfvzxx+1/+MMfFm/YsKGDJP385z9PHDlyZElubm7+119/HTl48OCUCRMmlPzsZz8r2LRp0yn/+te/vpSku+66K27nzp2xGzZs2H7w4MHIlJSUtNmzZ+9/55134ubOnXtaXl7ex9ZaDRo0KGXUqFGH3W63Wbx4cZctW7ZsO378uAYOHJj6ne98p1SSrr/++l7PPffcF/379z/2v//975Rbbrkl6e23397hH/N9993XY9iwYUeeeOKJffPnz+/00ksvdZWkzZs3xy5YsKDLpk2bPomJibGzZs1KevbZZ0+79dZba71bnJ+fH/3www+fkZeX93G3bt1cF1100bkvvPBC/DXXXHOwrKwsYtiwYUeeeuqpvTfffPOZTz31VLff/va3+2699daeP/rRj4puuummb3772992q9rXokWLTt25c2fshx9++LG1Vpdeeuk5//3vfzucffbZFV9++WXM3//+912jRo3KrxnD7Nmzi5544ol9kjRp0qSz5s+f32nmzJmHGvpjfuedd7Rt2zb16tVLY8aM0aJFi3TVVVc1qO1jjz2mXbt2KSYmRgcPHqxz/1u3blX79u2VkZGhK664Ql27dtWnn36qf/7zn7rgggu0atUq7dixQ++8847cbreuvPJKvf766/r666/Vo0cP3wjHQ4dOflpdu3bV5s2b9fTTT+uJJ57Q3/72N/3tb3/TE088oeXLl+v48eO65pprtGTJEnXr1k05OTm6//779fzzz0uSKioqtGnTJkny3VCQPJ0Wzz77rPr06aONGzfqRz/6kf73v//VG8vmzZu1detWnXXWWXruuefUqVMnvfvuuzp27JguvPBCjR49WpL0wQcf6OOPP1aXLl109tln6/rrr9c777yjP/7xj3rqqaf0hz/8QT/5yU905513asSIEfryyy91+eWX6+OPP5bk6VRas2aNDh8+rL59++qWW27RY489pq1bt+r9998/6XuG5kGhjeqeP/kf2JBwu6UPPtCEIUN0z513au3f/qbinTulkhLpgw9kS0u18Ne/Vt/evb9tU1GhjV9+KX39tfTBB1J6uiQpJsZ3k1uRkZEBDd9xu92Kj48P+GJlrdW1116rX//61w1u061bN51//vnauHGjevXqpdjYWF/vdn37++CDD/TKK6/o2Wef1UsvvaQ//OEP9cbu//7439Gv7X0rLy/Xj370I23atEk9e/bUww8/XO3rIaraREREVGsfERHhyLApAEDoDR06tGzPnj0xf/3rX7tceuml1SqhtWvXnvrKK6/EP/nkk90l6dixY2bnzp3tatvP6NGjD8bFxdm4uDhXly5dju/Zsydq7dq1HcaNG3fw1FNPdUvSFVdccWDNmjUd3W63xo0bd7Bjx47uqraSdOjQoYj33nuvw7Rp05Kr9ltRUXHCFMtvv/12x0WLFu2UpBkzZhy66aabKiVp5cqVHbdu3do+PT09RZLKy8sjTj/99Dr/gL3xxhunXHDBBYd79OjhkqTp06d/8/rrr3e45pprDkZHR9sZM2YckqRBgwYdXb169amS9N5773VYtWrVTkm6/vrrix9++OEzvcc+dd26daempqamSlJpaWnEJ598Env22WdXJCYmVowaNepobTH897//7fj73/++e3l5ecTBgwejUlNTyyQ1uNAeMmSIzj77bElSdna23li9WFeN6iO5K6SDW6WjpVJluXTgA0+D0gKprFQ68IEGpJylq6eN16QrRmrSuJGS9d7r6Zzu2/9ll13mu9E+ZcoUvfHGG5o0aZJ69eqlCy64QJKnA2XDhg0aOXKkJM+w5127dmn48OG6++67de+992r8+PG66KKLTno+U6ZMkfc993V++Nu+fbu2bt2qyy67TJJn3puqjgFJvhGR/hra4VLTkCFDfN9VvWrVKn344Ye+3u9Dhw7p008/Vbt27ZSRkeGLITk52VeA9+/fX2vWrJEkrV69Wtu2bfPtu6SkREeOHJFUe6cSWh4KbbQcx4/rB1dcofj27dW/d2+tzcuTrJWOH9flQ4fqqRdf1FOzZ8sYo/e2b9d3+vZVx9hYHfZedOpz0UUX6brrrtN9990na60WL16sF154QdZaXXfddfrZz34ml8ulZcuW6aabbtKpp56qs846S7m5uZo2bZqstfrwww+Vnp5ebb/f/e53NXfuXD3wwAP673//6/vasVGjRmnixIm68847dfrpp+ubb77R4cOH1atXrzpjLC0t1Xvvvaef/vSnJ7xW1/5OOeUUtWvXTlOnTlXfvn01a9asBsfeEFVFddeuXXXkyBEtWLCgwXe9AQAh1ICe51AaM2bMwYceeqjnqlWrthcVFfnySWutFixYsDM9Pb1aVfLGG2+cUnMfMTExvru93hu8jf4OosrKSnXs2NH1ySefbDv51iey1ppp06YV//nPf94bSHt/UVFRNiIiour5Sc/HWqs77rhj3+zZs6vNQLZ9+/Z27du3d9fWprS01Nx99929Nm7cuO2cc845ftddd/UoLy+PqDp+1ee5S0tL6zx2za96MsZIbu/H7N0uRUV4PkNdta68vEyynuX/zPu91m14T8teWa9f/e6v2rJ+nqLaxZ18/5JvVGHVud922226+eabT4hv8+bNWrFihR544AGNGjVKDz74YF2nIunbm/51da5Ya9WvX786J13zj6tKfR0uUVFRvuH2bre72iS2Nc/xqaee0uWXX16t/dq1a0/onPDvuKg6B7fbrbfffluxsSd8EiIonUoIPT6jjRblzDPP1O3XXCNFR0uRkZIxUnS0fnHzzTrudmvAzJnqN326fvGXv0jR0Rp5wQXa9vnnGpiVVevneKqcf/75uu666zRkyBANHTpU119/vb7zne/o/PPP1/Tp05Wenq6xY8f6hmZLniHdf//735Wenq5+/fppyZIlJ+z3oYce0rp169SvXz8tWrRISUlJkqTU1FQ9+uijGj16tAYMGKDLLrvM93mgmq6++moNHDhQgwYN0nXXXadBgwadsE1d+9u7d68yMzM1cOBAzZo1y9fj3ZDYGyI+Pl433HCD0tLSdPnll1d7fwAAbdctt9zy9T333FMwZMiQMv/1I0eOLPnd736XUFWIvPnmm3GSdOqpp1YeOXLkpHnnyJEjj6xYsSL+8OHDESUlJRErVqzoPHLkyMOXXHLJkRUrVsQfOXLEHDhwIOLVV1+Nl6QuXbq4zzzzzIrnn3++s+QpTt566624mvu94IILDs+ZM+c0SXrppZdOLSkpiZSkMWPGlCxfvrzz3r17oySpsLAwcseOHbX2wEvSRRdddHTjxo0d9+3bF+VyuZSbm9slMzOz3jv+AwcOPDJnzpzOkvT88893qVo/duzYkhdeeKHroUOHIiRp165d0VVx1KW0tDRCkrp37+46dOhQxLJlyzpXvdazZ89j77zzzimS9OKLL3auax/vvPOOdu3aJbfbrZycHI244DvfvhgRpYSEBBV9fUDFB4/q2HGr5avelEyE3IrU7n3FGnnxMP3ml3fq0OGjOnK07IT9v/rqq/rmm29UVlaml19+WRdeeOEJ21x++eX6xz/+4euh3bNnj4qKilRQUKD27dtr1qxZmj17tjZv3lzf29Egffv21f79+32F9vHjx/XRRx/V28a/00LyFM0ffODp4e/du7fy8vIkSUuXLtXx4yfMBeg7x2eeecb3+o4dO3T0aK2DFGo1evRoPfXUU77lk42y7Nixow4fPtzg/SP06NFGi3DkrbekGheqzIwMZXoLu7jYWP3lF784oV2XTp307r/+5SnMa+mx3bp1q+/5XXfdpbvuuuuEbe6//37df//9J6w/66yztHLlynrjPu2007Rq1apaX5s+fXqtw5H8rV27ts7XjtToqa9rf7X9Eaor9jlz5tR6jMzMTGVmZvrW/+lPf/I9f/TRR/Xoo4/WG3vN9vWdFwCg9UtOTj7+wAMPFNVc/9hjjxXceOONSeedd16q2+02PXv2PLZmzZqdY8eOPfzEE08knnfeeal333137XeeJY0YMaJ05syZxeeff36KJF1zzTX7L7zwwjJJmjx58jdpaWn9TjvttOMDBgzwVSzz5s37/IYbbuj1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paenKy0tTTk5OScco7YYHn74YT3xxBO+bdLS0pSfn6/8/Hydd955uvrqq5WSkqKrrrpKpaWlkqS8vDxdfPHFGjRokC6//HLt2+f5e5uZmak77rhDgwcP1h//+Mdq+/7ss880ZswYDRo0SBdddJE++eQTSSfeoe3QoYMkae3atbrooos0YcIEpaamqrKyUrNnz/ad91/+8hffdhdffLEmTpyos88+W/fdd59efPFFDRkyRP3799dnn30mSdq/f7+mTp2qjIwMZWRk6M033/Sd/w9+8ANlZmbq7LPP1pNPPilJuu+++/TZZ59p4MCBmj179gnvJQAA4ag15qrFxcUaPXq0+vXrp+uvv17+ueq///1vDRkyRAMHDtRNN92kysrKes9/3rx56t+/v9LS0nTvvff61nfo0EH333+/0tPTdcEFF6iwsFCSJ7+54IIL1L9/fz3wwAO+PEZSrflabXmdv0ceeUQZGRlKS0vTjTfeqNq+vriuPOyvf/2rMjIylJ6erqlTp6q0tFQbNmzQ0qVLNXv2bA0cOFCfffaZ3n//fV1wwQUaMGCAJk+erAMHDkiqnpP17t1b9957r84//3zl5uZq1apVGjZsmM4//3xNmzZNR44c8W33s5/9TAMHDtTgwYO1efNmXX755UpOTtazzz570vciJSVFN9xwg/r166fRo0errKxMCxYs0KZNm3T11Vdr4MCBKisrq/dnhmZQdVeotsf777+fb63dZK3d9PL3Xy58LuO5w8F8vPz9lwur9l/XIy4urvLtt9/+6PLLL//m6NGjeX379i1dtmzZ9szMzIPW2k0//vGP9/35z3/+3Fq7af/+/e/16tWr/NChQ5v/+Mc/7rrmmmuKqvZz5513FgwcOPBIaWlpXkFBwfudOnVylZeX561bt25bnz59Sg8dOrT54MGDm5OTk8veeOONj6rWl5SUbC4uLt7cs2fP8l/84he7rbWbLrjggpIPP/xwi7V202uvvfbx0KFDS2rGfe211xbefffde621m+bNm/epJFtQUPB+Xl7e1pEjRx4sLy/Ps9Zuuvrqq4ueeuqpXTXbZ2RkHH799de37dq164Pu3bsf27t37/sVFRWbhg4dWvKvf/1rp7V2kyT74osvfmqt3XTTTTd9NXv27L3W2k2ZmZkHn3322c+ttZt+85vffBEXF1dprd20cOHCHTNmzNhfWVm5yeVybcrMzDy4YsWKTz755JMPjTF29erVH9f2M/jqq6/eq3o+ceLE4qpjVsVord1UUFDwfo8ePY7VbLts2bLt7dq1c3/00UcfHj9+fNOwYcMO/f73v7fWWturVy+7f/9+u2vXLtuvXz9b5fHHH7cPPfSQtdbaxMREW15ebq219sCBA7amf/zjH7Z79+7266+/tqWlpbZfv3723Xfftbt27bLGGPvWW29Za6195ZVX7PXXX2/dbrd1uVx27Nixdu3atXbBggX2+uuv9+3v4MGDJxyjthgeeugh+/jjj/u26devn921a5fdtWuXlWTfeOMNa6213//+9+3jjz9uKyoq7LBhw2xRUZG11tr58+fb73//+9Zaay+++GJ7yy23+Pblv+9LLrnE7tixw1pr7dtvv21HjhxprbX22muvtbm5ub42p5xyirXW2jVr1tj27dvbzz//3Fpr7V/+8hf7//7f/7PWWlteXm4HDRpkP//8c7tmzRrbqVMnW1BQYMvLy22PHj3sgw8+aK219g9/+IP9yU9+Yq21Njs7265fv95aa+0XX3xhzzvvPF+Mw4YNs+Xl5Xb//v22S5cutqKi4oSfZU3btm07YZ2kTbae6xAPHjx48OBR18M/V/3+921hRoY9HMzH979vwypX/eijj2yV2267zf7yl7+01lq7fPlyK8nu37/fbtu2zY4fP95WVFRYa6295ZZb7D//+U9b08UXX2zfffddu3fvXtuzZ09bVFRkjx8/bkeOHGkXL15srbVWkl26dKm11trZs2f7cpIrrrjCzp0711pr7TPPPOPLY1555RV7ww03WLfbbSsrK+0VV1xhX3/99RPyupqKi4t9z2fNmuU7ZlW+VF8e9vXXX/va3n///fbJJ5+s1rZK//797dq1a6211v7iF7/w5Ur+2/Xq1cv+5je/sdZau3//fnvRRRfZI0eOWGutfeyxx3zvd69evezTTz9trbX2jjvusP3797clJSW2qKjInn766Sd9LyIjI+17771nrbV22rRp9oUXXqj2M6kNOVjzP1r80HFJGjp0aNmePXti/vrXv3a59NJLqw2vWbt27amvvPJK/JNPPtldko4dO2Z27tzZrrb9jB49+mBcXJyNi4tzdenS5fiePXui1q5d22HcuHEHTz31VLckXXHFFQfWrFnT0e12a9y4cQc7duzormorSYcOHYp47733OkybNi25ar8VFRUnTOX39ttvd1y0aNFOSZoxY8ahm266qVKSVq5c2XHr1q3t09PTUySpvLw84vTTT6+zS/uNN9445YILLjjco0cPlyRNnz79m9dff73DNddcczA6OtrOmDHjkCQNGjTo6OrVq0+VpPfee6/DqlWrdkrS9ddfX/zwww+f6T32qevWrTs11TsGprS0NOKTTz6JPfvssysSExMrRo0adbS2GP773/92/P3vf9+9vLw84uDBg1Gpqallkho8zKl///5HU1NTKyQpKyvrm7y8vFMb2nbAgAG6+uqrNWnSJE2aNKnWbS677DKddtppkqQpU6bojTfe0KRJk9SrVy9dcMEFkqRVq1Zpw4YNGjlypCTPEOddu3Zp+PDhuvvuu3Xvvfdq/PjxuuiiiwKKwV/Pnj114YUXSpJmzZqlJ598UmPGjNHWrVt12WWXSfIMJ0pMTPS1mT59+gn7OXLkiDZs2KBp06b51h07duykxx8yZIjvexJXrVqlDz/80Hen9dChQ/r000/Vrl07ZWRk+GJITk7W6NGjJUn9+/fXmjVrJEmrV6+u9vmkkpIS393YK664QjExMYqJidHpp5/uu0sNAEBb0xpz1XXr1mnRokXy7lOdO3eWJL322mvKy8tTRkaGJKmsrEynn356zeY+7777rjIzM9WtWzdJ0tVXX61169Zp0qRJateuncaPHy/JM1fOq6++Kkl666239PLLL0uSZs6cqXvuuUeSJ29ZtWqVvvMdz2DMI0eO6NNPP1VSUlK1vK6mNWvW6Le//a1KS0v1zTffqF+/frryyit9r2/fvr3OPGzr1q164IEHdPDgQR05ckSXX375Cfs/dOiQDh48qIsvvliSdO2111bLz/xV5XRvv/22tm3b5ssJKyoqNGzYMN92EyZMkOTJu44cOaKOHTuqY8eOiomJ0cGDB+t9L8466ywNHDjQ977m5+fXGguc1eBCe+LzE3effKvQGTNmzMGHHnqo56pVq7YXFRX54rbWasGCBTvT09OrVSBvvPHGKTX3ERMT4xtHEhkZKZfL1ei57isrK9WxY0fXJ598cvLZEWphrTXTpk0r/vOf/7w3kPb+oqKibNXnU6Kiok56PtZa3XHHHftmz55dbaaL7du3t2vfvr27tjalpaXm7rvv7rVx48Zt55xzzvG77rqrR3l5eUTV8auGEpWWltZ57JpfKVBzOSoqShVlFfrqg68kSfvz96vSVamvPvhKf////q63N7+tVa+s0i8f/KXW5K6p9rnjQ18eUvmBcn31wVfqnt692v5POeXbXwFrrW677bZaP/+8efNmrVixQg888IBGjRqlBx98sNrr//nPf7Ru3TotW7ZMv/rVr7RlyxZFRUXJfwi8/3cT1na+1lr169evzonY/GOt4na7FR8fr/fff/+E1/yP73a7VVFRUeu+rLV66qmnTvijsXbtWsXE+EaYKSIiwrccERGhqo8zuN1uvf3224qNPWHEWbX23v9PtZ4bAADN4fnnRa6qxueqH3xQ1U7aulXas8dq7Nhrdfvtv651uypHjkg7dkhFRXXvOzo62pcXNSRXsNbqZz/7mW666aZq6/Pz82vNlSRPDvajH/1ImzZtUs+ePfXwww+f8J3R9eVh1113nV5++WWlp6drzpw5Wrt2bb0xnkxVnNZaXXbZZZo3b16t2/nnXTVzMpfLVe97UTMHY5h4y9QqPqMtSbfccsvX99xzT8GQIUOq/SaNHDmy5He/+11CVdHx5ptvxknSqaeeWnnkyJGTnt/IkSOPrFixIv7w4cMRJSUlEStWrOg8cuTIw5dccsmRFStWxB85csQcOHAg4tVXX42XpC5durjPPPPMiueff76z5ClE3nrrrbia+73gggsOz5kz5zRJeumll04tKSmJlKQxY8aULF++vPPevXujJKmwsDByx44dtd7VlKSLLrro6MaNGzvu27cvyuVyKTc3t0tmZuaR+s5p4MCBR+bMmdNZkp5//vkuVevHjh1b8sILL3Q9dOhQhCTt2rUruiqOupSWlkZIUvfu3V2HDh2KWLZsWeeq13r27HnsnXfeOUWSXnzxxc517WPLli2nfPLJJ+0qKyu1YMGCLueff3611xMSEvT1N1/r6/1fq+xomV59/VVZt5XrmEt79uzRsIHD9PMf/1yHDx/W4ZLDch93f/uodGvd2+t04NABlZWV6eWXX/bdOfR3+eWX6x//+IevN3bPnj0qKipSQUGB2rdvr1mzZmn27NnavHlztXZut1u7d+/WyJEj9Zvf/EaHDh3SkSNH1Lt3b9+2mzdv1q5du3xtvvzyS9+FfO7cuRoxYoT69u2r/fv3+9YfP35cH330UX1vvU499VSdddZZys3NleS5YH/g/SvXu3dv5eXlSZKWLl2q48dPmHPFd97PPPOM7/UdO3bo6NFaBy7UavTo0Xrqqad8y7UV/f46duyow4cPN3j/AACEi9aWq373u9/V3LlzJUlr1/5XJSUH5HJJ558/Sq++ukCFhUU6flz6+utv9OWXX+j4cVV7WCu5XFJa2hC9/vrr+vrrr1VZWal58+b5en7rcsEFF2jhwoWSVG1ysssvv1zPP/+8L1/bu3eviuqr5PVtZ0fXrl115MiRanPYVKkvDzt8+LASExN1/Phxvfjii742/jlNp06d1LlzZ61fv16S9MILLzToHN98803t3LlTkmdeoB07dtTbxl8g7wV5WMvSKoaOS1JycvLxBx544ITfrscee6zgxhtvTDrvvPNS3W636dmz57E1a9bsHDt27OEnnngi8bzzzku9++6799W2T0kaMWJE6cyZM4vPP//8FEm65ppr9l944YVlkjR58uRv0tLS+p122mnHBwwY4KtO5s2b9/kNN9zQ6ze/+U2iy+UykydP/mbYsGHVLqqPPfZYwdSpU88+55xz+g0ePPhIYmJihSQNGjSo/IEHHtg7atSoc91ut6Kjo+2TTz755bnnnluhWvTq1ev4Qw89tPfiiy8+11prLr300oOzZs06WN979dRTT+2++uqrz3r88ccTL7nkkpIOHTpUStKUKVNKPvroo9iMjIzzJKl9+/buF198cVdUVNSJM0Z4de3atfLqq6/en5KS0q9bt26u9PR03/tw3333FU6fPv3sOXPmdLvsssvqjCktLe3ozTffnJSfnx87fPjwkksvvbTa69HR0brrxrs0/rrx6p7QXX3O6iMTYWQjrG576DYdPnJY1lr9cOYP1blL9Xo+IjJCA/sN1PV3X6+ig0WaNWuWBg8efMIQmtGjR+vjjz/2Ddnp0KGD/v3vf2vnzp2aPXu2IiIiFB0drWeeeaZau8rKSs2aNUuHDh2StVa333674uPjNXXqVP3rX/9Sv379NHToUJ177rm+Nn379tWf//xn/eAHP1BqaqpuueUWtWvXTgsWLNDtt9+uQ4cOyeVy6Y477lC/fv3qetskSS+++KJuueUWPfroozp+/LhmzJih9PR03XDDDZo4caLS09M1ZsyYOu/yXn/99crPz9f5558va626devmG6rVEE8++aR+/OMfa8CAAXK5XPrud79bbZKOmk477TRdeOGFSktL09ixY/X44483+FgAALRmrS1Xfeihh5Sdna1//KOf+vcfrsTEJEVFSX37purWWx/VbbeNlrVuRUVF62c/+7OSknpVi6tqAF+3bol67LHHNHLkSFlrdcUVV2jixIn1vld/+MMfNGvWLP3qV7/SmDFj1KmT51vO6srX6pu9Oz4+XjfccIPS0tLUvXt335B3f/XlYf/v//0/DR06VN26ddPQoUN9heqMGTN0ww036Mknn9SCBQv0z3/+UzfffLNKS0t19tln6x//+Ee959itWzfNmTNH2dnZvo/+Pfroo9VyxvoE8l5cd911uvnmmxUXF6e33npLcXEn3F9BMzKez8HX7oMPPshPT09vvi86RlAcPnw44pRTTnFHREToueee65yTk9Pltdde+8yJWJYvX97xd7/7XcKaNWt2Vq3btm3boJpflfDVB1/JfdytiOjGDbLIWZKj97e+r1/f/2vf0HEn5efna/z48dq6davTobRIH3/8sVJSUqqtM8bkWWsHOxQSAKAVI1dtnNpysA8+8PRQR0c3fn9V7dLTG9eutLRUcXFxMsZo/vz5mjdvnpYsWdL4ANBg5GDNr9X0aKPh3nzzzfY/+clPkqy1OvXUUyvnzJmT73RMAAAAgOT5qq1bb71V1lrFx8fr+eefdzokIOgotMPQmDFjjmzfvj2gydqCbfz48YfHjx8fsg+LTJ84XdPG1T7roxN69+5NbzYAAEA9LrroIt+8M0C4Otk4Xbfb7W70bIcAUFN9H1MBACBA5KrASZCDOeNkhfbW/fv3d+ICBqAprLUqLi6u9WvCAABoAnJVoB7kYM6pd+i4y+W6/quvvvrbV199laZW9FVgaNmKi4tP+K7pkqISuSvdiohs/K9ZVbsDHx8IVogIgdjYWJ155plOhwEACCPkqo1TWw5WVOT5Du16JrOuU1W7jz8OUoAICXIwZ9Q76zgQCoMHD7abNm2qtu53PX6no4VHdUpC7V9TVZ+qdncX3B2sENGMmPESAIDmUVsO1qOHVFgoJSQ0fn9V7QoKghQgmhU5WGhx5w8AAAAAgCCi0AYAAAAAIIgotNsoY8zzxpgiY8xWv3VdjDGvGmM+9f7b2bveGGOeNMbsNMZ8aIw536/Ntd7tPzXGXOvEuQAAALQW5GBA20Ch3XbNkTSmxrr7JL1mre0j6TXvsiSNldTH+7hR0jOS54+CpIckDZU0RNJDVX8YEH4++OADud1up8MAAKC1myNyMDTQ4cOHtXPnTqfDQAAotNsoa+06Sd/UWD1R0j+9z/8paZLf+n9Zj7clxRtjEiVdLulVa+031toDkl7ViX84EAa+/PJLDRw4UGeddZYeeOABvo8RAIAAkYOhMRYsWKA+ffpoyJAhysnJcTocNEK9X++FNifBWrvP+/wrSVXzT54habffdnu86+paH7CjhUcb3ca6rY4WHtXvevwu4OMyY3n95s+fL8lTcL/77rsnfDUIAABoEsdysMJCye2W9u07+bZ1tUfozJ07V5L07rvvavfu3SfZGi0JhTZqZa21xpigdVsaY26UZ8iTkpKSat0mkK/2kjzFeVWxHYhAj9uWzPv/27vj2KjT/M7z7wdXbMDIGYaEujGeWVsawmxktIm7NQeKQFnoiwmHjKANNpyS2dyMRidl93KXljaztzva1a3utNFdXzarnEZqKXPKSmnAbUBu2n3QWUgQJ9GkyQXFN2b3ts0KzzS4xp3EfXaN24Drd3+4urqg6W5cdvmp+tX7JY3691TVU/UpzfRvfl8/399Tp06Vjk+ePBkxiSRJ6RbjGky1aWpqiitXrgAQQmBwcDByIi2HhbbK5UIIX0qS5H6xLenHxcffA75c9rqO4mPvAb/8xON/9rQ3TpLkFeAVWPoNxyefX8mK8kp/g1uf7fbt29y6dQuAlpYWjhw5EjeQJEnpE+0aLJtd+e9oqzqGhoZK++Ps2bOHjo6OyIm0HN6jrXKvAx/tWvkNYKTs8V8v7ny5C/ig2N50CfiVEMLm4gYcv1J8TClSvpp96NAh2traIqaRJCmVvAbTJ9hRWN9c0W5QIYRTLP0l9GdCCD9iaefKfwUMhRC+CdwFjhdf/iZwEHgX+AnwGwBJkvxNCOFfAu8UX/c/Jkny5OYeqmNJkpTuDQJP8pIkrZTXYHoWd+7c4e233wYgk8nQ398fOZGWy0K7QSVJcuJTntr/lNcmwG9+yvt8H/j+KkZTDXnnnXeYmJgAoK2tjYMHD0ZOJElSffMaTM+ifDW7t7eXLVu2REyjStg6LulTlZ/kjx49yvr16yOmkSRJSj87CtPBQlvSUy0uLpZ+1gvgxIlP+wO8JEmSVsvY2Bjj4+MAbNiwgb6+vsiJVAkLbUlPdfXqVaampgDYunUr+/bti5xIkiQp/co7Cg8fPsymTZsiplGlLLQlPVV5y9LAwACZjFs6SJIkVVOhUHC38ZSw0Jb0CQsLCwwPD5fGto1LkiRV3/Xr17l79y4Amzdvpre3N3IiVcpCW9InXLx4kQ8++ACAzs5Odu3aFTmRJElS+pWvZvf399Pc3BwxjVbCQlvSJ5S3jZ84cYIQQsQ0kiRJ6ffo0SOGhoZKYzsK65uFtqTHzM7OcuHChdLYe4MkSZKq7/Lly0xPTwPQ3t7O3r17IyfSSlhoS3rMyMgI8/PzAOzcuZPu7u7IiSRJktKvvKNwcHCQpqamiGm0Um4jrLqXz+VJCglz9+cqnq+PPdk2LkmS0i+XW/6cQmFpXnt75Z97717lc9Nkfn6ec+fOlcZeg9U/C21JJdPT07z11lul8eDgYMQ0kiRpLWSzlc3L5T4uttfyc9NodHSUubmlRaPt27fz3HPPRU6klbLQVt1rzbaSz+VpzbYue26l89JqeHiYxcVFAHbv3k1XV1fkRJIkqZpWsqLc3r5UZFdSMFdanKeVG9Gmj/doSyop/0kJN0GTJEmqvpmZGd58883S2LbxdLDQlgTA5OQk165dA6CpqYljx45FTiRJkpR+58+fZ2FhAYCenh6+9rWvRU6k1WChLQmA06dPl473799P1hunJEmSqs6NaNPJQlsSYNu4JEnSWpuamuLKlSsAhBDciDZFLLQlcfv2bW7dugVAS0sLR44ciRtIkiSpAQwNDVEoFADYu3cvHR0dkRNptVhoS3psNfvQoUO0tbVFTCNJktQYyq/BbBtPFwttqcElSfLYvUG2jUuSJFXfnTt3ePvttwHIZDL09/dHTqTVZKEtNbh33nmHiYkJANra2jh48GDkRJIkSelXvprd29vLli1bIqbRarPQlhpc+Un+6NGjrF+/PmIaSZKk9LOjMP0stKUGtri4+NjPenlvkCRJUvWNjY0xPj4OwMaNG+nr64ucSKvNQltqYFevXmVqagqArVu3sm/fvsiJJEmS0q+8o7Cvr49NmzZFTKNqsNCWGlh5y9LAwACZTCZiGkmSpPQrFAqPFdq2jaeTV9VKjXwuv+w5SSEhn8vzcvvLFX/uS/deqnhuTAsLCwwPD5fGto1LkqTlyOWgUID79yuf34iuX7/O3bt3Adi8eTO9vb2RE6kaLLSVCq3Z1orm5XP5UrG9lp9bCy5evMgHH3wAQGdnJ7t27YqcSJIkKf3KV7P7+/tpbm6OmEbVYqGtureSFeWX218mn8tXVDBXWpzXivK28RMnThBCiJhGkiTVm2x2aVU6m13+3Ern1btHjx4xNDRUGts2nl7eoy01oNnZWS5cuFAae5KXJEmqvsuXLzM9PQ1Ae3s7e/bsiZxI1WKhLTWgkZER5ufnAdi5cyfd3d2RE0mSJKVfeUfh4OAgTU1NEdOomiy0pQb0ZNu4JEmSqmt+fp5z586Vxl6DpZuFttRgpqeneeutt0rjwcHBiGkkSZIaw+joKHNzcwBs376d5557LnIiVZOFttRghoeHWVxcBGD37t10dXVFTiRJkpR+5R2FJ0+edCPalLPQlhpM+U9KuAmaJElS9c3MzPDmm2+WxraNp5+FttRAJicnuXbtGgBNTU0cO3YsciJJkqT0O3/+PAsLCwD09PSwY8eOyIlUbRbaUgM5ffp06Xj//v1kG/EHLCVJktaYG9E2HgttqYHYNi5JkrS2pqamuHLlCgAhBDeibRAW2lKDuH37Nrdu3QKgpaWFI0eOxA0kSZLUAIaGhigUCgDs3buXjo6OyIm0Fiy0pQZRvpp96NAh2traIqaRJElqDOXXYLaNN45M7ABSTPlcnqSQMHd/ruL59SBJkk/8pIQkSdJK5HJQKMD9+5XPT7s7d+7w9ttvA5DJZOjv74+cSGvFFW2pAbzzzjtMTEwA0NbWxsGDByMnkiRJSr/y1eze3l62bNkSMY3Wkivaamit2VbyuTyt2dZlz610XgzlJ/mjR4+yfv36iGkkSVIaZLNLq9KV/IhJpfPqiR2Fjc0VbSnlFhcXH/tZL+8NkiRJqr6xsTHGx8cB2LhxI319fZETaS1ZaEspd/XqVaampgDYunUr+/bti5xIkiQp/co7Cvv6+ti0aVPENFprFtpSypW3LA0MDJDJeMeIJElSNRUKhccKbdvGG4+FtpRiCwsLnD17tjS2bVySJKn6rl+/zt27dwHYvHkzvb29kRNprVloSyl28eJFZmZmAOjs7GTXrl1xA0mSJDWA8tXs/v5+mpubI6ZRDBbaUoqVt42fOHGCEELENJIkSen36NEjhoaGSmPbxhuThbaUUrOzs1y4cKE09iQvSZJUfZcvX2Z6ehqA9vZ29uzZEzmRYrDQllJqZGSE+fl5AHbu3El3d3fkRJIkSelX3lE4ODhIU1NTxDSKxUJbSqnye4PcBE2SJKn65ufnOXfuXGnsNVjjstCWUmh6eppLly6VxoODgxHTSJIkNYbR0VHm5uYA2L59O88991zkRIrFQlufEEL470MIPwgh/D8hhFMhhPUhhK4Qwo0QwrshhDMhhObia1uK43eLz3dGji9geHiYxcVFAHbv3k1XV1fkRJIk6fN4DVb/ytvGT5486Ua0DcxCW48JIWwD/lvg+SRJuoEmYBD4XeD3kiT5KvC3wDeLU74J/G3x8d8rvk6RlbeNuwmaJEm1z2uw+jczM8Obb75ZGts23tgysQOoJmWADSGEh8BG4D6wD/ioYvsj4F8A3wMOF48BhoE/CCGEJEmStQxcqXwuT1JImLs/V/H8WjM5Ocm1a9cAaGpq4tixY5ETSZKkZ1SX12C53PLnFApL89rbK//ce/cqn1sN58+fZ2FhAYCenh527NgROZFistDWY5IkeS+E8L8Ck8A88BbwF8BMkiSPii/7EbCteLwN+GFx7qMQwgfAFuD98vcNIXwb+DbAV77ylWp/jYZ25syZ0vH+/fvJZrMR00iSpGdRr9dglV5m5HIfF9tr+bnVVN427mq2LLT1mBDCZpb+QtoFzACvAQdW+r5JkrwCvALw/PPP18xqd2u2lXwuT2u2ddlzK51XbU/eGyRJkmpfPV6DrWRFub19qciupGCutDivpqmpKa5cuQJACMGNaOU92vqEF4D/lCTJdJIkD4FzwC8BXwghfPSHmQ7gveLxe8CXAYrP/zTw12sbWR+5ffs2t27dAqClpYUjR47EDSRJkp6V12B1bGhoiEKhAMDevXvp6OiInEixWWjrSZPArhDCxrC0TeJ+YBz4U6C/+JpvACPF49eLY4rPX6mX+7PTqHwTtEOHDtHW1hYxjSRJWgavwepY+TWYbeMCC209IUmSGyxtqPF/A2Ms/W/kFeB3gN8OIbzL0v0/f1ic8ofAluLjvw18Z81DC4AkSWwblySpTnkNVr/u3LnD22+/DUAmk6G/v/9zZqgReI+2PiFJkn8O/PMnHr4DfP0pr/0QcFvrGnDz5k0mJiYAaGtr4+DBg5ETSZKk5fAarD6Vr2b39vayZcuWiGlUK1zRllKifDX76NGjrF+/PmIaSZKk9LOjUJ/GQltKgcXFRU6fPl0ae2+QJElS9Y2NjTE+Pg7Axo0b6evri5xItcJCW0qBq1evMjU1BcDWrVvZt29f5ESSJEnpV76a3dfXx6ZNmyKmUS2x0JZSoPwkPzAwQCbj9guSJEnVVCgUHusotG1c5Sy0pTq3sLDA2bNnS2PbxiVJkqrv+vXr3L17F4DNmzfT29sbOZFqiYW2VOcuXrzIzMwMAJ2dnezatStuIEmSpAZQvtt4f38/zc3NEdOo1lhoS3WuvG38xIkThBAippEkSUq/hw8fMjQ0VBrbNq4nWWhLdWx2dpYLFy6Uxp7kJUmSqu/y5ctMT08D0N7ezp49eyInUq1xxyQJyOfyy56TFBLyuTwvt79c8ee+dO+liucCjIyMMD8/D8DOnTvp7u5e0ftJkiStpVxu+XMKhaV57e2Vf+69e5XPhcfbxgcHB2lqalrZGyp1LLTV8FqzrRXNy+fypWJ7LT+3XPlJ3k3QJElSPclmK5uXy31cbK/l535kfn6ec+fOlcZeg+lpLLTV0Fayovxy+8vkc/mKCuZKi/Ny09PTXLp0qTQeHBxc8XtKkiSthZWsKLe3LxXZlRTMlRbn5UZHR5mbmwNg+/btPPfccyt/U6WO92hLdWp4eJjFxUUAdu/eTVdXV+REkiRJ6Ve+Ee3JkyfdiFZPZaEt1anytnE3QZMkSaq+mZkZRkdHS2PbxvVpLLSlOjQ5Ocm1a9cAaGpq4tixY5ETSZIkpd/58+d58OABAD09PezYsSNyItUqC22pDp05c6Z0vH//frIr3dVDkiRJn6u8bdzVbH0WC22pDj15b5AkSZKqa2pqiitXrgAQQnAjWn0mC22pzty+fZtbt24B0NLSwpEjR+IGkiRJagBDQ0MUCgUA9u7dS0dHR+REqmUW2lKdKd8E7dChQ7S1tUVMI0mS1BhsG9dyWGhLdSRJEtvGJUmS1tidO3e4ceMGAJlMhv7+/siJVOsstKU6cvPmTSYmJgBoa2vj4MGDkRNJkiSlX3lHYW9vL1u2bImYRvXAQluqI+Wr2UePHmX9+vUR00iSJKWfHYWqhIW2VCcWFxc5ffp0aey9QZIkSdU3NjbG+Pg4ABs3bqSvry9yItUDC22pTly9epWpqSkAtm7dyr59+yInkiRJSr/y1ey+vj42bdoUMY3qRSZ2AKle5XN5kkLC3P25iucvR/lJfmBggEzGf30lSVLjyeWgUID79yuf/6wKhcJjHYW2jetZuaIt1YGFhQXOnj1bGts2LkmSVH3Xr1/n7t27AGzevJne3t7IiVQvXBKTKtSabSWfy9OabV323OXOu3jxIjMzMwB0dnaya9euZX+mJElSGmSzS6vS2ezy5y53Xvlu4/39/TQ3Ny//Q9WQXNGW6kB52/iJEycIIURMI0mSlH4PHz5kaGioNLZtXMthoS3VuNnZWS5cuFAae5KXJEmqvsuXLzM9PQ1Ae3s7e/bsiZxI9cRCW6pxIyMjzM/PA7Bz5066u7sjJ5IkSUq/8rbxwcFBmpqaIqZRvbHQlmpc+UneTdAkSZKqb35+nnPnzpXGXoNpuSy0pRo2PT3NpUuXSuPBwcGIaSRJkhrD6Ogoc3NLP+G6fft2nnvuuciJVG8stKUaNjw8zOLiIgC7d++mq6srciJJkqT0K9+I9uTJk25Eq2Wz0JZqWHnbuJugSZIkVd/MzAyjo6OlsW3jqoSFtlSjJicnuXbtGgBNTU0cO3YsciJJkqT0O3/+PA8ePACgp6eHHTt2RE6kemShLdWoM2fOlI73799PNpuNmEaSJKkxlLeNu5qtSlloSzXqyXuDJEmSVF1TU1NcuXIFgBCCG9GqYhbaUg26ffs2t27dAqClpYUjR47EDSRJktQAhoaGKBQKAOzdu5eOjo7IiVSvLLSlGlS+CdqhQ4doa2uLmEaSJKkx2Dau1ZKJHUCqV/lcnqSQMHd/ruL5T5MkiW3jkiRJnyKXg0IB7t+vfP7T3Llzhxs3bgCQyWTo7++vMKHkirZUc27evMnExAQAbW1tHDx4MHIiSZKk9CvvKOzt7WXLli0R06jeuaItVag120o+l6c127rsuZ81r3w1++jRo6xfv77ijJIkSWmTzS6tSlfygyyfNs+OQq02V7SlGrK4uMjp06dLY+8NkiRJqr6xsTHGx8cB2LhxI319fZETqd5ZaEs15OrVq0xNTQGwdetW9u3bFzmRJElS+pWvZvf19bFp06aIaZQGFtpSDSk/yQ8MDJDJeHeHJElSNRUKhcc6Cm0b12qw0JZqxMLCAmfPni2NbRuXJEmqvuvXr3P37l0ANm/eTG9vb+RESgMLbalGXLx4kZmZGQA6OzvZtWtX3ECSJEkNoHy38f7+fpqbmyOmUVpYaEs1orxt/MSJE4QQIqaRJElKv4cPHzI0NFQa2zau1WKhLdWA2dlZLly4UBp7kpckSaq+y5cvMz09DUB7ezt79uyJnEhpYaEt1YCRkRHm5+cB2LlzJ93d3ZETSZIkpV952/jg4CBNTU0R0yhNLLSlGlB+kncTNEmSpOqbn5/n3LlzpbEdhVpNFtpSZNPT01y6dKk0HhwcjJhGkiSpMYyOjjI3NwfA9u3b6enpiZxIaWKhrU8IIXwhhDAcQvj3IYTbIYTdIYQvhhD+JITwH4v/3Fx8bQgh/JsQwrshhL8KIXiGWqbh4WEWFxcB2L17N11dXZETSZKkGLwGW1vlG9GePHnSjWi1qiy09TS/D1xMkuRrwN8DbgPfAS4nSbIduFwcA/wqsL34n28D31v7uPWtvG3cliVJkhqa12BrZGZmhtHR0dLYW/e02jKxA6i2hBB+GtgL/AOAJEkeAA9CCIeBXy6+7I+APwN+BzgM/NskSRLg7eJfYr+UJMn9NY4eTT6XX/acpJCQz+X5Z9l/xrUfXwNgHet4/1++z8v/88vP9B4v3Xtp2Z8rSZJqk9dgy5fLLX9OobA0r7PzPA8ePAAgk+nh7//9Hc/8HvfuLf9z1XgstPWkLmAa+D9CCH8P+Avgt4Bs2Yl7CsgWj7cBPyyb/6PiY4+d5EMI32bpr6185StfqVr4tdaaba1oXj6XJykk/Pn0n5ce66KLde+vI8/nF+6Vfq4kSapZXoMtQzb7+a95mlxuqdj+4IOP28YXF08+c9Fe6eeq8Vho60kZoAf4R0mS3Agh/D4ftygBkCRJEkJIlvOmSZK8ArwC8Pzzzy9rbq1ayYryy+0vk8/l+cG6H8Cjpcee/+nnad34+QV0JSvokiSp5nkN9oxWsqLc3g5TU1MkyZXiI4Gf/dkBnuVXvSpZQVfj8h5tPelHwI+SJLlRHA+zdNLPhRC+BFD854+Lz78HfLlsfkfxMX2O6WSae4+W/p8iQ4ad63dGTiRJkiLyGmzNDAEFAJqb99LU1BE3jlLJQluPSZJkCvhhCOGjG1X2A+PA68A3io99AxgpHr8O/Hpx58tdwAeNdG/QSowlY6Xjv7v+77J+3fqIaSRJUkxeg62dJPm4bXz9ejdBU3XYOq6n+UfAH4cQmoE7wG+w9EeZoRDCN4G7wPHia98EDgLvAj8pvlafI0kSxvi40O5Z7y9ySJIkr8Gq7dGjO8BHTQMZNmzojxlHKWahrU9IkuQW8PxTntr/lNcmwG9WO1Pa/PDhD/kb/gaA9WE9X1v/tciJJElSbF6DVd/8/Mc/q9rScoB167ZETKM0s3VciuAvP/zL0nH3+m5+KvxUxDSSJEnplyQJH374cdv4hg22jat6LLSlNba4uMit+Vul8S9u+MV4YSRJkhrE2NgYjx6NAxDCRlpa+iInUppZaEtr7OrVq8wWZgHYtG4TX23+auREkiRJ6ffqqx+vZre09LFu3aaIaZR2FtrSGis/yf/C+l+gKTzDDzdKkiSpYoVCgdOnT5fGGzacjJhGjcBCW1pDCwsLnD17tjT+hQ2/EC+MJElSg7h+/Tp3794tjjbT0tIbNY/Sz0JbWkMXL15kZmYGgC/wBf7OT/2duIEkSZIawKlTp8pG/Sz9gppUPRba0hoqbxvfyU5CCBHTSJIkpd/Dhw8ZGhoqjUOwbVzVZ6EtrZHZ2VkuXLhQGu8MOyOmkSRJagyXL19menoagHXr2oE9cQOpIWRiB5AaxcjICPPz8wBkybI12crc/bmK3iufy69mNEmSpNQqbxsvFAaBJu7fr+y9crnVyaT0c0VbWiPlJ/nu0B0xiSRJUmOYn5/n3LlzpbFt41orrmhLa2B6eppLly6Vxl//ma8T/jrQmm1d9nvlc/mK5kmSJDWa0dFR5uaWOgi3b9/O7GwPP/4xZLPLf69crrJ5akyuaEtrYHh4mMXFRQB2797NlsyWyIkkSZLSr3wj2pMnT7oRrdaMhba0Bsrbxk+etGVJkiSp2mZmZhgdHS2NT5w4ETGNGo2FtlRlk5OTXLt2DYCmpiaOHTsWOZEkSVL6nT9/ngcPHgDQ09PDjh07IidSI7HQlqrszJkzpeP9+/eT9eYeSZKkqnuybVxaSxbaUpV5kpckSVpbU1NTXLlyBYAQAgMDA5ETqdFYaEtVdPv2bW7dugVAS0sLR44ciRtIkiSpAQwNDVEoFADYu3cvHR0dkROp0VhoS1VUvgnaoUOHaGtri5hGkiSpMZR3FLoJmmKw0JaqJEkS28YlSZLW2J07d7hx4wYAmUyG/v7+yInUiCy0pSq5efMmExMTALS1tXHw4MHIiSRJktKvvKPwwIEDbNmyJWIaNSoLbalKylezjx49yvr16yOmkSRJSr8nOwptG1csFtpSFSwuLnL69OnS2JO8JElS9Y2NjTE+Pg7Axo0b6evri5xIjcpCW6qCq1evMjU1BcDWrVvZt29f5ESSJEnpV76a3dfXx6ZNmyKmUSPLxA4gpVH5SX5gYIBM5vF/1fK5PEkhYe7+XEXvn8/lV5RPkiSpXrW3P/3xJCkwPf1xR+GlSyc/8dpcDgqFpX9K1WShLa2yhYUFzp49WxrbNi5JkrS6nlYoJ8l1kuRucbSZmZleQnj8NYUCrFsH2WzVI6rBWWhLq+zixYvMzMwA0NnZya5duz7xmtZsK/lcntZs67Lfv9J5kiRJafJksfzBB6/yk58sHW/Y0M8XvtD8iTm53NK8e/fWIKAamvdoS6vsyZ0uw5N/SpUkSdKqSpKHfPjha6Xxhg0nI6aRLLSlVTU7O8uFCxdK45MnPclLkiRV28LCZQqFaQDWrWunuXlP5ERqdBba0ioaGRlhfn4egO7ubrq7uyMnkiRJSr8PPzxVOt6wYZAQmiKmkSy0pVV16tTHJ3lXsyVJkqovSeb58MNzpbFt46oFFtrSKpmenubSpUul8eDgYMQ0kiRJjeHDD98gSZZ+MrWpaTuZTE/kRJKFtrRqhoeHWVxcBGD37t10dXVFTiRJkpR+8/PlbeMn3YhWNcFCW1olto1LkiStrUJhhoWF0dJ4w4YTEdNIH7PQllbB5OQk165dA2DdunUcO3YsciJJkqT0+/DD88ADADKZHjKZHXEDSUUW2tIqOHPmTOn4hRdeIJvNRkwjSZLUGObnXy0duwmaaomFtrQKXn3145O8beOSJEnVt7g4xYMHV4qjwIYNA1HzSOUstKUVun37Nrdu3QKgpaWFI0eOxA0kSZLUAD78cAgoANDcvJempo64gaQyFtrSCpVvgnbo0CHa2toippEkSWoM5W3j69e7CZpqSyZ2AKmeJUnyWNv4iRPLO8nnc/nlf2YhIZ/L83L7y8ue+5GX7r1U8VxJkqTYkuQODx/eKI4yzM72MzdX3c9sb1/5e9y7t/L3UH2w0JZW4ObNm0xMTADQ1tbGwYMHn3lua7a1os/M5/KlYrsSlX6uJElSrWhtPVUqrFtaDvDFL25Zk8/N5Sqf6165jcVCW1qB8tXso0ePsmHDhmeat5IV5ZfbXyafy1dUMFdanEuSJNWK995L6O5+lfHxpfH3v3+CtdyLtpKCeSUFuuqT92hLFVpcXOT06dOl8XLbxiVJkrR8Y2NjjBer7I0bN9LX1xc5kfRJFtpSha5evcrU1BQAW7duZd++fZETSZIkpV95R2FfXx+bNm2KmEZ6OgttqULlJ/njx4+TyXgnhiRJUjUVCoXHOgpPrmXPuLQMFtpSBRYWFjh79mxp7ElekiSp+q5fv87du3cB2Lx5M729vZETSU9noS1V4OLFi8zMzADQ2dnJrl274gaSJElqAOUdhf39/TQ3N0dMI306C22pAk/+dnYIIWIaSZKk9Hv48CGvvfZaaWxHoWqZhba0TLOzs1y4cKE09iQvSZJUfZcvX2Z6ehqA9vZ29uzZEzmR9OkstKVlGhkZYX5+HoDu7m66u7sjJ5IkSUq/U6dOlY4HBwdpamqKmEb6bBba0jKVn+RdzZYkSaq++fl5zp07Vxp7DaZaZ6EtLcP09DSXLl0qjQcHByOmkSRJagxvvPEGc3NzAGzfvp2enp7IiaTPZqGtpwohNIUQ/jKE8EZx3BVCuBFCeDeEcCaE0Fx8vKU4frf4fGfU4FU2PDzM4uIiALt376arqytyIkmSlCZegz3dkx2FbkSrWmehrU/zW8DtsvHvAr+XJMlXgb8Fvll8/JvA3xYf/73i61LLtnFJklRlXoM9YWZmhtHR0dL4xIkTEdNIzyYTO4BqTwihA/gvgf8J+O2w9CfDfcBHleUfAf8C+B5wuHgMMAz8QQghJEmSrGXmtTA5Ocm1a9cAWLduHceOHYuSI5/LkxQS5u7PVTxfkiTVHq/Bnu78+fM8ePAAgJ6eHnbs2BElRy4HhQLcv1/5fDUOV7T1NP8a+MdAoTjeAswkSfKoOP4RsK14vA34IUDx+Q+Kr39MCOHbIYSbIYSbH/0sQ705c+ZM6fiFF14gm81GTCNJklLoX+M12Ce8+uqrpWM7ClUvXNHWY0IIh4AfJ0nyFyGEX16t902S5BXgFYDnn3++Lv/SWisn+dZsK/lcntZs67LnVjpPkiRVl9dgTzc1NcWVK1cACCEwMDAQLUs2u7QqXclaS6XzVL8stPWkXwL6QggHgfVAG/D7wBdCCJniX0w7gPeKr38P+DLwoxBCBvhp4K/XPnZ13b59m1u3bgHQ0tLCkSNH4gaSJElp4zXYUwwNDVEoLC3w7927l46OjsiJpGdj67gekyTJP0mSpCNJkk5gELiSJMl/Bfwp0F982TeAkeLx68UxxeevpPHeoPJN0A4dOkRbW1vENJIkKW28Bnu68o5CN0FTPbHQ1rP6HZY25XiXpft//rD4+B8CW4qP/zbwnUj5qiZJEk/ykiQploa9Brtz5w43btwAIJPJ0N/f/zkzpNph67g+VZIkfwb8WfH4DvD1p7zmQyDO9ttr5ObNm0xMTADQ1tbGwYMHIyeSJElp5jXYkvKOwgMHDrBlyyf2epNqliva0ucoX80+evQoGzZsiJhGkiQp/ewoVL2z0JY+w+LiIqdPny6NPclLkiRV39jYGOPj4wBs3LiRvr6+yImk5bHQlj7D1atXmZqaAmDr1q3s27cvciJJkqT0K1/N7uvrY9OmTRHTSMtnoS19hvKT/PHjx8lk3NZAkiSpmgqFwmMdhSdPnoyYRqqMhbb0KRYWFjh79mxp7ElekiSp+q5fv87du3cB2Lx5M729vZETSctnoS19iosXLzIzMwNAZ2cnu3btihtIkiSpAZR3FPb399Pc3BwxjVQZC23pUzy502UIIWIaSZKk9Hv48CGvvfZaaWxHoeqVhbb0FLOzs1y4cKE09iQvSZJUfZcvX2Z6ehqA9vZ29uzZEzmRVBl3dpKeYmRkhPn5eQC6u7vp7u6OnOhj+VyepJAwd3+u4vmSJEm16NSpU6XjwcFBmpqaVvX929srn5vLQaGw9E/p81hoS09RfpJ3NVuSJKn65ufnOXfuXGlcrWuwSgvlQgHWrYNsdnXzKJ0stKUnTE9Pc+nSpdJ4cHAwYppPas22ks/lac22LntupfMkSZKq7Y033mBubqljb/v27fT09FTtsyoplnO5pXn37q1+HqWP92hLTxgeHmZxcRGA3bt309XVFTmRJElS+j3ZUehGtKpnFtrSE2wblyRJWlszMzOMjo6WxidOnIiYRlo5C22pzOTkJNeuXQNg3bp1HDt2LHIiSZKk9Dt//jwPHjwAoKenhx07dkROJK2MhbZU5syZM6XjF154gay7XUiSJFXdq6++Wjq2o1BpYKEtlfEkL0mStLampqa4cuUKACEEBgYGIieSVs5CWyq6ffs2t27dAqClpYUjR47EDSRJktQAhoaGKBQKAOzdu5eOjo7IiaSVs9CWiso3QTt06BBtbW0R00iSJDUGOwqVRhbaEpAkyWMneXe6lCRJqr47d+5w48YNADKZDC+++GLkRNLqsNCWgJs3bzIxMQFAW1sbBw8ejJxIkiQp/co7Cg8cOMCWLVsippFWj4W2xOMtS0ePHmXDhg0R00iSJKWfHYVKMwttNbzFxUVOnz5dGnuSlyRJqr6xsTHGx8cB2LhxI319fZETSavHQlsN7+rVq0xNTQGwdetW9u3bFzmRJElS+pWvZh8+fJhNmzZFTCOtrkzsAFJs5Sf548ePk8nUx78W+Vx+2XOSQkI+l+fl9pcr/tyX7r1U8VxJkiSAQqEQtaMwl1vTj6O9feXvce/eyt9Da6c+KgqpShYWFjh79mxpXC8/KdGaba1oXj6XLxXba/m5kiRJ5a5fv87du3cB2Lx5M729vWv22dnsmn3UY1ZS3MfKrMpZaKuhXbx4kZmZGQA6OzvZtWtX3EDPYCUryi+3v0w+l6+oYK60OJckSXpSeUdhf38/zc3Na/K5sVeFKymY13r1XavDe7TV0J7c6TKEEDGNJElS+j18+JDXXnutNK6XjkJpOSy01bBmZ2e5cOFCaexJXpIkqfouX77M9PQ0ANu2bWPPnj2RE0mrz0JbDWtkZIT5+XkAuru76e7ujpxIkiQp/U6dOlU6HhgYoKmpKWIaqTostNWwyk/yrmZLkiRV3/z8POfOnSuNvQZTWlloqyFNT09z6dKl0nhwcDBiGkmSpMbwxhtvMDc3B8D27dvp6emJnEiqDgttNaTh4WEWFxcB2L17N11dXZETSZIkpd+THYVuRKu0stBWQ7JtXJIkaW3NzMwwOjpaGp84cSJiGqm6LLTVcCYnJ7l27RoA69at49ixY5ETSZIkpd/58+d58OABAD09PezYsSNyIql6LLTVcM6cOVM6fuGFF8hmsxHTSJIkNYZXX321dGxHodLOQlsNx5O8JEnS2pqamuLKlSsAhBAYGBiInEiqLgttNZTbt29z69YtAFpaWjhy5EjcQJIkSQ1gaGiIQqEAwN69e+no6IicSKouC201lPJN0A4dOkRbW1vENJIkSY3BjkI1mkzsANJaSZLksZN8I+50mc/lSQoJc/fnKp4vSZK0HHfu3OHGjRsAZDIZXnzxxciJ1l4uB4UC3L9f+XzVF1e01TBu3rzJxMQEAG1tbRw8eDByIkmSpPQr7yg8cOAAW7ZsiZhGWhuuaKthlK9mHz16lA0bNkRME0drtpV8Lk9rtnXZcyudJ0mSGpcdhUuy2aVV6Up+7KbSeYrLFW01hMXFRU6fPl0aN+pJXpIkaS2NjY0xPj4OwMaNG+nr64ucSFobFtpqCFevXmVqagqArVu3sm/fvsiJJEmS0q98Nfvw4cNs2rQpYhpp7VhoqyGUn+SPHz9OJuNdE5IkSdVUKBTsKFTDstBW6i0sLHD27NnS2J+UkCRJqr7r169z9+5dADZv3kxvb2/kRNLasdBW6l28eJGZmRkAOjs72bVrV9xAkiRJDaC8o7C/v5/m5uaIaaS1ZaGt1Htyp8sQQsQ0kiRJ6ffw4UNee+210tiOQjUaC22l2uzsLBcuXCiNPclLkiRV3+XLl5mengZg27Zt7NmzJ3IiaW1ZaCvVRkZGmJ+fB6C7u5vu7u7IiSRJktLv1KlTpeOBgQGampoippHWnoW2Uq38JO9qtiRJUvXNz89z7ty50thrMDUiC22l1vT0NJcuXSqNBwcHI6aRJElqDG+88QZzc3MAbN++nZ6ensiJpLVnoa3HhBC+HEL40xDCeAjhByGE3yo+/sUQwp+EEP5j8Z+bi4+HEMK/CSG8G0L4qxBCzZxJh4eHWVxcBGD37t10dXVFTiRJkvR0aboGe7Kj0I1o1YgstPWkR8BLSZL8PLAL+M0Qws8D3wEuJ0myHbhcHAP8KrC9+J9vA99b+8hPZ9u4JEmqI6m4BpuZmWF0dLQ0PnHiRMQ0UjyZ2AFUW5IkuQ/cLx7PhhBuA9uAw8AvF1/2R8CfAb9TfPzfJkmSAG+HEL4QQvhS8X2imZyc5Nq1awCsW7eOY8eOxYxTM/K5PEkhYe7+XMXzJUnS6kvLNdi5c+d48OABAD09PezYsSNmnJqRy0GhAPcr/G8nl1vdPKo+V7T1qUIIncAvAjeAbNmJewrIFo+3AT8sm/aj4mNPvte3Qwg3Qwg3P/qph2o6c+ZM6fiFF14gm81+xqslSZJqRz1fg9lRKC1xRVtPFULYBJwF/rskSf6/8ntrkiRJQgjJct4vSZJXgFcAnn/++WXNrcSrr75aOvYk/7HWbCv5XJ7WbOuy51Y6T5IkPbt6vgabmpriypUrAIQQGBgYqObH1ZVsdmlVupK1n0rnKS5XtPUJIYSfYukE/8dJknz02wy5EMKXis9/Cfhx8fH3gC+XTe8oPhbN7du3uXXrFgAtLS0cOXIkZhxJkqRnUu/XYENDQxQKBQD27t1LR0dHzDhSVBbaekxY+rPpHwK3kyT538qeeh34RvH4G8BI2eO/Xtz5chfwQex7g8pblg4dOkRbW1vENJIkSZ8vDddgdhRKH7N1XE/6JeDXgLEQwq3iY/8D8K+AoRDCN4G7wPHic28CB4F3gZ8Av7GmaZ+QJMljJ3l3upQkSXWirq/BJiYmuHHjBgCZTIYXX3wxZhwpOgttPSZJkv8L+LQfO9z/lNcnwG9WNdQy3Lx5k4mJCQDa2to4ePBg5ESSJEmfr96vwU6fPl06PnDgAFu2bImYRorP1nGlSvlq9tGjR9mwYUPENJIkSelnR6H0SRbaSo3FxcXH/prqSV6SJKn6xsbGGB8fB2Djxo309fVFTiTFZ6Gt1Lh69SpTU1MAbN26lX379kVOJEmSlH7lq9mHDx9m06ZNEdNItcFCW6lRfpI/fvw4mYxbEEiSJFVToVB47Bdf7CiUllhoKxUWFhY4e/ZsaexPSkiSJFXf9evXmZycBGDz5s309vZGTiTVBgttpcLFixeZmZkBoLOzk127dsUNJEmS1ADKOwr7+/tpbm6OmEaqHRbaSoUnW5ZC+LRfx5AkSdJqePjwIa+99lppbEeh9DELbdW92dlZXn/99dLYk7wkSVL1Xb58menpaQC2bdvGnj17IieSaoe7RanujYyMMD8/D0B3dzfd3d2RE9W+fC6/7DlJISGfy/Ny+8sVf+5L916qeK4kSaot5W3jAwMDNDU1RUxTH3K55c8pFJbmtbdX/rn37lU+V5Wx0FbdK28bdzX787VmWyual8/lS8X2Wn6uJEmqPfPz85w/f7409hrs82Wzlc3L5T4uttfyc7UyFtqqa++//z5vvfVWaTw4OBgxTe1byYryy+0vk8/lKyqYKy3OJUlSbXrjjTeYm5sDYPv27fT09EROVNtWsqLc3r5UZFdSMFdanGvlvEdbdW14eJhHjx4BsHv3brq6uiInkiRJSr8nOwrdiFZ6nIW26lr5vUG2LEmSJFXfzMwMo6OjpfGJEycippFqk4W26tbk5CTXrl0DYN26dRw7dixyIkmSpPQ7d+4cDx48AKCnp4cdO3ZETiTVHgtt1a0zZ86Ujl944QWy7vQgSZJUdW5EK30+C23VLdvGJUmS1tbU1BRXrlwBIITAwMBA5ERSbbLQVl26ffs2t27dAqClpYUjR47EDSRJktQAhoaGKBQKAOzdu5eOjo7IiaTaZKGtulTesnTo0CHa2toippEkSWoMdhRKz8ZCW3UnSZLHTvLudClJklR9ExMT3LhxA4BMJsOLL74YOZFUuyy0VXdu3rzJxMQEAG1tbRw8eDByIkmSpPQ7ffp06fjAgQNs2bIlYhqptlloq+6Ur2YfPXqUDRs2REwjSZKUfnYUSstjoa26sri4+NjPenmSlyRJqr6xsTHGx8cB2LhxI319fZETSbXNQlt15erVq9y/fx+ArVu3sm/fvsiJJEmS0q98Nfvw4cNs2rQpYhqp9mViB5CWo/wkf/z4cTIZ/ye8VvK5PEkhYe7+XMXzJUlS/SkUCo/94osdhWsrl4NCAYprTRXN19pzRVt1Y2FhgbNnz5bG/qSEJElS9V2/fp3JyUkANm/eTG9vb+REUu1zOVB14+LFi8zMzADQ2dnJrl274gZqMK3ZVvK5PK3Z1mXPrXSeJEmKr7yjsL+/n+bm5ohpGk82u7Qqnc0uf26l87RyrmirbjzZshRCiJhGkiQp/R4+fMhrr71WGttRKD0bC23VhdnZWV5//fXS2JO8JElS9V2+fJnp6WkAtm3bxp49eyInkuqDhbbqwsjICPPz8wB0d3fT3d0dOZEkSVL6lbeNDwwM0NTUFDGNVD8stFUXytvGXc2WJEmqvvn5ec6fP18aew0mPTsLbdW8999/n7feeqs0HhwcjJhGkiSpMbzxxhvMzS39rOf27dvp6emJnEiqHxbaqnnDw8M8evQIgN27d9PV1RU5kSRJUvo92VHoRrTSs7PQVs0rvzfIliVJkqTqm5mZYXR0tDQ+ceJExDRS/bHQVk2bnJzk2rVrAKxbt45jx45FTiRJkpR+586d48GDBwD09PSwY8eOyImk+mKhrZp25syZ0vELL7xANpuNmEaSJKkxuBGttDIW2qppto1LkiStrampKa5cuQJACIGBgYHIiaT6Y6GtmnX79m1u3boFQEtLC0eOHIkbSJIkqQEMDQ1RKBQA2Lt3Lx0dHZETSfXHQls1q7xl6dChQ7S1tUVMI0mS1BjsKJRWLhM7gPQ0SZI8dpJ3p8v48rk8SSFh7v5cxfMlSVJtm5iY4MaNGwBkMhlefPHFyImUy0GhAPfvVz5fa88VbdWkmzdvMjExAUBbWxsHDx6MnEiSJCn9Tp8+XTo+cOAAW7ZsiZhGql+uaKsmla9mHz16lA0bNkRMI4DWbCv5XJ7WbOuy51Y6T5IkrZ0nOwptG68N2ezSqnQlP75T6TytnCvaqjmLi4uP/ayXbeOSJEnVNzY2xvj4OAAbN26kr68vciKpflloq+ZcvXqV+8WbULZu3cq+ffsiJ5IkSUq/8tXsw4cP09pqN5pUKQtt1Zzyk/zx48fJZLzDQZIkqZoKhcJjv/hiR6G0MhbaqikLCwucPXu2NPbeIEmSpOq7fv06k5OTAGzevJne3t7IiaT6ZqGtmnLx4kVmZmYA6OzsZNeuXXEDSZIkNYDyjsJjx47R3NwcMY1U/yy0VVOebFkKIURMI0mSlH4PHz7ktddeK41tG5dWzkJbNWN2dpbXX3+9NLZtXJIkqfouX77M9PQ0ANu2bWPPnj2RE0n1z0JbNWNkZIT5+XkAuru76e7ujpxIkiQp/crbxgcGBmhqaoqYRkoHC23VjPK2cVezJUmSqm9+fp7z58+Xxl6DSavDQls14f333+ett94qjQcHByOmkSRJagxvvPEGc3NzAPzcz/0cPT09kRNJ6WChrVURQjgQQvgPIYR3QwjfWe784eFhHj16BMDu3bvp6upa9YySJElpstLrL3AjWqlaLLS1YiGEJuB/B34V+HngRAjh55fzHuX3BtmyJEmS9NlW4/prZmaG0dHR0tjdxqXVk4kdQKnwdeDdJEnuAIQQTgOHgfFnmTw5Ocm1a9cAWLduHceOHatWTq2CfC4fO4IkSVrh9RfAuXPnePDgAQA9PT3s2LGjGjm1SnK52Am0HBbaWg3bgB+WjX8E/OflLwghfBv4NsBXvvKVxyafOXOmdLx//36y2Wy1cmqFWrOtsSNIkqQln3v9BZ99DeZGtPXDy+P6Y6GtNZEkySvAKwDPP/98Uv7cN7/5TTZv3syrr77Kr/3ar0XJp8/30r2XYkeQJEnL9FnXYN/73vc4deoUp0+fZmBgIEo+fb5792InUCUstLUa3gO+XDbuKD72TL74xS/yrW99i29961urHkySJCmlVnT9BfDVr36V7373u3z3u99d1WCS3AxNq+MdYHsIoSuE0AwMAq9HziRJkpRmXn9JNcwVba1YkiSPQgj/ELgENAHfT5LkB5FjSZIkpZbXX1Jts9DWqkiS5E3gzdg5JEmSGoXXX1LtsnVckiRJkqRVZKEtSZIkSdIqstCWJEmSJGkVWWhLkiRJkrSKLLQlSZIkSVpFFtqSJEmSJK0iC21JkiRJklaRhbYkSZIkSavIQluSJEmSpFVkoS1JkiRJ0ioKSZLEzqAGE0KYBu7GzrFKfgZ4P3aINVSN7/t3kiT52VV+T0mS9ASvweqa12B1xkJbWoEQws0kSZ6PnWOtNNr3lSRJtanRrkka7fumga3jkiRJkiStIgttSZIkSZJWkYW2tDKvxA6wxhrt+0qSpNrUaNckjfZ96573aEuSJEmStIpc0ZYkSZIkaRVZaEvPKITwv4QQ/n0I4a9CCOdDCF8oe+6fhBDeDSH8hxBCb9njB4qPvRtC+E6U4KskTd9FkiTVB6+/0vNdGo2t49IzCiH8CnAlSZJHIYTfBUiS5HdCCD8PnAK+DrQD/w74ueK0/xf4L4AfAe8AJ5IkGV/z8CsUQmgiJd9FkiTVD6+/0vFdGpEr2tIzSpLkrSRJHhWHbwMdxePDwOkkSRaSJPlPwLssnfS/DrybJMmdJEkeAKeLr61HafoukiSpTnj9lZrv0nAstKXK/NfA/1k83gb8sOy5HxUf+7TH61GavoskSapPXn/V73dpOJnYAaRaEkL4d8B/9pSn/mmSJCPF1/xT4BHwx2uZTZIkKY28/lIaWWhLZZIkeeGzng8h/APgELA/+XiDg/eAL5e9rKP4GJ/xeL35rO8oSZJUMa+/PpXXX3XM1nHpGYUQDgD/GOhLkuQnZU+9DgyGEFpCCF3AduDPWdqwYnsIoSuE0AwMFl9bj9L0XSRJUp3w+is136XhuKItPbs/AFqAPwkhALydJMl/kyTJD0IIQ8A4Sy1Nv5kkySJACOEfApeAJuD7SZL8IE70lSnu9JmK7yJJkuqK118p+C6NyJ/3kiRJkiRpFdk6LkmSJEnSKrLQliRJkiRpFVloS5IkSZK0iiy0JUmSJElaRRbakiRJkiStIgttSZIkSZJWkYW2JEmSJEmryEJbkiRJkqRV9P8DJdV8sTbmmHcAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "A = (0, 0)\n", "B = (-7, 20) # pente 20/-7\n", "pente = (B[1] - A[1]) / (B[0] - A[0])\n", "plot_4_differents_methods(A=A, B=B, pente=pente)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Bon c'était clairement trop long, inutile et impossible le jour même.**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "TODO si le temps:\n", "- corriger dessin de la courbe noire en cas de symétries" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "# Conclusion de l'oral\n", "\n", "Donner une conclusion, scientifique et aussi personnelle, en 2-4 minutes.\n", "\n", "Blabla TODO\n", "\n", "> Cela peut aussi s'appliquer en dehors des écrans, par exemple les mosaïques ou la broderie subissent les mêmes contraintes de dessins sur un support quadrillé et \"pixelisé\", et donc les méthodes mises au point sur le premier problème pourraient être aussi utilisées dans ces pratiques artistiques.\n", "> On peut même imaginer qu'un artist mosaïste durant l'Antiquité Romaine suivant ce genre de méthodes de \"longer au plus près inférieurement\", sans même y réfléchir formellement.\n", "\n", "*[si le temps]*\n", "> Une question en ouverture : et si on passe en 3D, est-ce beaucoup plus compliqué ?\n", "> Mon intuition dit que oui ! Et il s'ajoute aussi la difficulté de savoir quel *support* est utilisé pour représenter un objet en 3D.\n", "> L'analogie la plus simple sera de jouer avec des briques de Légo, qui pourraient se fixer dans les six directions (aux sommets du cube actuel).\n", "> Même si ce serait intéressant de généraliser notre modélisation et les méthodes développées pour le tracé de courbes, du 2D à la 3D, je peine à voir ce qu'on pourrait généraliser pour la partie plus mathématiques liées au mots binaires." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Autres pistes :\n", "\n", "- DONE généraliser à tous les cas d'une droite : verticale, horizontale, et les sept autre quadrants (ici, seulement $0 < \\alpha < 1$ et $a_2 \\leq b_2$) ;\n", "\n", "- DONE écrire une fonction permettant de visualiser cette méthode de Bresenham, et les autres méthodes, par exemple avec ipythonblocks (pratique mais pas possible le jour J des oraux), ou avec matplotlib (ce sera un peu plus long, mais disponible le jour J) ;\n", "\n", "- TODO généraliser l'algorithme à un cercle, par exemple, ou d'autres figures dont on connaît des équations et qu'on peut chercher à vouloir longer au plus près inférieurement, supérieurement, ou de façon hybride à la Bresenham ;\n", "\n", "- TODO pour s'éloigner davantage du problème de tracés de droite, on peut implémenter des choses concernant les mots binaires (ultimement) périodiques (abbrégés en *mbup*) :\n", "\n", " + représentation d'un *mbup*, affichage ;\n", " + vérification qu'un mot binaire est bien équilibré : est-ce seulement possible, sachant que Déf.5 porte sur un mot infini ?\n", " + transformation d'un *mbup* en une droite discrète (§6) $\\sigma \\mapsto (M_0,\\dots,M_n)$ ;\n", " + mot binaire *up* associé à un rationnel, et inversement : est-ce facile d'écrire deux fonctions qui effectuent ces transformations, par exemple $\\frac{2}{3} \\leftrightarrow (011)^\\omega$ ?" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.9" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": true, "toc_position": { "height": "calc(100% - 180px)", "left": "10px", "top": "150px", "width": "231.833px" }, "toc_section_display": true, "toc_window_display": true }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 4 }