This is an old revision of the document!


Friction Activity

Here is a link to the google doc where you can find more details on the activity: GISD Workday Activity

Below we have provided some snippets of code you can use by copying into your own glowscript window, modifying the code, and running the program. Any line of code with a # in front of it is simply a comment (or an editor's note) that defines what the line will make the computer do.

Objects

Here is some code you can use and modify to create objects like blocks and platforms.

#Create a box object
MyBox = box(pos=vector(0,0,0), length=1, height=1, width=1, color=color.red)

Motion

Here is some code you can repurpose to define vectors and variables.

#Define a velocity vector
v = vector(3,0,0)

#Define the time variables (initial time, time-step, final time) for the while loop
t = 0
dt = 0.01
tf = 2

Here is some code you can repurpose to add animations to your code (notice the indentation of lines below the while line).

#While loop to iterate over time until we reach the final time
while t < tf:
    #Rate keeps animation slow enough to view
    rate(100) 

    #Position update step to predict location of box after a time-step dt base on v
    MyBox.pos = MyBox.pos + v*dt
    
    #Update the time to go on to the next time-step after the position update
    t = t + dt

Physics

Here is some code you can repurpose to make objects slow down using friction (after defining some variables and calculations).

#While loop to iterate over time
while t < tf:
    rate(100) #Keeps animation slow enough to view
    
    #Velocity update step to predict velocity of box after a time-step dt
    v = v + a*dt
    
    #Position update step to predict location of box after a time-step dt
    MyBox.pos = MyBox.pos + v*dt
    
    t = t + dt #Update the time to go on to the next time-step after the position update

Graphing

Here is some code you can use to graph physical quantities in real-time with the animation, such as kinetic energy.

GlowScript 2.9 VPython
#This snippet of code will plot kinetic energy in a while loop

#Assign MyBox a velocity, acceleration, and mass
Velocity = vector(5,0,0)
Acceleration = vector(0.5,0,0)
Mass = 50

#Set up the time variables for the while loop
t = 0
dt = 0.01
tf = 2

#Create graph object
Kgraph = gcurve(color=color.red)

#While loop to iterate over time
while t < tf:
    rate(100) #Keeps animation slow enough to view
    
    #Position update step to predict location of box after a time-step dt
    Velocity = Velocity + Acceleration*dt
    
    #Calculate kinetic energy at this time
    K = 0.5*Mass*mag(Velocity)**2
    
    #Add a data point to our graph for the kinetic energy at time t
    Kgraph.plot(t,K)
    
    t = t + dt #Update the time to go on to the next time-step after the position update
  • 2020/genesee_friction_activity_snippets.1581490074.txt.gz
  • Last modified: 2020/02/12 06:47
  • by wellerd