Géométrie

Algorithmes géométriques : primitives planaires 2D (nuages de points, polylignes, polygones), rotations 3D par rotors et applications des bivecteurs (algèbre géométrique).

Pourquoi cette catégorie

Les cas "géospatial" réels mélangent souvent deux couches :

  • géodésie (sphère/ellipsoïde : haversine, projections)
  • géométrie plane (enveloppe convexe, intersections, simplification)

Ici on isole la partie géométrie pure pour des algorithmes 2D robustes et réutilisables.

Pas de carte, pas de serveur : juste des points, des segments, et des invariants qui ne négocient pas.

Exemples

Fichier Module Description
convex_hull.cat list Enveloppe convexe 2D avec scan de Graham (O(n log n))
quickhull.cat list Enveloppe convexe 2D par divide & conquer (O(n log n) moyen)
rdp_simplification.cat list Simplification de polyligne (Ramer-Douglas-Peucker)
point_in_polygon_bbox.cat list Point-in-Polygon avec préfiltre bbox
rotor_camera.cat numpy + Pillow Rotations 3D par rotors, projection et rendu ombré d'un cube
geometric_algebra_raymarch.cat numpy + Pillow Caméra à rotor et scène rendue par intersections analytiques
rotor_robot_arm.cat numpy + Pillow Cinématique directe d'un bras articulé par composition de rotors
ga_reflections.cat numpy + Pillow Réflexions, composition en rotor et trajectoire dans des miroirs
bivector_mesh_orientation.cat numpy + Pillow Aires orientées et détection d'une face de maillage inversée
shapely_zones.cat shapely Zone tampon, intersections et aires d'un cadastre (moteur GEOS)

Progression suggérée

  1. convex_hull - Scan de Graham (tri polaire + scan linéaire)
  2. quickhull - Divide & conquer (partition récursive)
  3. rdp_simplification - Simplification de polylignes (Ramer-Douglas-Peucker)
  4. point_in_polygon_bbox - Inclusion point-polygone avec préfiltre bbox
  5. rotor_camera - Rotations 3D par rotors et rendu ombré (algèbre géométrique)
  6. ga_reflections - Réflexions par produit sandwich et composition en rotor
  7. bivector_mesh_orientation - Bivecteurs d'aire et orientation d'un maillage
  8. rotor_robot_arm - Composition de rotors pour la cinématique directe
  9. geometric_algebra_raymarch - Caméra à rotor et rendu vectorisé d'une scène

Exécution

catnip codex/geometry/convex_hull.cat
catnip codex/geometry/rotor_camera.cat
catnip codex/geometry/ga_reflections.cat
catnip codex/geometry/bivector_mesh_orientation.cat
catnip codex/geometry/rotor_robot_arm.cat
catnip codex/geometry/geometric_algebra_raymarch.cat

Les cinq exemples d'algèbre géométrique comparent leurs résultats à une formule vectorielle, à une matrice de Rodrigues ou à la formule de Héron. Les images sont écrites dans codex/geometry/output/, puis — sans --no-browser — ouvertes dans le navigateur via http.serve() (port local libre, une requête, puis arrêt). --no-browser s'en tient au PNG, pour les environnements headless.