haar_lib/geom/
dist_segment_point.rs

1//! 線分と点の距離
2
3use crate::geom::*;
4
5/// 線分と点の距離を求める
6pub fn dist_segment_point(l: Line, p: Vector) -> f64 {
7    if l.diff().dot(p - l.from) < 0.0 {
8        (p - l.from).abs()
9    } else if -l.diff().dot(p - l.to) < 0.0 {
10        (p - l.to).abs()
11    } else {
12        l.diff().cross(p - l.from).abs() / l.abs()
13    }
14}