[][src]Trait geo::algorithm::line_interpolate_point::LineInterpolatePoint

pub trait LineInterpolatePoint<F: Float> {
    type Output;
    fn line_interpolate_point(&self, fraction: &F) -> Self::Output;
}

Returns the point that lies a given fraction along the line.

If the given fraction is

  • less than zero: returns the starting point
  • greater than one: returns the end point

Examples

use geo::{LineString, point};
use geo::algorithm::line_interpolate_point::LineInterpolatePoint;

let linestring: LineString<f64> = vec![
    [-1.0, 0.0],
    [0.0, 0.0],
    [0.0, 1.0]
].into();

assert_eq!(linestring.line_interpolate_point(&-1.0), point!(x: -1.0, y: 0.0));
assert_eq!(linestring.line_interpolate_point(&0.25), point!(x: -0.5, y: 0.0));
assert_eq!(linestring.line_interpolate_point(&0.5), point!(x: 0.0, y: 0.0));
assert_eq!(linestring.line_interpolate_point(&0.75), point!(x: 0.0, y: 0.5));
assert_eq!(linestring.line_interpolate_point(&2.0), point!(x: 0.0, y: 1.0));

Associated Types

type Output

Loading content...

Required methods

fn line_interpolate_point(&self, fraction: &F) -> Self::Output

Loading content...

Implementors

impl<T> LineInterpolatePoint<T> for Line<T> where
    T: CoordinateType + Float + Zero + One
[src]

type Output = Point<T>

impl<T> LineInterpolatePoint<T> for LineString<T> where
    T: CoordinateType + Float + Zero + AddAssign + One,
    Line<T>: EuclideanLength<T>,
    LineString<T>: EuclideanLength<T>, 
[src]

type Output = Point<T>

Loading content...