fix(perf): canonicalize angle in 3d rotations
This commit is contained in:
parent
d4dc6ab11f
commit
567742186b
1 changed files with 11 additions and 1 deletions
12
src/Main.elm
12
src/Main.elm
|
@ -98,6 +98,16 @@ type Msg
|
|||
| Copy String
|
||||
|
||||
|
||||
modulo : Float -> Float -> Float
|
||||
modulo a b =
|
||||
b - toFloat (floor (b / a)) * a
|
||||
|
||||
|
||||
canonicalize : Float -> Float
|
||||
canonicalize angle =
|
||||
modulo 360 angle
|
||||
|
||||
|
||||
update : Msg -> Model -> ( Model, Cmd Msg )
|
||||
update msg model =
|
||||
let
|
||||
|
@ -134,7 +144,7 @@ update msg model =
|
|||
}
|
||||
|
||||
Rotate time ->
|
||||
wrap { model | angle = model.angle + 2 * (2 + sin (toFloat (Time.posixToMillis time) / 1000)) }
|
||||
wrap { model | angle = canonicalize (model.angle + 2 * (2 + sin (toFloat (Time.posixToMillis time) / 1000))) }
|
||||
|
||||
Copy text ->
|
||||
( model, copyToClipboard text )
|
||||
|
|
Loading…
Reference in a new issue