From a5fef758107888853c14a592696b45768ef56df8 Mon Sep 17 00:00:00 2001 From: Martin Kagamino Lehoux Date: Fri, 4 Jul 2025 17:55:53 +0200 Subject: Refactor into packages --- physics/geometry.go | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 physics/geometry.go (limited to 'physics/geometry.go') diff --git a/physics/geometry.go b/physics/geometry.go new file mode 100644 index 0000000..1902fdf --- /dev/null +++ b/physics/geometry.go @@ -0,0 +1,30 @@ +package physics + +import ( + "image" + "math" +) + +type Point = image.Point +type Rectangle = image.Rectangle + +func Distance(p1, p2 Point) float64 { + return math.Sqrt(math.Pow(float64(p1.X-p2.X), 2) + math.Pow(float64(p1.Y-p2.Y), 2)) +} + +func Length(p Point) float64 { + return Distance(p, Point{X:0,Y:0}) +} + +func Normalize(p Point) Point { + return p.Div(int(Length(p))) +} + +func AdjacentPoints(from Point) []Point { + return []Point{ + from.Add(Point{X: 0, Y: -100}), + from.Add(Point{X: 0, Y: 100}), + from.Add(Point{X: -100, Y: 0}), + from.Add(Point{X: 100, Y: 0}), + } +} -- cgit v1.3