## ----setup, include=FALSE-----------------------------------------------------
library(RandomWalker)
knitr::opts_chunk$set(collapse = TRUE, comment = "#>",
  eval = requireNamespace("deSolve", quietly = TRUE))

## ----generate-----------------------------------------------------------------
set.seed(287)
walks <- double_pendulum_walk(.num_walks = 2, .n = 101)
head(walks)
attr(walks, "initial_states")

## ----deterministic------------------------------------------------------------
fixed <- double_pendulum_walk(.num_walks = 2, .n = 21, .angle_sd = 0)

## ----static, eval=requireNamespace("deSolve", quietly=TRUE) && requireNamespace("ggplot2", quietly=TRUE)----
plot_double_pendulum(walks, .walk = 1)

## ----integration, warning=FALSE, eval=requireNamespace("deSolve", quietly=TRUE) && requireNamespace("ggplot2", quietly=TRUE)----
summarize_walks(walks, .value = x)
visualize_walks(walks, .pluck = c("x", "y"))

## ----animation, eval=FALSE----------------------------------------------------
# animation <- animate_double_pendulum(walks, .walk = 1, .trail_length = 30)
# gif <- gganimate::animate(
#   animation,
#   nframes = attr(walks, "n"),
#   fps = 1 / attr(walks, "delta_time"),
#   width = 500, height = 500,
#   renderer = gganimate::gifski_renderer()
# )
# gganimate::anim_save("double-pendulum.gif", animation = gif)

