init = { time = 0 } type Msg = Tick Float GetKeyState update msg model = case msg of Tick t _ -> { model | time = t } makePoint t x = let angle = 0.1 * t * x * 2 * pi / (toFloat numPoints) in (50 * sin angle,50 * cos angle) makeLine number point1 point2 = line point1 point2 |> outlined (solid 1) (hsl (number * 2 * pi / (toFloat numPoints)) 1 0.5) numPoints : Int numPoints = 20 myShapes model = let numbers = List.range 0 numPoints -- make list 0,1,2,... |> List.map toFloat -- convert to Floats points = numbers |> List.map (makePoint model.time) -- convert to point followers = List.drop 1 points lines = List.map3 makeLine numbers points followers in lines