Mathematica programers, especially Michael Trott, have been doing
algorithmic mathematical art since the early 1990s. I started my
programing career with Mathematica in 1995, and since late 1990s i've
been searching for such work outside of Mathematica, but it is almost
non-existent. (maybe less than 10 cases that i know of, and most their
code do not capture the algorithmic nature of the rendered art.) The
one most prominent mention of it is in chapter 2 of the book Structure
and Interpretation of Computer Programs by Hal Abelson et al.
anyway, today i ran into this page by Frank Buß
http://www.frank-buss.de/lisp/functional.html
which used the idea in the book to render a traditional Escher's tiling
piece.
I hope this will help the spread of algorithmic mathematical art. If
you find other algorithmic mathematical art, please let me know!
> The one most prominent mention of it is in chapter 2 of the book
> Structure and Interpretation of Computer Programs by Hal Abelson et al.
Thanks for the interesting book tip, it is available online:
http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#%_sec_2.2.4
> anyway, today i ran into this page by Frank Buß
> http://www.frank-buss.de/lisp/functional.html
> which used the idea in the book to render a traditional Escher's tiling
> piece.
I should note that I've used the original paper from Peter Henderson, which
is cited in the book, too:
http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#footnote_Temp_202
--
Frank Buss, f...@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
>> anyway, today i ran into this page by Frank Buß
>> http://www.frank-buss.de/lisp/functional.html
>> which used the idea in the book to render a traditional Escher's tiling
>> piece.
>
> I should note that I've used the original paper from Peter Henderson, which
> is cited in the book, too:
>
> http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#footnote_Temp_202
A very simple change to the code allows it to run
on most platforms:
1. prefix Frank's code with:
(defvar *ps-file* "/Users/verec/workspace/pictures/eisher.ps")
where you replace the string literal with whatever hard coded path
is right for your platform.
2. change plot so that it reads:
(defun plot (p)
" saves a picture as postscript and shows it"
(with-open-file (s *ps-file*
:direction :output :if-exists :supersede)
(format s "500 500 scale~%")
(format s ".1 .1 translate~%")
(format s "0 setlinewidth~%")
(format s "0 0 moveto 1 0 lineto 1 1 lineto 0 1 lineto 0 0 lineto~%")
(dolist (line (funcall p '(0 0) '(1 0) '(0 1)))
(destructuring-bind ((x0 y0) (x1 y1)) line
(format s "~D ~D moveto ~D ~D lineto~%" (float x0) (float y0)
(float x1) (float y1))))
(format s "stroke~%")
(format s "showpage~%"))
#+nil (sys:call-system "c:/gs/gs7.05/bin/gswin32.exe -g800x800
c:/tmp/test.ps")
)
that is, the hard-coded path now refers to *ps-file*, and the
OS specific call is commented out.
3. evaluate:
(plot *fishes*)
The resulting file is a plain PS file. On OS X you can view
it with Preview, and even convert it to pdf if you so wish:
Hi Xah
thanks for the interesting links!
I sometimes dabble in computer art.
Nearest example of my stuff to hand are these:
http://ohmslaw.org.uk/images/newtonRaphsonArt/
Those images are based on a variant of the Newton-Raphson root finding
equation (and used on complex numbers - the pictures represents the
Argand plane, i.e. x => real, => imaginary).
I need to find more of my stuff and give it a proper home!
cheerio
lex
Oh, speaking of escher, try the following:
http://occular.livejournal.com/89597.html
Turns out it's in Wolfram's book. Interesting looking.