Activities/Turtle Art: Difference between revisions

Line 271: Line 271:
These blocks are used to control the movements of the turtle.
These blocks are used to control the movements of the turtle.


* clean: clear the screen and position the turtle in the center of the screen, pen down, color red, heading 0
* forward: move turtle forward
* forward: move turtle forward
* back: move turtle backward
* back: move turtle backward
* show: draw text or display media object from the Journal
* clean: clear the screen and position the turtle in the center of the screen, pen down, color red, heading 0
* left: rotate turtle counterclockwise
* left: rotate turtle counterclockwise
* right: rotate turtle clockwise
* right: rotate turtle clockwise
* seth: set turtle heading
* arc: move turtle along an arc
* set xy: set turtle x,y position (0,0) is the center of the screen
* set xy: set turtle x,y position (0,0) is the center of the screen
* heading: holds current heading value of the turtle (can be used in place of a number block)
* seth: set turtle heading  
* xcor: holds current x-coordinate value of the turtle (can be used in place of a number block)  
* xcor: holds current x-coordinate value of the turtle (can be used in place of a number block)  
* ycor: holds current y-coordinate value of the turtle (can be used in place of a number block)
* ycor: holds current y-coordinate value of the turtle (can be used in place of a number block)
* set scale: sets the scale of images displayed with show block
* heading: holds current heading value of the turtle (can be used in place of a number block)
* arc: move turtle along an arc
 
Only available in Turtle Blocks:
* left: holds current x-coordinate value of the left edge of the screen (can be used in place of a number block)
* top: holds current y-coordinate value of the top edge of the screen (can be used in place of a number block)
* right: holds current x-coordinate value of the right edge of the screen (can be used in place of a number block)
* bottom: holds current y-coordinate value of the bottom edge of the screen (can be used in place of a number block)


====Pen Palette====
====Pen Palette====
Line 301: Line 293:
* fill screen: fill the screen with a color/shade and reposition the turtle in the center of the screen
* fill screen: fill the screen with a color/shade and reposition the turtle in the center of the screen
* pen size: width of the line drawn by the turtle (can be used in place of a number block)
* pen size: width of the line drawn by the turtle (can be used in place of a number block)
* set text size: scales the text drawn by the show block (found on the Turtle palette)
* set color: sets the pen color
* set shade: sets the pen shade
* color: current pen color (can be used in place of a number block)
* shade: current pen shade (can be used in place of a number block)
* set gray: sets the gray-level of the pen (Only available in Turtle Blocks)
* gray: current pen gray level (can be used in place of a number block) (Only available in Turtle Blocks)
* start fill: starts a filled polygon (straight sides, not arcs)
* start fill: starts a filled polygon (straight sides, not arcs)
* end fill: ends a fill polygon (straight sides, not arcs)
* end fill: ends a fill polygon (straight sides, not arcs)
Line 315: Line 300:


These blocks can be used with the set-pen-color block in place of a number block.
These blocks can be used with the set-pen-color block in place of a number block.
* set color: sets the pen color
* set shade: sets the pen shade
* set gray: sets the gray-level of the pen (Only available in Turtle Blocks)
* color: current pen color (can be used in place of a number block)
* shade: current pen shade (can be used in place of a number block)
* gray: current pen gray level (can be used in place of a number block) (Only available in Turtle Blocks)


====Numbers Palette====
====Numbers Palette====
Line 358: Line 349:
These blocks are for defining variables and subroutines.
These blocks are for defining variables and subroutines.


* action 1: top of action 1 stack (Only available with Turtle Blocks)
* start: connects action to toolbar 'Run' button
* action 1: execute action 1 stack (Only available with Turtle Blocks)
* action 2: top of action 2 stack (Only available with Turtle Blocks)
* action 2: execute action 2 stack (Only available with Turtle Blocks)
* action: top of named action stack
* action: execute named action stack
* store in box 1: store a number, string, or media object in box 1 (Only available with Turtle Blocks)
* store in box 1: store a number, string, or media object in box 1 (Only available with Turtle Blocks)
* store in box 2: store a number, string, or media object in box 2 (Only available with Turtle Blocks)
* store in box 2: store a number, string, or media object in box 2 (Only available with Turtle Blocks)
Line 371: Line 357:
* box: current value of named box (can be used in place of a number block)
* box: current value of named box (can be used in place of a number block)
* store in: store a number, string, or media object in a named box
* store in: store a number, string, or media object in a named box
* start: connects action to toolbar 'Run' button
* action: top of named action stack
* action 1: top of action 1 stack (Only available with Turtle Blocks)
* action 2: top of action 2 stack (Only available with Turtle Blocks)
* action: execute named action stack
* action 2: execute action 2 stack (Only available with Turtle Blocks)
* action 1: execute action 1 stack (Only available with Turtle Blocks)


====Media Palette====
====Media Palette====
Line 377: Line 368:


These are a collection of blocks used for displaying media objects, such as images from the Journal.
These are a collection of blocks used for displaying media objects, such as images from the Journal.
* journal: Sugar Journal media object (used with show block) (also available in Turtle Art)
* audio: Sugar Journal media object (used with show block)
* video: Sugar Journal media object (used with show block)
* description: Sugar Journal description field (used with show block)
* text: text string (used with show block; also used with box and action blocks)
* show: draw text or display media object from the Journal
* set scale: sets the scale of images displayed with show block
* save picture: save the canvas to the Sugar Journal as a .png image (note: saves the canvas as displayed)
* save SVG: save turtle graphics to the Sugar Journal as a .svg image (note: only saves the changes to the canvas in the current execution run)
* scale: sets scale for show block (100% is full-screen)
* wait for media: used to pause program while audio or video file plays


====Sensors Palette====
====Sensors Palette====
Line 385: Line 388:
* read pixel: push the RGB value of the pixel under the turtle onto the FILO (blue is first, red is last)
* read pixel: push the RGB value of the pixel under the turtle onto the FILO (blue is first, red is last)
* turtle sees: the "palette color" of the pixel under the turtle
* turtle sees: the "palette color" of the pixel under the turtle
* time: number of seconds since program began
* sound: raw data from microphone ranging -32000 to 32000
* sound: raw data from microphone ranging -32000 to 32000
* volume: ranging 0 to 32000
* volume (loudness): ranging 0 to 32000
* pitch: the resolution is +-8Hz  
* pitch: the resolution is +-8Hz
* brightness: average luminance seen through camera
* camera: grab image from camera


The OLPC XO can measure external inputs with its microphone jack:
The OLPC XO can measure external inputs with its microphone jack:
Line 403: Line 409:


* push: push value onto FILO (first-in last-out) heap
* push: push value onto FILO (first-in last-out) heap
* pop: pop value off of the FILO (can be used in place of a number block)
* show heap: show FILO in status block
* show heap: show FILO in status block
* empty heap: empty the FILO
* empty heap: empty the FILO
* pop: pop value off of the FILO (can be used in place of a number block)
* print: print value in status block (also available in Turtle Art)
* comment: program comment (displayed in "walk" mode)
* Python: a [[Activities/TurtleArt-0.88#Python_function_block|programmable block]] (can be used in place of a number block)
* Python: a [[Activities/TurtleArt-0.88#Python_function_block|programmable block]] (can be used in place of a number block)
:: add your own math equation in the block, e.g., sin(x); This block is expandable to support up to three variables, e.g. f(x,y,z)
:: add your own math equation in the block, e.g., sin(x); This block is expandable to support up to three variables, e.g. f(x,y,z)
* Import Python: [[Activities/TurtleArt-0.88#Python_code_block|import Python code]] from the Sugar Journal (a more general-purpose programmable block). This block accepts a single variable x, as an input or up to 3 variables as an array x[0], x[1] and x[2]
* Import Python: [[Activities/TurtleArt-0.88#Python_code_block|import Python code]] from the Sugar Journal (a more general-purpose programmable block). This block accepts a single variable x, as an input or up to 3 variables as an array x[0], x[1] and x[2]
* comment: program comment (displayed in "walk" mode)
* print: print value in status block (also available in Turtle Art)
* Cartesian: display Cartesian coordinate grid overlay
* Cartesian: display Cartesian coordinate grid overlay
* polar: display polar coordinate grid overlay
* polar: display polar coordinate grid overlay
* width: screen width (can be used in place of a number block)
* height: screen height (can be used in place of a number block)
* turtle: specify which turtle is active
* turtle: specify which turtle is active
* turtle shell: import a image from the Journal to use as the turtle's 'shell', i.e., replace the turtle with a sprite.
* turtle shell: import a image from the Journal to use as the turtle's 'shell', i.e., replace the turtle with a sprite.
Line 426: Line 430:
These blocks are used to make multimedia presentations only available in Turtle Blocks.
These blocks are used to make multimedia presentations only available in Turtle Blocks.


* journal: Sugar Journal media object (used with show block) (also available in Turtle Art)
* audio: Sugar Journal media object (used with show block)
* description: Sugar Journal description field (used with show block)
* hide blocks: hides all blocks and palettes (useful for decluttering the screen during presentations) (also available in Turtle Art)
* hide blocks: hides all blocks and palettes (useful for decluttering the screen during presentations) (also available in Turtle Art)
* show blocks: shows blocks and palettes (useful for resuming programming after a presentation)
* show blocks: shows blocks and palettes (useful for resuming programming after a presentation)
* full screen: goes into full-screen mode (hides Sugar toolbars)
* full screen: goes into full-screen mode (hides Sugar toolbars)
* save picture: save the canvas to the Sugar Journal as a .png image (note: saves the canvas as displayed)
* save SVG: save turtle graphics to the Sugar Journal as a .svg image (note: only saves the changes to the canvas in the current execution run)
* wait for media: used to pause program while audio or video file plays
* list slide: used for bulleted lists; This block is expandable, allowing you to add as many bullets as you need
* list slide: used for bulleted lists; This block is expandable, allowing you to add as many bullets as you need
* picture slides: used for picture slides (1×1, 2×2, 1×2, and 2×1)
* picture slides: used for picture slides (1×1, 2×2, 1×2, and 2×1)
Only available in Turtle Blocks:
* left: holds current x-coordinate value of the left edge of the screen (can be used in place of a number block)
* top: holds current y-coordinate value of the top edge of the screen (can be used in place of a number block)
* right: holds current x-coordinate value of the right edge of the screen (can be used in place of a number block)
* bottom: holds current y-coordinate value of the bottom edge of the screen (can be used in place of a number block)
* width: screen width (can be used in place of a number block)
* height: screen height (can be used in place of a number block)
::Note: The slide blocks expand into stacks that can be edited for customized presentations.
::Note: The slide blocks expand into stacks that can be edited for customized presentations.