frenet_frame — 3D curve op

• Data kinds: points → frame

• Call: import fullseye as fs; fs.ledger.frenet_frame(curve) (implementation को सीधे call करना हो तो import curve3d; curve3d.frenet_frame(curve), registry से लेना हो तो ops3d.get("frenet_frame"))

उपयोग

हर point पर Frenet frame (tangent T, principal normal N, binormal B)। → (T, N, B), हर एक (Npts,3) unit vectors।

क्रमित point sequence (N,3) को index parameter पर np.gradient (भीतर central difference, दोनों सिरों पर one-sided difference) से differentiate करके r', r'' निकाले जाते हैं, और

• T = r' / ‖r'‖

• N = (r'' − (r''·T) T) / ‖…‖ (r'' का T के लंबवत component = curvature केंद्र की ओर की दिशा)

• B = T × N

हर point पर गणना की जाती है। r'' के T-लंबवत component की दिशा reparameterisation से नहीं बदलती, इसलिए जब तक point spacing smoothly बदलती है, index parameter से सही दिशा मिलती है।

• denominator में केवल absolute 1e-12 जोड़ा जाता है, इसलिए जहाँ पूरी तरह normalise नहीं हो पाता वहाँ unit length नहीं बनती। सीधे हिस्सों (r'' ∥ T या 0) में N और B लगभग zero vector बन जाते हैं, और inflection point के आगे-पीछे N की दिशा उलट जाती है। "unit vector" की गारंटी वहाँ लागू नहीं होती।

• N<2 वाले sequence पर np.gradient ValueError देता है। इसके अलावा कोई shape validation नहीं है।

• दोनों सिरों के 2 points one-sided difference से बनते हैं, इसलिए accuracy कम होती है। पहले समान spacing (resample_uniform) या smoothing (fit_spline_curve) लगाने से परिणाम स्थिर होता है।

curvature और torsion के मान स्वयं curvature_torsion से, arc length arc_length से।

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• space_curve — py -3.11 examples_3d/space_curve.py

• torus_knot_curve — py -3.11 examples_3d/torus_knot_curve.py

वे अगले ops जिनसे type जुड़ता है (frame को input के रूप में लेते हैं)

fuse_to_voxel

इसी category के (curve)

curvature_torsion · arc_length · resample_uniform · fit_spline_curve


*Provenance: curve3d.py — 3D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.