polydf — Distance queries for parametric curves (2D & 3D)
polydf provides fast nearest-point queries from points to differentiable parametric curves:
- 2D curves: nearest parameter, closest point, unsigned distance, and a normal-based signed distance.
- 3D curves: nearest parameter, closest point, and unsigned distance.
- Optional conservative early-out when you have an upper bound on curve speed.
Highlights
- Works with closures and analytic functions; derivative is optional for 2D signing.
- Robust multi-start 1D minimization (Brent-like) over a user-provided
trange. - Tuple-friendly helpers and simple options for accuracy/performance tradeoffs.
Quick start (2D)
use ;
use ;
let p = vector!;
let res = nearest_t;
assert!;
Quick start (3D)
use ;
use ;
let p = vector!;
let res = nearest_t_3d;
println!;
Early-out (needs speed upper bound)
use is_definitely_far_3d;
let threshold = 5.0f32;
let speed_ub = Some; // for helix
let far = is_definitely_far_3d;
Examples
cargo run --example render_curve(2D image)cargo run --example render_curve_with_derivative(2D image with derivative)cargo run --example nearest_helix_3d(3D console demo)