[Newbies] E-Toys and Morphic for simple point plotting exercise?

Daniel Green dang at splunge.com
Tue Nov 14 14:54:10 UTC 2006

I'd like to challenge some students (9 years old to 14 years old) to  
use Squeak to draw a Sierpenski Gasket (http://en.wikipedia.org/wiki/ 
Serpinski_gasket) as an experiment with random numbers.  To draw  
something like you see at (http://commons.wikimedia.org/wiki/ 
Sierpinski_triangle), one method is to pick a starting point,  
randomly select one of the three fixed corners, plot a line half way  
there and repeat from each new position.  I can seem to accomplish  
this awkwardly using E-Toys as follows:

- draw a sketch morph using paint tool or however you wish to obtain  
something that is visibly positioned at different points below
- add 2 number variables for each point to be used, i.e, point1X,  
point1Y, Point2X, Point2Y, Point3X, Point3Y
- add a script with random number tile generating 1, 2 or 3 that loops:
	- determine which of 3 fixed points is to be used this time
	- turn pen off
	- move half way to new fixed plot point
	- turn pen on
	- move one pixel to draw dot
	- turn pen off
	- move back one pixel and repeat above from current point

This works but it feels very clunky using E-Toys.  Screen shots here  
if there's interest:

   Things I'd like to improve:

- a shorter E-Toys version
- a morphic version other than just 'view source' of E-Toys tiles  
- be able to subroutine or parameter-ize an E-Toys script with a  
point or two numbers instead just one parameter and/or repeating code
- find a suitable PlotMorph or other class which can be used for the  
E-Toys version rather than just scribble with penDown=true or create  
millions of 1 pixel LineMorphs
- most of the documentation for morphs with a "point: color" method  
indicate it is obsolete -- what is one to use plot a point if  
different than a one pixel line?

   Any input, thoughts or suggestions for improvement appreciated!


   Best regards,

-- DanG
Daniel Green, Sun Microsystems
dang at sun.com, 877-481-0917

More information about the Beginners mailing list