diff options
author | Joris Guyonvarch | 2015-03-07 15:12:02 +0100 |
---|---|---|
committer | Joris Guyonvarch | 2015-03-07 15:12:02 +0100 |
commit | 17a58e0c4c67f27d87635bf1b2ca50fb11795ad3 (patch) | |
tree | 8de99cdf0b4021ca6db6920537e7d0fa250e90bc /src/Utils/Geometry.elm | |
parent | 336816d2e8ab4afff1562123dfde61bf3a68e61c (diff) |
Organizing source code with subdirectories
Diffstat (limited to 'src/Utils/Geometry.elm')
-rw-r--r-- | src/Utils/Geometry.elm | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/Utils/Geometry.elm b/src/Utils/Geometry.elm new file mode 100644 index 0000000..085026f --- /dev/null +++ b/src/Utils/Geometry.elm @@ -0,0 +1,27 @@ +module Utils.Geometry + ( polarToCartesian + , distance + , inBoard + ) where + +import Model.Vec2 (..) +import Model.Board (boardSize) + +polarToCartesian : Float -> Float -> Vec2 +polarToCartesian angle dist = + { x = dist * (cos angle) + , y = dist * (sin angle) + } + +distance : Vec2 -> Vec2 -> Float +distance v1 v2 = sqrt((v2.x - v1.x)^2 + (v2.y - v1.y)^2) + +inBoard : Float -> Vec2 -> Vec2 +inBoard size pos = + let leftX = -boardSize.x / 2 + size + rightX = boardSize.x / 2 - size + bottomY = -boardSize.y / 2 + size + topY = boardSize.y / 2 - size + in { x = clamp leftX rightX pos.x + , y = clamp bottomY topY pos.y + } |