Géométrie euclidienne en Micropython ?

A partir du moment où il est assez facile de pouvoir dessiner et tracer des éléments géométriques sur un écran OLED en micropython, la possibilité de créer des codes de "physical geometry" devient envisageable et intéressante. C'est pouvoir faire très facilement et simplement de façon interactive et immédiate, à partir de capteurs, etc. des codes qui "manipulent" ou permettront de manipuler les réalités mathématiques de base qui ne sont la plupart du temps appréhendées que de façon algébrique.

Disposer de 2 potentiomètres par exemple, a et b, et voir comment évolue une droite en fonction de l'action sur l'un ou sur l'autre est quelque chose qui est assez vite très parlant.

En robotique également, il peut être intéressant de disposer de fonctions de base de la géométrie euclidienne pour calculer des intersections de droite, etc.

Bref, pouvoir faire un peu de géométrie euclidienne en Micropython, en plus d'être intéressant peut être utile. Et nous allons explorer ici quelques possibilités. L'idée est d'utiliser des "pure fonctions" qui permettront autant que possible de ne manipuler que des list.

Let's go

Une première fonction interéssante est celle qui dessine le point. Ce n'est qu'une reprise de la fonction pixel :