Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
repository:beating_the_train [2020/02/27 22:09] porcaro1 [Answer Key] |
repository:beating_the_train [2021/02/18 19:09] porcaro1 [Activity Description] |
||
---|---|---|---|
Line 14: | Line 14: | ||
===Code Manipulation=== | ===Code Manipulation=== | ||
* Modify existing code | * Modify existing code | ||
- | * [[https://www.glowscript.org/#/user/kstedman/folder/Public/program/CollidingCars|Colliding Crates]] | + | * [[colliding_crates|Colliding Crates]] |
---- | ---- | ||
====Activity==== | ====Activity==== | ||
===Handout=== | ===Handout=== | ||
- | **Beating the Train** | + | {{ :repository:beating_the_train1.png?nolink&600|}} |
+ | **Beating the Train**\\ | ||
A train is approaching a crossing, traveling at a constant velocity if 15 m/s to the east. You are on an afternoon ride on your motorcycle when you get stopped at a stoplight 50 m south of the crossing. At the instant the light turns green, the train is 90 m west of the crossing. Your mass, including the motorcycle, is 400 kg | A train is approaching a crossing, traveling at a constant velocity if 15 m/s to the east. You are on an afternoon ride on your motorcycle when you get stopped at a stoplight 50 m south of the crossing. At the instant the light turns green, the train is 90 m west of the crossing. Your mass, including the motorcycle, is 400 kg | ||
Line 27: | Line 29: | ||
===Code=== | ===Code=== | ||
[[https://www.glowscript.org/#/user/kstedman/folder/Public/program/CollidingCars| Link]] | [[https://www.glowscript.org/#/user/kstedman/folder/Public/program/CollidingCars| Link]] | ||
- | <code Python [enable_line_numbers="true", highlight_lines_extra=""]> | + | <code Python [enable_line_numbers="true", highlight_lines_extra="0"]> |
GlowScript 2.7 VPython | GlowScript 2.7 VPython | ||
Line 61: | Line 63: | ||
====Answer Key==== | ====Answer Key==== | ||
===Handout=== | ===Handout=== | ||
+ | {{ :repository:beating_the_train2.png?nolink&600|}} | ||
- To find the time it will take for the train to reach the crossing, divide the distance between the train and the crossing by the velocity of the train: | - To find the time it will take for the train to reach the crossing, divide the distance between the train and the crossing by the velocity of the train: | ||
- $t=\dfrac{90\text{m}}{15\text{m/s}}=6\text{s}$ | - $t=\dfrac{90\text{m}}{15\text{m/s}}=6\text{s}$ | ||
Line 88: | Line 91: | ||
- See below | - See below | ||
===Code=== | ===Code=== | ||
+ | <code Python [enable_line_numbers="true", highlight_lines_extra="3,4,16,17,18,19,20,21,22,23"]> | ||
+ | GlowScript 2.7 VPython | ||
+ | #Creating the objects | ||
+ | train = box(pos=vector(-100,-5,0), size=vector(20,5,8), color=color.red) #I've created the crate, along with its dimensions and initial position resting on the floor | ||
+ | cycle = box(pos=vector(0,-51,0), size=vector(2,2,2), color=color.white) | ||
+ | #Setting the time interval | ||
+ | t=0 #I've set the initial time to zero. | ||
+ | dt=0.01 #I want my time interval set at 1/100th of a time unit | ||
+ | |||
+ | #Creates velocity vectors as a function of time | ||
+ | get_library('https://rawgit.com/perlatmsu/physutil/master/js/physutil.js') #The program needed to know what a motion map is defined as | ||
+ | #motionMap1 = MotionMap(crate1, tf, 5, markerScale=0.1) #I want to display 5 arrows showing the motion of the crate | ||
+ | #motionMap2 = MotionMap(crate2, tf, 5, markerScale=0.1) | ||
+ | |||
+ | #Giving the objects an initial velocity | ||
+ | trainv=vector(15,0,0) #I'm defining the constant velocity of my crate to be 75 in the x-direction(left to right) | ||
+ | cyclev=vector(0,0,0) | ||
+ | cycleacc=vec(0,2.78,0) | ||
+ | while cycle.pos.y<=10: #I want the crate to stop before it slides off the floor | ||
+ | rate(100) #This rate can speed up or slow down the replay | ||
+ | train.pos=train.pos+trainv*dt #I'm moving the crate by adding the change in position (cratev*dt) to the previous position (crate.pos) | ||
+ | cyclev=cyclev + cycleacc*dt | ||
+ | cycle.pos=cycle.pos+cyclev*dt | ||
+ | t=t+dt #I'm updating the time | ||
+ | | ||
+ | #This updates the velocity vectors | ||
+ | #motionMap1.update(t,crate1v) #This updates the motion map and display of the arrows as the crate slides across the floor | ||
+ | #motionMap2.update(t,crate2v) | ||
+ | |||
+ | #This creates the graph of the kinetic energy of the crate | ||
+ | #f1 = gcurve(color=color.blue) #Setting up a graph to show the kinetic energy of the crate as a function of time | ||
+ | #for t in arange(0, 0.94, 0.01): # Time goes from 0 to 0.94 in 0.01 time intervals | ||
+ | # f1.plot(pos=(t,crate1v.mag**2)) # plot time vs. kinetic energy of the crate </code> | ||
---- | ---- | ||
====See Also==== | ====See Also==== | ||
+ | * [[terminal_velocity | Terminal Velocity]] |