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
- convex_hull - Scan de Graham (tri polaire + scan linéaire)
- quickhull - Divide & conquer (partition récursive)
- rdp_simplification - Simplification de polylignes (Ramer-Douglas-Peucker)
- point_in_polygon_bbox - Inclusion point-polygone avec préfiltre bbox
- rotor_camera - Rotations 3D par rotors et rendu ombré (algèbre géométrique)
- ga_reflections - Réflexions par produit sandwich et composition en rotor
- bivector_mesh_orientation - Bivecteurs d'aire et orientation d'un maillage
- rotor_robot_arm - Composition de rotors pour la cinématique directe
- 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.