falling cat
y <- rep(NA, 20) # empty vector to store result
i <- 1 # time
y[i] <- 10 # initial vertical position
while(y[i]>0) { # while we don't hit the floor...
i <- i+1 # time passes
y[i] <- y[i-1] + -1 # update position
} # ..and repeat
plot(y) # draw all positions
Bounce
N <- 60
y <- rep(NA, N) # initialize to empty
y[1] <- 120 # initial position
speed <- -20 # initial speed
for(i in 2:N) { # as time passes...
y[i] <- y[i-1] + speed # update position
if(y[i] < -180){ # if we hit the floor
speed <- -1*speed # bounce
}
if(y[i] > 180){ # if we hit the ceil
speed <- -1*speed # bounce
}
}
plot(y)
Boolean bounce
N <- 60
y <- rep(NA, N) # initialize to empty
y[1] <- 120 # initial position
speed <- -20 # initial speed
for(i in 2:N) { # as time passes...
y[i] <- y[i-1] + speed # update position
if(y[i] < -180 | y[i] > 180){ # if we hit the floor or ceil
speed <- -1*speed # bounce
}
}
plot(y)
gravity
N <- 60
y <- rep(NA, N) # initialize to empty
y[1] <- 120 # initial position
speed <- -20 # initial speed
for(i in 2:N) { # as time passes...
y[i] <- y[i-1] + speed # update position
if(y[i] < -180 | y[i] > 180){ # if we hit the floor or ceil
speed <- -1*speed # bounce
}
}
plot(y)