Function bcar::intersect_line_line[][src]

pub fn intersect_line_line(
    p1: Point,
    p2: Point,
    p3: Point,
    p4: Point
) -> Option<Point>

Return intersection point of two lines if exists.

See https://en.wikipedia.org/wiki/Line%E2%80%93line_intersection

Examples

match bcar::intersect_line_line(
    bcar::Point::new(1.0, 1.0), bcar::Point::new(3.0, 3.0),
    bcar::Point::new(1.0, 3.0), bcar::Point::new(3.0, 1.0),
) {
    Some(p) => { assert!(p == bcar::Point::new(2.0, 2.0)); },
    None => { assert!(false); }
}
match bcar::intersect_line_line(
    bcar::Point::new(1.0, 1.0), bcar::Point::new(1.0, 3.0),
    bcar::Point::new(3.0, 3.0), bcar::Point::new(3.0, 1.0),
) {
    Some(_p) => { assert!(false); },
    None => { assert!(true); }
}