Struct geo_types::Line [−][src]
pub struct Line<T> where
T: CoordNum, {
pub start: Coordinate<T>,
pub end: Coordinate<T>,
}
Expand description
A line segment made up of exactly two
Coordinate
s.
Semantics
The interior and boundary are defined as with a
LineString
with the two end points.
Fields
start: Coordinate<T>
end: Coordinate<T>
Implementations
Creates a new line segment.
Examples
use geo_types::{Coordinate, Line};
let line = Line::new(Coordinate { x: 0., y: 0. }, Coordinate { x: 1., y: 2. });
assert_eq!(line.start, Coordinate { x: 0., y: 0. });
assert_eq!(line.end, Coordinate { x: 1., y: 2. });
Calculate the difference in coordinates (Δx, Δy).
Calculate the difference in ‘x’ components (Δx).
Equivalent to:
line.end.x - line.start.x
Calculate the difference in ‘y’ components (Δy).
Equivalent to:
line.end.y - line.start.y
Calculate the slope (Δy/Δx).
Equivalent to:
line.dy() / line.dx()
Note that:
Line::new(a, b).slope() == Line::new(b, a).slope()
Calculate the determinant of the line.
Equivalent to:
line.start.x * line.end.y - line.start.y * line.end.x
Note that:
Line::new(a, b).determinant() == -Line::new(b, a).determinant()
Trait Implementations
Equality assertion with an absolute limit.
Examples
use geo_types::{Coordinate, Line};
let a = Line::new(Coordinate { x: 0., y: 0. }, Coordinate { x: 1., y: 1. });
let b = Line::new(Coordinate { x: 0., y: 0. }, Coordinate { x: 1.001, y: 1. });
approx::assert_abs_diff_eq!(a, b, epsilon=0.1);
type Epsilon = T
type Epsilon = T
Used for specifying relative comparisons.
The default tolerance to use when testing values that are close together. Read more
The inverse of AbsDiffEq::abs_diff_eq
.
impl<T> RelativeEq<Line<T>> for Line<T> where
T: AbsDiffEq<Epsilon = T> + CoordNum + RelativeEq,
impl<T> RelativeEq<Line<T>> for Line<T> where
T: AbsDiffEq<Epsilon = T> + CoordNum + RelativeEq,
Equality assertion within a relative limit.
Examples
use geo_types::{Coordinate, Line};
let a = Line::new(Coordinate { x: 0., y: 0. }, Coordinate { x: 1., y: 1. });
let b = Line::new(Coordinate { x: 0., y: 0. }, Coordinate { x: 1.001, y: 1. });
approx::assert_relative_eq!(a, b, max_relative=0.1);
The default relative tolerance for testing values that are far-apart. Read more
The inverse of RelativeEq::relative_eq
.
Convert a Geometry enum into its inner type.
Fails if the enum case does not match the type you are trying to convert it to.
Auto Trait Implementations
impl<T> RefUnwindSafe for Line<T> where
T: RefUnwindSafe,
impl<T> UnwindSafe for Line<T> where
T: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more