A JavaScript/HTML5 canvas port of Frank Buss's Common Lisp implementation of a method to describe pictures as functions, as described in Peter Henderson's Functional Geometry paper. Once we have a function that describes some shape, it can be easily manipulated by other functions.
Michael Grady has written a paper covering similar ground in the Journal of Computing Sciences in College; the paper is available on the ACM Digital Library as a free download (after registration).Grady uses the canvas drawImage
function, while this example draws the paths from scratch (as in Buss's example).
For an example of usage, see fishes.html
, which draws a version of M.C. Escher's Square Limit.