Changes

Jump to navigation Jump to search
no edit summary
Line 1: Line 1: −
<noinclude>{{Translations | [[Activities/Turtle Art|english]] &#124; [[Activities/Turtle Art/lang-es|español]] &#124;}}</noinclude>
+
<noinclude>{{Translations | [[Activities/Turtle Art|english]] &#124; [[Activities/Turtle Art/lang-es|español]] &#124;}}
<noinclude>{{GoogleTrans-en}}</noinclude>
+
[[Category:Activities|Turtle Art]]</noinclude>
{{TOCright}}
+
 
 
==Where to get Turtle Art==
 
==Where to get Turtle Art==
    
[[Image:Activity-turtleart.png]]
 
[[Image:Activity-turtleart.png]]
 +
 +
'''As of version 83, major changes have been made, see [[Activities/Turtle Art]] for a description of the current version of Turtle Art. This page has been retained for historical reasons for versions prior to version 83.'''
    
Turtle Art is a [[Taxonomy#Fructose:_The_set_of_demonstration_activities|fructose module]], so it is included as part of the standard Sugar (sucrose) distribution.
 
Turtle Art is a [[Taxonomy#Fructose:_The_set_of_demonstration_activities|fructose module]], so it is included as part of the standard Sugar (sucrose) distribution.
   −
[http://activities.sugarlabs.org/en-US/sugar/downloads/latest/4027 Version 61] | [http://activities.sugarlabs.org/en-US/sugar/addon/4027 addons] | [http://git.sugarlabs.org/projects/turtleart Source] | [http://en.flossmanuals.net/turtleart FLOSS Manual] | [http://wiki.laptop.org/go/TurtleArt laptop.org Turtle Art page] | [http://wiki.laptop.org/go/Turtle_Art_student_guide Student Guide] | [http://www.reducativa.com/wiki/index.php?title=Proyecto_OLPC_-_Plan_Ceibal#Turtle_Art activity guides (es)] [http://ceibalpuertosauce.blogspot.com/2009/06/tortugarte.html mas TortugaArte] | [[Activities/TAExperimental|Experimental fork]] | [http://www.turtleart.org/ Turtle Art Gallery] | [[0.84/Turtle Art|0.84 release notes]] | [http://www.dailymotion.com/sugarlabs/video/15708788 Introductory video]
+
[http://activities.sugarlabs.org/en-US/sugar/addon/4027 Version 82] | [http://activities.sugarlabs.org/en-US/sugar/addon/4027 addons] | [http://git.sugarlabs.org/projects/turtleart Source] | [http://en.flossmanuals.net/turtleart FLOSS Manual] | [http://wiki.laptop.org/go/TurtleArt laptop.org Turtle Art page] | [http://wiki.laptop.org/go/Turtle_Art_student_guide Student Guide] | [http://www.reducativa.com/wiki/index.php?title=Proyecto_OLPC_-_Plan_Ceibal#Turtle_Art activity guides (es)] [http://ceibalpuertosauce.blogspot.com/2009/06/tortugarte.html mas TortugaArte] | [[Activities/Turtle Art|Experimental fork]] | [http://www.turtleart.org/ Turtle Art Gallery] | [[0.86/Turtle Art|0.86 release notes]] | [http://www.dailymotion.com/sugarlabs/video/15708788 Introductory video] | [http://bugs.sugarlabs.org/query?component=Turtleart&col=id&col=summary&col=component&col=type&col=status&col=priority&col=milestone&col=time&col=changetime&order=priority Sugar Labs tickets] | [http://bugs.sugarlabs.org/query?component=Turtleart&col=id&col=summary&col=component&col=type&col=status&col=priority&col=milestone&col=time&col=changetime&order=priority OLPC tickets] | [http://neoparaiso.com/logo/galeria-graficos-de-tortuga.html Another Turtle Art gallery]
    
'''Note:''' The first time you run Turtle Art, it takes about 60 seconds to load. You'll see a mostly blank screen after the initial flashing of the icon. Subsequently, the loading time is ~5 seconds (on an OLPC-XO-1 laptop).
 
'''Note:''' The first time you run Turtle Art, it takes about 60 seconds to load. You'll see a mostly blank screen after the initial flashing of the icon. Subsequently, the loading time is ~5 seconds (on an OLPC-XO-1 laptop).
 
=== i18n ===
 
=== i18n ===
   −
Turtle Art currently has support for: de, el, en, es, fi, fr, it, mn, nl, pt, ru, sl, sv, tr, vi, and zh_TW
+
Turtle Art currently has support for: de, el, en, es, fi, fr, it, mn, nl, pt, ru, sl, sv, ta, tr, vi, and zh_TW
    
(See [https://dev.laptop.org/translate/ our Pootle server] for details about how to translate Turtle Art into your language.)
 
(See [https://dev.laptop.org/translate/ our Pootle server] for details about how to translate Turtle Art into your language.)
Line 21: Line 23:  
Turtle Art is an activity with a Logo-inspired graphical "turtle" that draws colorful art based on [http://wiki.laptop.org/go/Scratch Scratch]-like snap-together visual programming elements.
 
Turtle Art is an activity with a Logo-inspired graphical "turtle" that draws colorful art based on [http://wiki.laptop.org/go/Scratch Scratch]-like snap-together visual programming elements.
   −
Turtle Art is intended to be a stepping stone to  the Logo programming language, but there are many restrictions compared to Logo. (Only numeric global variables and stack items are available, no lists or other data-structures. The conditionals and some of the functions only take constants or variables, not expressions. Limited screen real-estate makes building large programs unfeasible.) However, you can export your Turtle Art creations to [[#Exporting to Berkeley Logo|Berkeley Logo]]. The [[Activities/TAExperimental|experimental version of Turtle Art]] also has a (limited) facility for sensor input, so, for example, you can move the Turtle based upon sound volume or pitch.
+
Turtle Art is intended to be a stepping stone to  the Logo programming language, but there are many restrictions compared to Logo. (Only numeric global variables and stack items are available, no lists or other data-structures. The conditionals and some of the functions only take constants or variables, not expressions. Limited screen real-estate makes building large programs unfeasible.) However, you can export your Turtle Art creations to [[#Exporting to Berkeley Logo|Berkeley Logo]]. The [[Activities/Turtle Art|experimental version of Turtle Art]] also has a (limited) facility for sensor input, so, for example, you can move the Turtle based upon sound volume or pitch.
    
A [[Activities/Turtle Art/Templates|portfolio feature]] lets you use Turtle Art to create multimedia slide shows from material retrieved from your Journal. The basic idea is to import images (and eventually movies, audio, and text files) into slide templates, not unlike Powerpoint, and then show a presentation by stepping through them. The portfolio includes the typical major functions of presentation software: an editor that allows text to be inserted and formatted (this is largely incomplete), a method for inserting images (from the Journal), and a slide-show system to display the content. What makes it a bit different than tools such as Powerpoint is that you can program your slides using Turtle Art blocks. Turtle Art also has an export-to-HTML function so that presentations can be viewed outside of the Sugar environment.
 
A [[Activities/Turtle Art/Templates|portfolio feature]] lets you use Turtle Art to create multimedia slide shows from material retrieved from your Journal. The basic idea is to import images (and eventually movies, audio, and text files) into slide templates, not unlike Powerpoint, and then show a presentation by stepping through them. The portfolio includes the typical major functions of presentation software: an editor that allows text to be inserted and formatted (this is largely incomplete), a method for inserting images (from the Journal), and a slide-show system to display the content. What makes it a bit different than tools such as Powerpoint is that you can program your slides using Turtle Art blocks. Turtle Art also has an export-to-HTML function so that presentations can be viewed outside of the Sugar environment.
Line 58: Line 60:  
====presentations====
 
====presentations====
 
[[Image:Portfolio14.png|400px]] [[Image:Portfolio10.png|400px]]
 
[[Image:Portfolio14.png|400px]] [[Image:Portfolio10.png|400px]]
 +
 +
[https://sites.google.com/site/godiard/TurtleArt.ppt?attredirects=0&d=1 Presentation on using Turtle Art] (in Spanish)
    
====games====
 
====games====
Line 93: Line 97:     
==Getting Started==
 
==Getting Started==
 +
    
[[Image:TA-1.png|400px]]
 
[[Image:TA-1.png|400px]]
Line 99: Line 104:     
You add blocks to your program by clicking on or dragging them from the palette to the main area. You can delete a block by dragging it back onto the palette. Click anywhere on a "stack" of blocks to start executing that stack or by clicking in the Rabbit (fast) or Turtle (slow) buttons on the Project Toolbar.
 
You add blocks to your program by clicking on or dragging them from the palette to the main area. You can delete a block by dragging it back onto the palette. Click anywhere on a "stack" of blocks to start executing that stack or by clicking in the Rabbit (fast) or Turtle (slow) buttons on the Project Toolbar.
 +
===tips===
 +
Did you know that you can copy/paste stacks to/from the clipboard? You type Ctrl-C to copy whatever stack is under the cursor to the clipboard. Ctrl-V will paste from the clipboard onto whatever TA project you have open. Try pasting this code into your Turtle Art project.
 +
 +
:[[0, "hat2", 880, 80, [null, 1]], [1, "forever", 892, 130, [0, 2, null]], [2, "kbinput", 973, 144, [1, 3]], [3, "if", 973, 198, [2, 4, 7, 8]], [4, "greater", 1053, 208, [3, 5, 6, null]], [5, "keyboard", 1085, 217, [4, null]], [6, ["number", "0"], 1234, 217, [4, null]], [7, "stopstack", 1068, 272, [3, null]], [8, "wait", 973, 313, [3, 9, null]], [9, ["number", "0.5"], 1047, 322, [8, null]]]
 +
 
===Video Tutorials===
 
===Video Tutorials===
 
I know there are a few but they are not categorized on this page... we'll make that happen soon. Help would be appreciated.
 
I know there are a few but they are not categorized on this page... we'll make that happen soon. Help would be appreciated.
Line 164: Line 174:     
==Quick Tutorial on using the portfolio features==
 
==Quick Tutorial on using the portfolio features==
[[Image:Portfolio1.png|thumb|left|Start by selecting a slide template from the palette.]]
+
[[Image:Portfolio1.png|thumb|left|200px|Start by selecting a slide template from the palette.]]
[[Image:Portfolio2a.png|thumb|left|Click on the Journal icon to initiate a search for slide content.]]
+
[[Image:Portfolio2a.png|thumb|left|200px|Click on the Journal icon to initiate a search for slide content.]]
[[Image:Portfolio3.png|thumb|left|Select a journal object.]]
+
[[Image:Portfolio3.png|thumb|left|200px|Select a journal object.]]
[[Image:Journal1.png|thumb|left|The Journal preview and description will be used.]]
+
[[Image:Journal1.png|thumb|left|200px|The Journal preview and description will be used.]]
[[Image:Portfolio4.png|thumb|left|A thumbnail will appear in the template.]]
+
[[Image:Portfolio4.png|thumb|left|200px|A thumbnail will appear in the template.]]
[[Image:Portfolio5.png|thumb|left|Click on the slide template to view the slide.]]
+
[[Image:Portfolio5.png|thumb|left|200px|Click on the slide template to view the slide.]]
[[Image:Portfolio6.png|thumb|left|Click on the Hide Blocks button on the toolbar to hide any blocks that are covering your slide.]]
+
[[Image:Portfolio6.png|thumb|left|200px|Click on the Hide Blocks button on the toolbar to hide any blocks that are covering your slide.]]
[[Image:Portfolio7.png|thumb|left|Congratulations. You've made a slide.]]
+
[[Image:Portfolio7.png|thumb|left|200px|Congratulations. You've made a slide.]]
[[Image:Portfolio8.png|thumb|left|Try using some of the other templates.]]
+
[[Image:Portfolio8.png|thumb|left|200px|Try using some of the other templates.]]
[[Image:Portfolio10.png|thumb|left|View them by clicking on them (you may want to use the Eraser button first).]]
+
[[Image:Portfolio10.png|thumb|left|200px|View them by clicking on them (you may want to use the Eraser button first).]]
[[Image:Portfolio11.png|thumb|left|You can program a simple slide show by making a stack: clear the screen; show Slide 1; wait; clear the screen; show Slide 2.]]
+
[[Image:Portfolio11.png|thumb|left|200px|You can program a simple slide show by making a stack: clear the screen; show Slide 1; wait; clear the screen; show Slide 2.]]
[[Image:Portfolio12.png|thumb|left|You can also program stacks for your slide decorations and slide transitions.]]
+
[[Image:Portfolio12.png|thumb|left|200px|You can also program stacks for your slide decorations and slide transitions.]]
[[Image:Portfolio13.png|thumb|left|In this example, we draw a rule under the title of each slide and poll for keyboard input to transition between slides.]]
+
[[Image:Portfolio13.png|thumb|left|200px|In this example, we draw a rule under the title of each slide and poll for keyboard input to transition between slides.]]
[[Image:Portfolio14.png|thumb|left|Run your slide show by clicking on the Run Button (rabbit) on the toolbar.]]
+
[[Image:Portfolio14.png|thumb|left|200px|Run your slide show by clicking on the Run Button (rabbit) on the toolbar.]]
[[Image:Portfolio15.png|thumb|left|In this example, we use microphone input to transition between slides.]]
+
[[Image:Portfolio15.png|thumb|left|200px|In this example, we use microphone input to transition between slides.]]
[[Image:Lock-block.png|thumb|left|Using "lock blocks" to extend long stacks.]]
+
 
    
<div class="visualClear"></div>
 
<div class="visualClear"></div>
    
A video of the portfolio basics is available [http://www.dailymotion.com/user/sugarlabs/video/x9cpzd_turtleartportfoliobasics_creation here].
 
A video of the portfolio basics is available [http://www.dailymotion.com/user/sugarlabs/video/x9cpzd_turtleartportfoliobasics_creation here].
 +
 +
A PDF of a Turtle Art portfolio presentation can be downloaded [[File:Desktop-Summit.pdf|here]].
    
==Sharing==
 
==Sharing==
Line 308: Line 320:     
  def myblock(lc,x):
 
  def myblock(lc,x):
# draw a dotted line of length x
+
    # draw a dotted line of length x
 
     # make sure x is a number
 
     # make sure x is a number
 
     if type(x) != int and type(x) != float:
 
     if type(x) != int and type(x) != float:
Line 331: Line 343:     
  def myblock(lc,x):
 
  def myblock(lc,x):
# push an uppercase version of a string onto the heap
+
    # push an uppercase version of a string onto the heap
 
     if type(x) != str:
 
     if type(x) != str:
 
         X = str(x).upper()
 
         X = str(x).upper()
Line 341: Line 353:     
  def myblock(lc,x):
 
  def myblock(lc,x):
# push hours, minutes, seconds onto the heap
+
    # push hours, minutes, seconds onto the heap
# use three pop blocks to retrieve the values
+
    # use three pop blocks to retrieve the values
# remember: the heap is a FILO (first in, last out)
+
    # remember: the heap is a FILO (first in, last out)
# the first value you will pop will be seconds
+
    # the first value you will pop will be seconds
 
     lc.heap.append(localtime().tm_hour)
 
     lc.heap.append(localtime().tm_hour)
 
     lc.heap.append(localtime().tm_min)
 
     lc.heap.append(localtime().tm_min)
Line 351: Line 363:     
  def myblock(lc,x):
 
  def myblock(lc,x):
# add a third dimension (gray) to the color model
+
    # add a third dimension (gray) to the color model
 
     # calculate the value (brightness) of the current color
 
     # calculate the value (brightness) of the current color
 
     val = 0.3 * lc.tw.rgb[0] + 0.6 * lc.tw.rgb[1] + 0.1 * lc.tw.rgb[2]
 
     val = 0.3 * lc.tw.rgb[0] + 0.6 * lc.tw.rgb[1] + 0.1 * lc.tw.rgb[2]
Line 363: Line 375:  
     # reallocate current color
 
     # reallocate current color
 
     lc.tw.fgcolor = lc.tw.cm.alloc_color(r<<8,g<<8,b<<8)
 
     lc.tw.fgcolor = lc.tw.cm.alloc_color(r<<8,g<<8,b<<8)
 +
return
 +
 +
def myblock(lc,x)
 +
    # save a screenshot in the journal
 +
    lc.tw.activity._do_saveimage_cb(lc.tw.activity)
 
  return
 
  return
   Line 368: Line 385:     
Tony Forster has written a number of blog posts about his experiments with Turtle Art: [http://tonyforster.blogspot.com/2009/02/using-python-blocks-in-turtleart.html Using Python blocks in TurtleArt] [http://tonyforster.blogspot.com/2009/02/turtle-lander.html Turtle Lander] [http://tonyforster.blogspot.com/2009/01/reprogramming-sugar.html Reprogramming Sugar]
 
Tony Forster has written a number of blog posts about his experiments with Turtle Art: [http://tonyforster.blogspot.com/2009/02/using-python-blocks-in-turtleart.html Using Python blocks in TurtleArt] [http://tonyforster.blogspot.com/2009/02/turtle-lander.html Turtle Lander] [http://tonyforster.blogspot.com/2009/01/reprogramming-sugar.html Reprogramming Sugar]
 +
[http://tonyforster.blogspot.com/2009/12/turtle-random.html Turtle random]
 +
[http://tonyforster.blogspot.com/2009/12/turtle-random-v2.html Turtle random V2]
 +
[http://tonyforster.blogspot.com/2009/12/turtle-lissajous.html Turtle Lissajous]
 +
[http://tonyforster.blogspot.com/2009/12/turtle-spring-damper.html Turtle spring damper]
 +
[http://tonyforster.blogspot.com/2009/09/turtle-art-color-and-shade.html color and shade]
 +
[http://tonyforster.blogspot.com/2009/09/turtleart-shapes.html Turtle Art shapes]
 +
[http://tonyforster.blogspot.com/2009/12/bouncing-turtle.html Bouncing Turtle]
 +
Turtle Pythagoras [http://tonyforster.blogspot.com/2009/12/turtle-pythagoras.html 1]
 +
[http://tonyforster.blogspot.com/2010/02/turtle-pythagoras.html 2]
 +
[http://tonyforster.blogspot.com/2009/12/turtle-graph.html Turtle graph]
 +
[http://tonyforster.blogspot.com/2009/12/turtle-pi.html Turtle Pi]
 +
[http://tonyforster.blogspot.com/2009/12/turtle-fractions.html Turtle fractions]
 +
[http://tonyforster.blogspot.com/2009/12/turtle-interactive-multimedia.html Turtle interactive multimedia]
 +
[http://tonyforster.blogspot.com/2010/02/turtle-art-collapsed-stacks-and-numeric.html capture numeric input]
 +
[http://tonyforster.blogspot.com/2010/02/turtle-e.html Turtle e]
 +
[http://tonyforster.blogspot.com/2010/03/turtle-spirograph.html Turtle spirograph]
 +
    
An bringing it all together, [http://tonyforster.blogspot.com/2009/03/turtle-oscilloscope.html the Turtle Art Oscilloscope].
 
An bringing it all together, [http://tonyforster.blogspot.com/2009/03/turtle-oscilloscope.html the Turtle Art Oscilloscope].
Line 374: Line 408:     
Tony has also used the programmable block to do [http://tonyforster.blogspot.com/2009/03/turtle-fileview.html file IO].
 
Tony has also used the programmable block to do [http://tonyforster.blogspot.com/2009/03/turtle-fileview.html file IO].
 +
 +
==Lessons==
 +
[[File:Gravity.odt]] Alan Kay's lessons on gravity for third grade, redone in Turtle Art
    
==Just for fun==
 
==Just for fun==
Line 390: Line 427:  
[http://5toescuela3.blogspot.com/2009/07/actividades-para-sugar.html Using Turtle Art for pie charts]
 
[http://5toescuela3.blogspot.com/2009/07/actividades-para-sugar.html Using Turtle Art for pie charts]
   −
[[Category:Activities]]
+
[[File:Keyboard.png|400px]] Q: How do I cast keyboard input to a string? Looking at the source your are using ord() to fetch the input... is there a way to convert that back to string before showing it? ANS: Use chr(). See the example in the illustration.
 +
 
 +
[[File:Explicit_approach.png|400px]]
 +
 
 +
[[File:Approximation_approach.png|400px]]
 +
 
 +
[[File:100_turtles.png|400px]]

Navigation menu