Nothing
## ----setup, include=FALSE-----------------------------------------------------
knitr::opts_chunk$set(echo = TRUE)
library(trajr)
x = seq(0, 6, .5)
# For simplicity, these functions assume frequency and amplitude of oscillations in speed, i.e. it's not parameterised
disp <- function(times) {
ft <- floor(times)
f <- times - ft
ft * .5 + ifelse(f > 0.5, f - 0.5, 0)
}
fadedCol <- "#d3d3c0"
addSpeed <- function() lines(seq(0, 6, .5), c(rep(c(0, 1), 6), 0), type = 's', col = fadedCol)
tFromT <- function(times) TrajFromCoords(data.frame(disp(times), rep(0, length(times)), times), timeCol = 3)
plotSpeedAndDisp <- function(times, cex = 1) {
t <- tFromT(times)
f <- 1 / mean(diff(times))
plot(x, disp(x), type = "l", col = fadedCol, xlim = range(c(0, t$time)), xlab = "Time", ylab = "Displacement", main = sprintf("Sampled Displacement (f = %g Hz)", f))
lines(t$time, cumsum(t$displacement))
points(t$time, cumsum(t$displacement), pch = 16, cex = cex)
plot(TrajSpeedIntervals(t, slowerThan = 0.1), xlim = range(t$time), ylim = c(0, 1), main = sprintf("Derived speed (f = %g Hz)", f))
addSpeed()
td <- TrajDerivatives(t)
points(td$speedTimes + t$time[1], td$speed, pch = 16, cex = cex)
}
## ----echo=FALSE, fig.height=4, fig.width=4.5----------------------------------
plot(x, disp(x), type = "l", xlab = "Time", ylab = "Displacement", main = "Actual Displacement")
plot(seq(0, 6, .5), c(rep(c(0, 1), 6), 0), type = 's', xlab = "Time", ylab = "Speed", main = "Actual speed")
## ----echo=FALSE, fig.height=4, fig.width=4.5----------------------------------
plotSpeedAndDisp(seq(0, 6, 1 / 2))
## ----echo=FALSE, fig.height=4, fig.width=4.5----------------------------------
times <- seq(0, 6, 1 / 2) + .25
plotSpeedAndDisp(times)
## ----echo=FALSE, fig.height=4, fig.width=4.5----------------------------------
times <- seq(0, 6, 1 / 6) + .25
plotSpeedAndDisp(times)
## ----echo=FALSE, fig.height=4, fig.width=4.5----------------------------------
times <- seq(0, 6, 1 / 12) + .25
plotSpeedAndDisp(times, cex = .5)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.