arc_length — 3D curve op

• Data kinds: points → measurement

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

• Ledger के ज़रिए return value: fullseye.ledger.arc_length(...) केवल घोषित out type measurement का value लौटाता है (मूल function सहायक जानकारी भी लौटाता है)। जो हिस्सा छोड़ दिया गया है उसकी ज़रूरत हो तो fullseye.ledger.arc_length.raw(...) का उपयोग करें, या curve3d.arc_length को सीधे call करें।

• मूल function का return: (cumulative, total) → 全長 float

उपयोग

curve की cumulative arc length और कुल लंबाई। → (cumulative (N,), total float)।

क्रमित point sequence curve (N,3) को index क्रम में polyline मानकर पास-पास के points के बीच की Euclidean दूरी जोड़ता जाता है। cumulative[0]=0, cumulative[i] = शुरुआत से i-वें point तक polyline की लंबाई, total = cumulative[-1]। unit वही है जो coordinates की है।

• input केवल float में बदला जाता है, कोई shape validation नहीं है (columns की संख्या 3 न हो तब भी गणना चल जाती है)।

• N=1 पर cumulative=[0.0] और total=0.0। closed curve में भी अंतिम point→पहले point का हिस्सा नहीं गिना जाता (बंद करना हो तो पहले point को अंत में duplicate करके पास करें)।

• duplicate points (दूरी 0 वाले हिस्से) जैसे के तैसे 0 के रूप में जुड़ते हैं, इसलिए cumulative monotonically non-decreasing है पर strictly increasing नहीं।

resample_uniform इसी cumulative arc length को parameter बनाकर linear interpolation करता है। curvature के arc-length integral जैसे curvature_torsion के साथ जोड़ते समय ds इन्हीं differences से लिया जाता है।

संदर्भ (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 जुड़ता है (measurement को input के रूप में लेते हैं)

vol_gaussian_psf · fuse_to_voxel · fresnel_reflectance · snell_angle

इसी category के (curve)

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