logo
pub trait ClosestPoint<F: GeoFloat, Rhs = Point<F>> {
    fn closest_point(&self, p: &Rhs) -> Closest<F>;
}
Expand description

Find the closest Point between a given geometry and an input Point. The closest point may intersect the geometry, be a single point, or be indeterminate, as indicated by the value of the returned enum.

Examples

We have a horizontal line which goes through (-50, 0) -> (50, 0), and want to find the closest point to the point (0, 100). Drawn on paper, the point on the line which is closest to (0, 100) is the origin (0, 0).

let p: Point<f32> = Point::new(0.0, 100.0);
let horizontal_line: Line<f32> = Line::new(Point::new(-50.0, 0.0), Point::new(50.0, 0.0));

let closest = horizontal_line.closest_point(&p);
assert_eq!(closest, Closest::SinglePoint(Point::new(0.0, 0.0)));

Required Methods

Find the closest point between self and p.

Implementations on Foreign Types

Implementors