Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
summer_2018:vpython_tips [2021/06/24 14:39]
bott123 [Common Commands]
summer_2018:vpython_tips [2021/06/24 16:02]
pwirving
Line 63: Line 63:
 print(CD) ​ #This will print out the vector (-8, 9, -8) print(CD) ​ #This will print out the vector (-8, 9, -8)
 </​code>​ </​code>​
-  ​**Graphing** - There are a few ways to graph in python, but a common method is via gcurve:+ 
 +/* 
 + 
 +There are a few ways to graph in python, but a common method is via gcurve. If the values you wish to plot are changing over time in a loop, be sure to put the plot command in the loop with them, and plot each point for each iteration of the loop.*/
 <​code>​ <​code>​
-ExampleGraph = gcurve() ​ #First, define the graph. ​+ExampleGraph = gcurve(color=color.green,​ label = 'Data Points'​)  #First, define the graph. ​
 ExampleGraph.plot([1,​2],​[3,​4],​[5,​6]) ​ #This will plot the three points listed, connected by a line. ExampleGraph.plot([1,​2],​[3,​4],​[5,​6]) ​ #This will plot the three points listed, connected by a line.
 </​code>​ </​code>​
-  ​* **MotionMaps** - MotionMaps track an object and plant arrows in trail behind the objectThe size and direction of the arrows ​is controllable,​ so it can be a useful method ​to demonstrate any vector quantity of an object, such as velocity or Force. MUST use GlowScript ​version ​2.7, 2.8, or 2.9any later versions ​will not import properly.+ 
 +*
 + 
 +  ​* **Graphing** - One method of graphing involves using physutil, which is library that needs to be importedFrom there, ​the syntax ​is similar ​to gcurve. MUST use GlowScript 2.or loweranything higher ​will not import properly.
 <​code>​ <​code>​
-get_library('​https://​cdn.rawgit.com/​PERLMSU/​physutil/​master/​js/​physutil.js'​) ​ #Imports the MotionMap ​code from its source+get_library('​https://​cdn.rawgit.com/​PERLMSU/​physutil/​master/​js/​physutil.js'​) ​ #​Imports ​physutil 
 + 
 +MassOfBall = 20 
 +SpeedOfBall = 10 
 + 
 +t=0 
 +dt=0.1 
 +tf=10 
 + 
 +ExampleGraph2 = PhysGraph(numPlots = 1)   #​Defines graph window 
 + 
 +while t < tf: 
 +    rate(50) 
 +     
 +    KineticEnergy = 0.5*MassOfBall*SpeedOfBall**2 
 +    ExampleGraph2.plot(t,​ KineticEnergy) ​  #Plot function is identical 
 +    SpeedOfBall = SpeedOfBall - 0.5 
 +     
 +    t = t+ dt 
 +</​code>​ 
 +  * **MotionMaps** - MotionMaps track an object and plant arrows in a trail behind ​the object. The size and direction of the arrows is controllable,​ so it can be a useful method to demonstrate any vector quantity of an object, such as velocity or Force. MUST use GlowScript 2.9 or lower; anything higher will not import properly. 
 +<code
 +get_library('​https://​cdn.rawgit.com/​PERLMSU/​physutil/​master/​js/​physutil.js'​) ​ #Imports physutil 
 + 
 +Moving_Sphere = sphere(pos=vector(0,​0,​0),​ radius = 0.5, color = color.cyan) ​ #The object we want to place arrows for, a cyan sphere. 
 +Sphere_velocity = vector(5,​5,​0) ​ #Let's say we want a MotionMap for the velocity of this sphere.
  
-moving_sphere ​sphere(pos=vector(0,0,0), radius ​= 0.5, color color.cyan) ​ #The object we want to plant arrows for, a cyan sphere.+Setting up time parameters for the motion 
 +t=0 
 +dt=0.
 +tf=10
  
 +#Creating the MotionMap via MotionMap(object,​ stop time, number of arrows, arrow size, arrow color, number labels on arrows or not)
 +Moving_Sphere_MotionMap = MotionMap(Moving_Sphere,​ tf, 5, markerScale=1,​ markerColor=color.orange,​ labelMarkerOrder=False)
  
 +while t < tf:
 +    rate(100)
 +    ​
 +    Moving_Sphere.pos = Moving_Sphere.pos + Sphere_velocity * dt   #​Sphere is moving according to its velocity
 +    Moving_Sphere_MotionMap.update(t,​Sphere_velocity) ​  #​MotionMap update function plots the vector as time goes by
 +    ​
 +    t = t + dt
 </​code>​ </​code>​
  • summer_2018/vpython_tips.txt
  • Last modified: 2021/06/24 16:03
  • by pwirving