Changes

Jump to navigation Jump to search
2,865 bytes added ,  22:28, 2 March 2020
Line 24: Line 24:  
|+
 
|+
 
|valign="top"|[[Image:physics_pen.png|thumb|none|280px|Example illustrating the pen tool attached to the end of a pendulum.]]
 
|valign="top"|[[Image:physics_pen.png|thumb|none|280px|Example illustrating the pen tool attached to the end of a pendulum.]]
 +
|valign="top"|[[Image:physics-tracing.png|thumb|none|280px|Tracing multiple objects]]
 +
|+
 +
|valign="top"|[[File:TAGearTA.png|thumb|none|280px|A simple gear and motor generated in Turtle Art]]
 +
|valign="top"|[[File:TAGear.png|thumb|none|280px|rendered in Physics]]
 +
|+
 +
|valign="top"|[[File:Chain.png|thumb|none|280px|a chain generated in Turtle Art]]
 
|}
 
|}
    
== Ideas to try ==
 
== Ideas to try ==
    +
*Build a catapult to simulate Angry Birds
 
*Build a machine that sorts different sized balls in to two buckets, large and small, with no ball jams.  
 
*Build a machine that sorts different sized balls in to two buckets, large and small, with no ball jams.  
 
*A cyclic mechanism for lifting balls from the bottom of the screen to the top, again and again.
 
*A cyclic mechanism for lifting balls from the bottom of the screen to the top, again and again.
Line 92: Line 99:  
|'''Hints and tips''': Single clicking (no drag) with the circle, triangle or box tool, will add a default sized shape. Once you have used a shape tool, it remembers the last shape you made with it, a single click will add a clone of that last shape.
 
|'''Hints and tips''': Single clicking (no drag) with the circle, triangle or box tool, will add a default sized shape. Once you have used a shape tool, it remembers the last shape you made with it, a single click will add a clone of that last shape.
 
|}
 
|}
 +
 +
== Did you know? ==
 +
 +
There is a Plugin for [[Activities/TurtleArt|Turtle Blocks]] that lets you create projects for the Physics Activity:
 +
 +
[[File:Physics pallette.jpg]]
 +
 +
Use these blocks to create objects that are added to the bodylist and jointlist of a Box2d database used by the Physics Activity. Objects are positioned by the turtle x,y and colored based on the current pen attributes. From left to right:
 +
* density: set the object density (0 is light; 1 is heavy)
 +
* friction: set the object friction (0 is slippery; 1 is sticky)
 +
* bounciness: set the object restitution (0 is rigid; 1 is bouncy)
 +
* start polygon: use the current turtle x,y position to specify the first vertex of a polygon
 +
* add point: use the current turtle x,y position to add a vertex to a polygon
 +
* end polygon: use the current turtle x,y position to specify the last vertex of a polygon
 +
* end filled polygon: use the current turtle x,y position to specify the last vertex of a ''filled'' polygon
 +
: '''Note:''' The polygon must be 'normal', e.g., no crossed lines; no holes. Since Box2d does not support concave polygons, all polygons are converted to triangles (triangulation). (In Turtle Blocks, these triangles are shown by slight variations in color.)
 +
* triangle: add a triangle object at the current turtle x,y position
 +
* circle: add a circle object at the current turtle x,y position
 +
* rectangle: add a rectangle object at the current turtle x,y position
 +
* gear: add a gear object at the current turtle x,y position with the number of teeth as the argument
 +
* gear radius: returns the radius of a gear with the number of teeth as the argument (useful for positioning gears)
 +
* motor: add a motor at the current turtle x,y position (attached to the object at this position)
 +
* pin: add a pin at the current turtle x,y position (attached to the object at this position) to prevent movement
 +
* pen: add a pen at the current turtle x,y position (attached to the object at this position) to trace motion
 +
* joint: add a joint between the object at the current turtle x,y position and the object at x, y
 +
* save as Physics project: save the current bodylist and jointlist as a Physics project in the Journal
 +
'''Note:''' The current model is cleared whenever the Erase button is pressed or a Clean block is run.
 +
 +
===== Examples =====
 +
'''For Turtle Blocks versions 107 - 183'''
 +
[[File:TAgear.ta]] [[File:Gear.physics]]
 +
 +
'''For Turtle Blocks verisons 184 - '''
 +
[http://people.sugarlabs.org/walter/physics-plugin.tar.gz]
 +
 +
'''Chain'''
 +
Turtle Blocks project file: [http://people.sugarlabs.org/walter/chain.tb]
 +
 +
===Downloads===
 +
 +
[[File:Physics-plugin.tar.gz]] Physics plugin
 +
 +
[http://github.com/walterbender/physics-plugin git repository]
    
= Development =
 
= Development =
 
[[Image:PhysicsElements.png|160px|right]]
 
[[Image:PhysicsElements.png|160px|right]]
There are quite a few code layers to contend with. A regular Python Activity acts as a Sugar wrapper to Physics which is written using OLPCGames which itself wraps Pygame, Physics then uses Elements as a wrapper for Box2D.
+
There are quite a few code layers to contend with. A regular Python Activity acts as a Sugar wrapper to Physics which is written using SugarGames which itself wraps Pygame, Physics then uses Elements as a wrapper for Box2D.
    
==Video==
 
==Video==
Line 214: Line 264:     
* [http://activities.sugarlabs.org/en-US/sugar/addon/4193 Activity bundle]
 
* [http://activities.sugarlabs.org/en-US/sugar/addon/4193 Activity bundle]
* [http://git.sugarlabs.org/projects/physics GIT repository]
+
* [https://github.com/sugarlabs/physics/ GIT repository]
 
* [http://download.sugarlabs.org/sources/honey/Physics/ Source tarball]
 
* [http://download.sugarlabs.org/sources/honey/Physics/ Source tarball]
* [http://bugs.sugarlabs.org/query?component=Physics&groupdesc=1&group=resolution&col=id&col=summary&col=owner&col=type&col=status&col=priority&col=milestone&col=time&col=changetime&col=reporter&order=priority Bug tracker]
 

Navigation menu