Files
galaxy-game/pkg/calc/map.go
T
2026-05-10 14:55:14 +02:00

21 lines
433 B
Go

package calc
import "math"
// shortest distance between points on torus map
func ShortDistance(w, h uint32, x1, y1, x2, y2 float64) float64 {
return math.Hypot(Deltas(w, h, x1, y1, x2, y2))
}
func Deltas(w, h uint32, x1, y1, x2, y2 float64) (float64, float64) {
dx := math.Abs(x2 - x1)
dy := math.Abs(y2 - y1)
if dx > float64(w/2) {
dx = float64(h) - dx
}
if dy > float64(h/2) {
dy = float64(h) - dy
}
return dx, dy
}