geometry op• Datenarten: mesh → table
• Aufruf: import fullseye as fs; fs.ledger.geodesic_heat(vertices, faces=None, source=0, *, t: 'float | None' = None) -> 'dict' (die Implementierung direkt: import mathgeometry; mathgeometry.geodesic_heat(vertices, faces=None, source=0, *, t: 'float | None' = None) -> 'dict'; aus dem Register: opsmath.get("geodesic_heat"))
Geodätischer Abstand auf einer Fläche mit der Wärmemethode (Crane et al. 2013). source ist ein Vertexindex (oder eine Folge von Indizes, Standard Vertex 0). Das Mesh kann als (vertices, faces) oder als 1 einzelnes Mesh-Tupel übergeben werden.
1) (M − tL) u = δ in 1 Schritt lösen (Wärme über die Zeit t ausbreiten; Standard t = mittlere Kantenlänge²)
2) Auf jedem Dreieck X = −∇u / |∇u| (entgegen der Richtung, aus der die Wärme kam = Richtung wachsender Distanz)
3) L φ = ∇·X lösen und so verschieben, dass es an der source 0 ist
Gate: nähert sich mit zunehmender Verfeinerung auf einem ebenen Mesh der euklidischen Distanz und auf der Kugel der Großkreisdistanz Rθ. Rückgabewert {"distance", "t"} (Ecken, die von keiner Fläche benutzt werden, und Ecken ohne Verbindung zum Startpunkt sind inf).
Jeder mathops-Operator prüft seine Eingabe vor der Berechnung (nichts rutscht stillschweigend durch):
• Komplexe Eingaben lösen ValueError aus — die Umwandlung nach float64 verwirft den Imaginärteil stillschweigend (numpy meldet nur eine ComplexWarning und liefert eine plausibel aussehende, falsche reelle Zahl). Schreiben Sie .real/.imag/abs() explizit oder nutzen Sie complexops.
• Masked Arrays mit maskierten Elementen lösen ValueError aus — die implizite Umwandlung, die die Maske abstreift und die Rohwerte darunter verwendet, wird abgelehnt. Geben Sie explizit an, ob gefüllt oder verworfen wird.
• NaN/Inf löst bei jeder Eingabe ValueError aus (mit Anzahl abgelehnt — es pflanzt sich durch das gesamte Ergebnis fort).
• Formen sind strikt: 1-D und 2-D werden nie implizit hochgestuft oder gebroadcastet (eine Matrix im Vektor-Slot oder ein Vektor im Matrix-Slot löst ValueError aus; reshapen Sie explizit).
• Größenobergrenze: Operatoren, die eine Matrix nehmen, sowie die stat_histogram-Bins lösen jenseits von mathops.MAX_ELEMENTS (2^26 ≈ 67 Mio. Elemente) ValueError aus.
• Leitfaden zur Familie math_metrology
• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).
• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.
• Der kanonische Algorithmus (Autor, Jahr) und seine Anwendungen stehen im Familienleitfaden oben.
• geometry_tour — py -3.11 examples/geometry_tour.py
table als Eingabe)dynsys_poincare_section · dwt_inverse · chebyshev_eval_nd
geometry)mesh_euler_characteristic · angle_defect · delaunay_triangulate · geodesic_heat_grid · mesh_torus · nurbs_curve · nurbs_circle · nurbs_surface
*Provenance: mathgeometry.py — MATH Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.