curve op• Datenarten: points → frame
• Aufruf: import fullseye as fs; fs.ledger.frenet_frame(curve) (die Implementierung direkt: import curve3d; curve3d.frenet_frame(curve); aus dem Register: ops3d.get("frenet_frame"))
Das Frenet-Dreibein (Tangente T, Hauptnormale N, Binormale B) an jedem Punkt. → (T, N, B), je (Npts,3) Einheitsvektoren.
Leitet die geordnete Punktfolge (N,3) über den Index-Parameter mit np.gradient ab (intern zentrale Differenzen, an beiden Enden einseitige Differenzen), erhält r', r'' und
• T = r' / ‖r'‖
• N = (r'' − (r''·T) T) / ‖…‖ (die zu T orthogonale Komponente von r'' = die Richtung zum Krümmungsmittelpunkt)
• B = T × N
wird an jedem Punkt berechnet. Die Richtung der zu T orthogonalen Komponente von r'' ist invariant gegenüber Umparametrisierung; solange sich der Punktabstand glatt ändert, liefert der Index-Parameter die richtige Richtung.
• Zum Nenner wird nur der Absolutwert 1e-12 addiert, Stellen, die sich nicht normieren lassen, werden nicht einheitslang. Auf geraden Abschnitten (r'' ∥ T oder 0) werden N und B nahezu Nullvektoren, und vor und nach einem Wendepunkt kehrt sich die Richtung von N um. Die Garantie "Einheitsvektor" gilt dort nicht.
• Bei einer Folge mit N<2 löst np.gradient ValueError aus. Eine andere Formprüfung gibt es nicht.
• Die 2 Punkte an beiden Enden nutzen einseitige Differenzen, daher sinkt die Genauigkeit. Vorheriges Äquidistantmachen (resample_uniform) oder Glätten (fit_spline_curve) stabilisiert das Ergebnis.
Die Zahlenwerte von Krümmung und Torsion selbst liefert curvature_torsion, die Bogenlänge arc_length.
• 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.
• space_curve — py -3.11 examples_3d/space_curve.py
• torus_knot_curve — py -3.11 examples_3d/torus_knot_curve.py
frame als Eingabe)curve)curvature_torsion · arc_length · 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.