A long time ago - in a place far, far away (sorry, couldn't resist), I remember seeing a cool little program on the Apple 2c that taught kids programming by having them move a little turtle around a screen. This was based on the Logo programming language. Someone mentioned it on a thread yesterday in CF-TALK, and me being the crazy person I am I decided - what the heck - let me try to recreate this in ColdFusion.
So with that - I present CF_LOGO. This is a custom tag that lets you create a canvas and then issue commands for the turtle (or pen) to draw. For example:
<cf_logo> forward 100 right 90 forward 60 right 90 forward 90 right 90 forward 50 left 90 forward 99 home forward 100 </cf_logo>
This tells the turtle/pen to move, turn, move, etc. The home command simply returns the turtle to the center of the canvas. This creates the following image:
The language supports many operations, but my tag supports the following commands:
|forward/fd X||Move the pen forward X pixels.|
|right x||Turn to the right X degrees. Currently X is ignored and all turns are 90 degrees.|
|left x||Turn to the left X degrees. Currently X is ignored and all turns are 90 degrees.|
|clearscreen/cs||Clears the screen.|
|home||Moves the pen to the center of the canvas.|
|penup/pu||Lifts the pen. Any future drawing operations won't be displayed.|
|pendown/pd||Lowers the pen. Any future drawing operations will be displayed.|
The custom tag allows you to specify a height and width, a background and pen color, and you can even tell it to return the image as a CFImage object:
<cf_logo variable="test"> forward 100 right 90 forward 60 right 90 forward 90 </cf_logo>
<cfset imageScaleToFit(test,100,100)> <cfimage action="writetobrowser" source="#test#">
Finally, I've set up a demo that lets you issue commands one at a time, to basically draw a picture online:
You can download the test files, the demo, and the custom tag below.
And yes - this is a complete and utter waste of time. That's what made it fun.