Géométrie

Algorithmes géométriques : primitives planaires 2D (nuages de points, polylignes, polygones) et rotations 3D par rotors (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

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)

Exécution

catnip codex/geometry/convex_hull.cat