arc_length — 3D curve op

• Datenarten: points → measurement

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

• Rückgabewert über das Register: fullseye.ledger.arc_length(...) liefert nur den Wert des deklarierten Out-Typs measurement (die zugrunde liegende Funktion gibt zusätzlich Hilfsinformationen zurück). Wird das Verworfene gebraucht, nutze fullseye.ledger.arc_length.raw(...) oder rufe curve3d.arc_length direkt auf.

• Rückgabe der Funktion: (cumulative, total) → 全長 float

Verwendung

Die kumulierte Bogenlänge einer Kurve und ihre Gesamtlänge. → (cumulative (N,), total float).

Behandelt die geordnete Punktfolge curve (N,3) in Index-Reihenfolge als Polylinie und summiert die euklidischen Abstände zwischen benachbarten Punkten auf. cumulative[0]=0, cumulative[i] = Polylinienlänge vom Anfang bis zum i-ten Punkt, total = cumulative[-1]. Die Einheit ist dieselbe wie die der Koordinaten.

• Die Eingabe wird nur in float umgewandelt, eine Formprüfung gibt es nicht (auch bei einer Spaltenzahl ungleich 3 läuft die Berechnung durch).

• Bei N=1 gilt cumulative=[0.0] und total=0.0. Auch bei einer geschlossenen Kurve wird der Abschnitt Endpunkt→Startpunkt nicht gezählt (zum Schließen den ersten Punkt vorher ans Ende duplizieren und dann übergeben).

• Doppelte Punkte (Abschnitte mit Abstand 0) werden unverändert als 0 aufsummiert, daher ist cumulative monoton nicht fallend, aber nicht streng steigend.

resample_uniform interpoliert linear mit dieser kumulativen Bogenlänge als Parameter. Das ds bei der Kombination mit curvature_torsion, etwa für Bogenlängenintegrale der Krümmung, wird aus diesen Differenzen genommen.

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)

• space_curve — py -3.11 examples_3d/space_curve.py

• torus_knot_curve — py -3.11 examples_3d/torus_knot_curve.py

Typkompatible Folge-Operatoren (nehmen measurement als Eingabe)

vol_gaussian_psf · fuse_to_voxel · fresnel_reflectance · snell_angle

Gleiche Kategorie (curve)

curvature_torsion · frenet_frame · resample_uniform · 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.