resample_uniform — 3D curve op

• 数据种类:points → points

• 调用: import fullseye as fs; fs.ledger.resample_uniform(curve, n)(要直接调用实现,import curve3d; curve3d.resample_uniform(curve, n);从台账取用则 ops3d.get("resample_uniform"))

用法

按弧长等间隔重采样为 n 点(线性插值)。→ (n,3)。

以 arc_length 的累积弧长为参数,取 np.linspace(0, total, n) 的位置并用 np.interp 对 x、y、z 独立线性插值。输出为 float64 的 (n,3)。起点和终点与输入的首尾一致,中间点落在折线上(不一定经过原始点)。

• n:输出点数。1 时仅起点 1 点,0 时为空的 (0,3)。多于输入也不会增加信息, 只是把折线切得更细。

• 总长小于 1e-12(全部点重合)时,将首点复制 n 次返回。

• 输出列数固定为 3,输入不是 (N,3) 时会因列数不足而失败,或多余的列被丢弃。没有形状校验。

• 闭曲线不会闭合(终点→起点的区间不在插值范围内)。即使有重复点 np.interp 也能通过,但该区间按长度 0 处理。

curvature_torsion / frenet_frame 是 index 参数的差分,因此间距不均匀的点列用本 op 等间距化后再传入,数值微分会更稳定。需要平滑插值时用 fit_spline_curve。

参考(示例数据、文献)

• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。

• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。

可运行的示例(实际调用该算子并已验证的样例)

• bspline_freeform — py -3.11 examples_3d/bspline_freeform.py

类型可衔接的下一个算子(可接受 points 作为输入)

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

同类别(curve)

curvature_torsion · frenet_frame · arc_length · fit_spline_curve


*Provenance: curve3d.py — 3D 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*

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