Rewrite point-segment distance

This commit is contained in:
Nikita Lisitsa 2020-11-05 16:50:25 +03:00
parent 76dd07c266
commit 621fac8451

View file

@ -48,10 +48,13 @@ namespace psemek::geom
{
T const t = dot(p - s[0], s[1] - s[0]) / length_sqr(s[1] - s[0]);
if (t >= 0 && t <= 1)
if (t <= 0)
return distance(p, s[0]);
else if (t >= 1)
return distance(p, s[1]);
else
return distance(p, lerp(s[0], s[1], t));
return std::min(distance(p, s[0]), distance(p, s[1]));
}
}