Wykonanie podstawowego rachunku za pomocą Reaktywnego banana
Ustawiać:
Używam Reactive Banana wraz z OpenGL i mam sprzęt, który chcę obracać. Mam następujące sygnały:
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
Ostatecznie muszę obliczyćbAngle
która następnie przechodzi do funkcji rysowania:
reactimate $ (draw gears) <reactimate $ (draw gears) <$> (bAngle <@ eDisp)
gt; (bAngle <@ eDisp)
Kąt jest łatwy do obliczenia:a = ∫v(t) dt
Pytanie:
I myśleć to, co chcę zrobić, to przybliżenie tej całki jakoa = ∑ v Δt
dla każdego wydarzenia eDisplay (lub częściej, jeśli muszę). Czy to jest właściwy sposób na to? Jeśli tak, jak mam to zrobićΔt
zbTime
?
Zobacz też: Podejrzewam, że odpowiedź używamapAccum
funkcjonować. Jeśli tak, zobacz takżemoje drugie pytanie także.