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 05:40]
wellerd [Programmer Logic]
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 x-y data points as a 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>​
 +MyGraph1 = graph(title='​Height vs Time', xtitle='​Time (s)', ytitle='​Height (m)', fast=False) #Name our graph and set some features
 +HeightGraph = gcurve(color=color.red,​ label='​Height'​) # Specifies a name for the data-set that we will be plotting
  
 +Cart=box(pos=vec(0,​0,​0),​ size=vec(1,​1,​1),​color=color.magenta)
 +t=0
 +dt=1
 +while True:
 +    rate(100)
 +    Cart.pos=Cart.pos+vec(0,​1,​0)*dt
 +        ​
 +    # 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
 +</​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>​
  
 ==== Mathematics ==== ==== Mathematics ====
  • summer_2019/glowscript_tips.1565156423.txt.gz
  • Last modified: 2019/08/07 05:40
  • by wellerd