fit_sphere_3d — 3D geometry op

• Datenarten: points → primitive

• Aufruf: import fullseye as fs; fs.ledger.fit_sphere_3d(points) (die Implementierung direkt: import match3d; match3d.fit_sphere_3d(points); aus dem Register: ops3d.get("fit_sphere_3d"))

Verwendung

Punktmenge → eine Kleinste-Quadrate-Kugel (algebraische Anpassung). Liefert (center, radius). Für Rohr- und Kugelmesstechnik.

Algebraischer Fit, der |p|² = 2c·p + (r² − |c|²) per linearer kleinster Quadrate (lstsq) über [2p, 1] löst (minimiert nicht den geometrischen Abstand; ist nur ein Teil der Kugel sichtbar oder das Rauschen groß, ist der Radius verzerrt). (N,3) mit weniger als 4 Punkten ergibt ValueError. radius ist sqrt(max(s + |c|², 0)), Negatives wird auf 0 geclampt. Liegen die Punkte in einer Ebene oder auf einer Geraden, wird stillschweigend die Minimum-Norm-Lösung von lstsq zurückgegeben (keine Prüfung; auch kein Residuum, daher mit |p − c| − r prüfen). Zum Verfeinern über den geometrischen Abstand das Ergebnis dieses op als Startwert für nichtlineare kleinste Quadrate nutzen; gegen Ausreißer ransac_sphere. Erkennung aus Voxeln: hough_sphere_3d.

Referenzen (Beispieldaten, Literatur)

• 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.

Ausführbare Beispiele (verifizierte Samples, die diesen Operator wirklich aufrufen)

• geometry_metrology — py -3.11 examples_3d/geometry_metrology.py

Typkompatible Folge-Operatoren (nehmen primitive als Eingabe)

fuse_to_voxel · angle_between_lines · angle_between_planes · angle_line_plane · distance_point_plane · distance_point_line · distance_line_line · distance_segment_segment

Gleiche Kategorie (geometry)

line_from_2points · plane_from_3points · angle_3points · angle_between_lines · angle_between_planes · angle_line_plane · distance_point_plane · distance_point_line


*Provenance: match3d.py — 3D 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.