Easing Functions

Take a look at the following animation.

val bubble =
  Reactor.linearRamp(0, 200)
    .withRender(r => Image.circle(r))
// bubble: Reactor[Double] = Reactor(
//   initial = 0.0,
//   onMouseClickHandler = doodle.reactor.Reactor$$$Lambda$13486/0x0000000103942840@74117ae3,
//   onMouseMoveHandler = doodle.reactor.Reactor$$$Lambda$13487/0x0000000103943840@3b373f7,
//   onTickHandler = doodle.reactor.Reactor$$$Lambda$13491/0x0000000103947040@1e5f6977,
//   tickRate = 100 milliseconds,
//   renderHandler = repl.MdocSession$MdocApp$$Lambda$13493/0x0000000103951040@10ff7f31,
//   stopHandler = doodle.reactor.Reactor$$$Lambda$13492/0x0000000103950840@516353c8
// )

Algebraic Data Types To Call Our Own→