module Utils.Geometry ( polarToCartesian , distance , inBoard ) where import Model.Vec2 exposing (..) 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 : Vec2 -> Float -> Vec2 -> Vec2 inBoard boardSize 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 }