fit_torus — 3D robust_fit op

• Datenarten: points → primitive

• Aufruf: import fullseye as fs; fs.ledger.fit_torus(points) -> 'dict' (die Implementierung direkt: import fit_primitives_ext; fit_primitives_ext.fit_torus(points) -> 'dict'; aus dem Register: ops3d.get("fit_torus"))

Verwendung

Passt einen Torus an eine Punktmenge an und liefert {center, axis, R, r, residual}.

Minimiert den Punkt-Torus-Abstand sqrt((ρ−R)² + a²) − r (a = Axialkomponente, ρ = Radius zur Achse, R = Hauptradius, r = Rohrradius) mit scipy.optimize.least_squares. Startwert ist die PCA-Achse (der aus der Reihe fallende Eigenvektor) + R0=mean(ρ) und r0 (mittlerer Abstand zum Rohrmittelkreis).

Args:

points: (N,3) Punktwolke (mindestens 7 Punkte).

Returns:

dict: {"center": (3,), "axis": (3,), "R": float, "r": float, "residual": float}.

axis ist die Einheitsachse, R der Hauptradius, r der Rohrradius, residual das RMS des Punkt-Fläche-Abstands.

Raises:

ValueError: fail-closed bei ungültiger Form / zu wenigen Punkten.

Hintergrundwissen (Physik und Konventionen hinter diesem Operator)

• blas_threads_and_memory — Warum Matrixzerlegungen langsam sind — BLAS-Threads, Caches, Speicherlayout

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)

• fit_primitives_ext — py -3.11 examples_3d/fit_primitives_ext.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 (robust_fit)

ransac_plane · ransac_sphere · ransac_line · ransac_cylinder · fit_cone · fit_ellipsoid


*Provenance: fit_primitives_ext.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.