resample_uniform — 3D curve op

• Datenarten: points → points

• Aufruf: import fullseye as fs; fs.ledger.resample_uniform(curve, n) (die Implementierung direkt: import curve3d; curve3d.resample_uniform(curve, n); aus dem Register: ops3d.get("resample_uniform"))

Verwendung

Resampelt auf n entlang der Bogenlänge gleichmäßig verteilte Punkte (lineare Interpolation). → (n,3).

Nimmt mit der kumulativen Bogenlänge von arc_length als Parameter die Positionen np.linspace(0, total, n) und interpoliert x, y und z unabhängig voneinander linear mit np.interp. Die Ausgabe ist float64 (n,3). Start- und Endpunkt stimmen mit dem ersten bzw. letzten Eingabepunkt überein, Zwischenpunkte liegen auf der Polylinie (sie gehen nicht unbedingt durch die ursprünglichen Punkte).

• n: Anzahl der Ausgabepunkte. 1 liefert nur 1 Punkt, den Startpunkt, 0 ein leeres (0,3). Mehr als die Eingabe bringt keine zusätzliche Information, es unterteilt die Polylinie nur feiner.

• Ist die Gesamtlänge kleiner als 1e-12 (alle Punkte identisch), wird der erste Punkt n-mal dupliziert zurückgegeben.

• Die Spaltenzahl der Ausgabe ist auf 3 fest; ist die Eingabe nicht (N,3), schlägt es mangels Spalten fehl oder überzählige Spalten werden verworfen. Eine Formprüfung gibt es nicht.

• Geschlossene Kurven werden nicht geschlossen (der Abschnitt Endpunkt→Startpunkt wird nicht interpoliert). Doppelte Punkte laufen zwar durch np.interp, der Abschnitt wird aber als Länge 0 behandelt.

curvature_torsion / frenet_frame verwenden Differenzen über den Index-Parameter; ungleichmäßig beabstandete Punktfolgen vorher mit diesem op äquidistant zu machen stabilisiert daher die numerische Ableitung. Für glatte Interpolation:

fit_spline_curve.

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)

• bspline_freeform — py -3.11 examples_3d/bspline_freeform.py

Typkompatible Folge-Operatoren (nehmen points als Eingabe)

points_to_voxel · gaussians_to_voxel · estimate_point_normals · to_points · match_points_ncc · match_pca · moment_axes · icp_point2point_3d

Gleiche Kategorie (curve)

curvature_torsion · frenet_frame · arc_length · fit_spline_curve


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