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
|
| 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 -> ( Model, Cmd Msg )
|
||||||
update msg model =
|
update msg model =
|
||||||
let
|
let
|
||||||
|
@ -134,7 +144,7 @@ update msg model =
|
||||||
}
|
}
|
||||||
|
|
||||||
Rotate time ->
|
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 ->
|
Copy text ->
|
||||||
( model, copyToClipboard text )
|
( model, copyToClipboard text )
|
||||||
|
|
Loading…
Reference in a new issue