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}