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
summer_2019:glowscript_tips [2019/08/07 06:01]
wellerd
summer_2019:glowscript_tips [2019/08/13 00:27] (current)
wellerd
Line 23: Line 23:
   * **Printing values and text** - The ''​print()''​ command will output any value called from within the parentheses. You can print variables and attributes from your code as a way of checking what numbers the simulation has calculated. The following code creates a conical object named ''​IceCreamCone'',​ and the ''​print(IceCreamCone.size.x)''​ command prints the x-component of the object'​s size attribute. If you want to print text, it must be transformed into a "​string"​ of letters by using quotation marks within the ''​print()''​ command.   * **Printing values and text** - The ''​print()''​ command will output any value called from within the parentheses. You can print variables and attributes from your code as a way of checking what numbers the simulation has calculated. The following code creates a conical object named ''​IceCreamCone'',​ and the ''​print(IceCreamCone.size.x)''​ command prints the x-component of the object'​s size attribute. If you want to print text, it must be transformed into a "​string"​ of letters by using quotation marks within the ''​print()''​ command.
 <​code>​ <​code>​
-IceCreamCone=cone(pos=vec(10,20,0), axis=vec(5,0,0), size=vec(12,3,3+IceCreamCone=cone(pos=vec(0,0,0), axis=vec(0,-5,0), size=vec(3,1,1)
-print(IceCreamCone.size.x)+print("Ice cream cone length:", ​IceCreamCone.size.x)
 print("​Two scoops of butter pecan please!"​) print("​Two scoops of butter pecan please!"​)
 </​code>​ </​code>​
  
 ==== Graphing ==== ==== Graphing ====
-  * **Graphs** - the most convenient graphs in Glowscript utilize the ''​gcurve''​ command which plots a series ​of connected ​data points. In the following code, ''​MyGraph1''​ is needed to set up the graphing window with its various features. The line with ''​HeightGraph''​ names a particular data-set that will be represented ​as a series of connected data points. Lastly, within the while loop, the ''​HeightGraph.plot''​ command is used to ''​plot''​ data points ​along time for our specified data-set.+  * **Graphs** - the most convenient graphs in Glowscript utilize the ''​gcurve''​ command which plots x-y data points as scatterplot and connects the points with a line. In general, Three lines of code are needed to graph in Glowscript... 
 +  - A line above the while loop which creates the axes and titles of the graph (line 3 in the picture below). 
 +  - A line above the while loop which tells the program what you are about to graph (line 4 in the picture below). 
 +  - A line inside of the while loop which plots the respective x-y data point for that iteration of the while loop (line 19 in the picture below). 
 +{{:​summer_2019:​python-trinket-physics.png?​400|}} 
 + 
 +  * **Another graphing example** - In the following code, ''​MyGraph1''​ is needed to set up the graphing window with its various ​axes titles, minimum and maximum boundaries, and other features. The line with ''​HeightGraph''​ names a particular data-set that will be represented ​on our scatterplot. Lastly, ​**within the while loop**, the ''​HeightGraph.plot(t,​Cart.pos.y)''​ command is used to ''​plot''​ data points for our specified data-set ​(''​t''​ will be on the x-axis and ''​Cart.pos.y''​ will be on the y-axis).
 <​code>​ <​code>​
 MyGraph1 = graph(title='​Height vs Time', xtitle='​Time (s)', ytitle='​Height (m)', fast=False) #Name our graph and set some features MyGraph1 = graph(title='​Height vs Time', xtitle='​Time (s)', ytitle='​Height (m)', fast=False) #Name our graph and set some features
Line 39: Line 45:
 while True: while True:
     rate(100)     rate(100)
-    Cart.pos=Cart.pos+vec(0,​1,​0)*dt ​#Update Cart position based on velocity+    Cart.pos=Cart.pos+vec(0,​1,​0)*dt
         ​         ​
-    HeightGraph.plot(t,​Cart.pos.y) # This line plots each data point after every iteration+    ​# This line plots data points as the program iterates 
 +    ​HeightGraph.plot(t,​Cart.pos.y) # t will be on the x-axis and Cart.pos.y will be on the y-axis
     ​     ​
     t=t+dt     t=t+dt
 +</​code>​
 +
 +==== Programmer Logic ====
 +* **If-then statements** - these act as triggers to start some new event once a condition in met. For example, it we have an object moving to the right with ''​particle.velocity=vec(1,​0,​0)''​ and we want it to move in the opposite direction after 10 seconds, then you might use the following code.
 +<​code>​
 +Particle = sphere(pos=vec(0,​0,​0))
 +Particle.velocity=vec(1,​0,​0)
 +
 +t=0
 +dt=1
 +tf=20
 +
 +while t >= tf:
 +  rate(100)
 +  Particle.pos=Particle.pos+Particle.velocity*dt
 +
 +  if t >= 10:
 +    Particle.velocity=vec(-1,​0,​0)
 +
 +  t=t+dt
 </​code>​ </​code>​
  
  • summer_2019/glowscript_tips.1565157674.txt.gz
  • Last modified: 2019/08/07 06:01
  • by wellerd