Files
firestar5683 ab81464bd1 Maps
Add navigation and map matching providers with the vendored map service sources.

Co-authored-by: Daniel Koepping <elkoled@gmail.com>
Co-authored-by: Danny <dannyirwin31@yahoo.com>
Co-authored-by: Prabhaav Pillai <prabhaav@msu.edu>
Co-authored-by: dirwin31 <83434411+dirwin31@users.noreply.github.com>
2026-10-14 19:56:17 -05:00

21 lines
368 B
Go

package math
type Line struct {
Start, End Position
}
type LinePosition struct {
Pos Position
T float64
}
func (l *Line) NearestPosition(pos Position) LinePosition {
AB := l.End.Subtract(l.Start)
AP := pos.Subtract(l.Start)
t := AP.Dot(AB) / AB.Dot(AB)
t = max(0, min(1, t))
closest := l.Start.Add(AB.Scale(t))
return LinePosition{Pos: closest, T: t}
}