Делать некоторые основные исчисления с использованием Reactive Banana
Setup:
Я использую Reactive Banana вместе с OpenGL, и у меня есть снаряжение, которое я хочу крутить. У меня есть следующие сигналы:
bTime :: Behavior t Int -- the time in ms from start of rendering
bAngularVelosity :: Behavior t Double -- the angular velocity
-- which can be increase or
-- decreased by the user
eDisplay :: Event t () -- need to redraw the screen
eKey :: Event t KeyState -- user input
В конечном итоге мне нужно рассчитатьbAngle
который затем передается функции рисования:
reactimate $ (draw gears) <reactimate $ (draw gears) <$> (bAngle <@ eDisp)
gt; (bAngle <@ eDisp)
Угол легко рассчитать:a = ∫v(t) dt
Question:
яthink что я хочу сделать, это приблизить этот интеграл какa = ∑ v Δt
для каждого события eDisplay (или чаще, если нужно). Это правильный путь? Если так, как я могу получитьΔt
отbTime
?
See Also:
I suspect that answer uses the mapAccum
функция. Если это так, пожалуйста, смотритемой другой вопрос также.