Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
183_notes:modeling_with_vpython [2021/02/18 21:17] – [Modeling Motion with VPython] stumptyl | 183_notes:modeling_with_vpython [2022/12/01 19:39] (current) – valen176 | ||
---|---|---|---|
Line 7: | Line 7: | ||
==== Lecture Video ==== | ==== Lecture Video ==== | ||
- | {{youtube> | + | {{youtube> |
Line 16: | Line 16: | ||
- **Objects** - Each program that you write is modeling the motion of some physical objects. So you will need to set up and place those objects in the scene. A big list of objects is [[http:// | - **Objects** - Each program that you write is modeling the motion of some physical objects. So you will need to set up and place those objects in the scene. A big list of objects is [[http:// | ||
- **Parameters & Initial Conditions** - Each program will have associated physical quantities for one or more of the objects in the scene. These might be the object' | - **Parameters & Initial Conditions** - Each program will have associated physical quantities for one or more of the objects in the scene. These might be the object' | ||
- | - **Time conditions** - The initial time and time step are needed in each program. The time step is particularly important because it controls how often the calculations occur. Typically, [[183_notes: | + | - **Time conditions** - The initial time and time step are needed in each program. The time step is particularly important because it controls how often the calculations occur. Typically, [[183_notes: |
- **Calculation loop** - Your job in mechanics is to predict or explain the motion of systems and the calculation loop is where that happens. In the loop is where the [[183_notes: | - **Calculation loop** - Your job in mechanics is to predict or explain the motion of systems and the calculation loop is where that happens. In the loop is where the [[183_notes: | ||
* [[183_notes: | * [[183_notes: | ||
Line 22: | Line 22: | ||
* [[183_notes: | * [[183_notes: | ||
- | <code python fancartModel.py> | + | Note that in this example, the cart was moving at constant velocity, so we didn't need to do much step 4 above. In future weeks, there will be examples of how to use Glowscript to model motion when there is nonzero net force. |
- | from visual import * | + | |
- | from physutil import * | + | |
- | #Set up windows | + | <code python videoexample.py> |
- | scene.width = 1024 | + | Web VPython 3.2 |
- | scene.height = 768 | + | |
- | #Objects | + | # object setup |
- | track = box(pos=vector(0,0,0), size=vector(10,0.1,1), color=color.white) | + | road = box(pos = vec(0,0,0), size = vec(10,0.5,1)) |
- | fancart | + | cart = box(pos = vec(-4,0.5,0), size = vec(1,1,0.9), color = color.red, velocity |
- | fancartMotionMap | + | |
- | #Parameters | + | # parameters |
- | fancart.mass = 0.3 | + | cart.velocity |
- | fancart.p = vector(0.15,0,0) | + | |
- | #Time and time step | + | # time setup |
- | dt = 0.5 | + | |
t = 0 | t = 0 | ||
+ | dt = 0.01 | ||
+ | tf = 2 | ||
- | #Calculation | + | # loop to do physics |
- | while t < 10: | + | while cart.pos.x |
- | + | rate(100) | |
- | rate(25) | + | |
- | + | | |
- | | + | |
- | + | ||
- | fancart.p = fancart.p + Ffan*dt | + | |
- | fancart.pos = fancart.pos + (fancart.p/ | + | |
- | | + | |
t = t + dt | t = t + dt | ||
- | | + | print(' |
</ | </ |