fit_cone — 3D robust_fit op

• Datenarten: points → primitive

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

Verwendung

Passt einen unendlichen Kegel an eine Punktmenge an und liefert {apex, axis, half_angle, residual}.

Minimiert den orthogonalen Punkt-Mantellinie-Abstand in der Meridianebene, a·sinα − ρ·cosα (a = Axialkomponente, ρ = Radius, α = halber Öffnungswinkel), mit scipy.optimize.least_squares. Als Startwert dient jede der 3 PCA-Hauptachsen als Achsenkandidat, dazu eine lineare Regression ρ = m·t + b des Radius ρ über die Axialkomponente t (halber Öffnungswinkel = atan(m), Spitze = der Achsenpunkt mit ρ = 0, t = -b/m). Der Kandidat mit dem kleinsten Residuum wird genommen. Die Achsrichtung wird so normiert, dass "ρ mit dem Abstand von der Spitze wächst (öffnet sich in +-Richtung)".

Args:

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

Returns:

dict: {"apex": (3,), "axis": (3,), "half_angle": float, "residual": float}.

axis ist die Einheitsachse (Öffnungsrichtung), half_angle der halbe Öffnungswinkel [rad], residual das RMS des Punkt-Fläche-Abstands.

Raises:

ValueError: fail-closed bei ungültiger Form / zu wenigen Punkten / halbem Öffnungswinkel ~0 (Entartung zum Zylinder) usw.

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_torus · 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.