fit_circle_3d — 3D geometry op

• Datenarten: points → primitive

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

Verwendung

Punktmenge → ein 3-D-Kreis (Ebene anpassen, dann darin einen 2-D-Kreis). Liefert (center, radius, normal).

Bestimmt die Ebene (c, n) mit fit_plane_3d, projiziert die Punkte auf eine orthonormale Basis (e1, e2) in der Ebene, löst einen 2-D- algebraischen Kreisfit (lstsq von |q|² = 2·cc·q + k) und transformiert den Mittelpunkt zurück nach 3-D. (N,3) mit weniger als 3 Punkten ergibt ValueError (bei 3 Punkten ist die Ebene exakt und der Kreis geht durch die 3 Punkte). center ist ein 3-D-Punkt auf der Ebene, radius ein float (negative Wurzel auf 0 geclampt), normal die Einheitsnormale der Ebene (Vorzeichen beliebig). Ist nur ein Teil des Bogens vorhanden oder liegen viele Punkte außerhalb der Ebene, ist der Radius verzerrt (Eigenschaft algebraischer Fits; das Residuum in der Ebene wird nicht zurückgegeben).

Einsatz: Mittelpunkt und Durchmesser von Löchern, Flanschen und Ringen; Exzentrizität zur Achse mit distance_point_line.

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.