An implementation of the Inverse Distance Weighting (IDW) algorithm.
The crate supports points of 1 to 3 dimension to perform the interpolation.
The weighted function used in the algorithm is weightᵢ = 1 / distance(pointᵢ, position)ᵖ
.
```rust use idw::IDW;
// 1 dimension let points = vec![0.0, 1.0]; let values = vec![0.0, 1.0]; let idw = IDW::new(points, values);
let result = idw.evaluate(0.5);
// 2 dimension let points = vec![(0.0, 0.0), (1.0, 1.0)]; let values = vec![0.0, 1.0]; let idw = IDW::new(points, values);
let result = idw.evaluate((0.5, 0.5));
// 3 dimension let points = vec![(0.0, 0.0, 0.0), (1.0, 1.0, 1.0)]; let values = vec![0.0, 1.0]; let idw = IDW::new(points, values);
let result = idw.evaluate((0.5, 0.5, 0.5));
// Customize let points = vec![0.0, 1.0]; let values = vec![0.0, 1.0]; let idw = IDW::new(points, values) // Sets a power parameter. Default is 2. .power(0.5) // Sets a transform function for weights. .weighted_function(|weight| (1.0 + (4.0 * PI * weight).sin()) * 0.5); ```