Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!caip!seismo!mcvax!ukc!msp From: msp@ukc.ac.uk (M.S.Parsons) Newsgroups: net.sources Subject: M.C.Escher "Square Limit" Picture. (Part 0 of 2) Message-ID: <1686@eagle.ukc.ac.uk> Date: Thu, 10-Jul-86 13:08:51 EDT Article-I.D.: eagle.1686 Posted: Thu Jul 10 13:08:51 1986 Date-Received: Sat, 12-Jul-86 04:26:16 EDT Reply-To: msp@ukc.ac.uk (M.S.Parsons) Organization: U of Kent at Canterbury, Canterbury, UK Lines: 77 SQUARE LIMIT This drawing, created by M. C. Escher, is a highly recursive picture of intertwined fish. This drawing was first analysed and re-created by Peter Henderson. Following this header are two picture files containing the first two levels of the drawing. The third level is too big to transmit at present. REFERENCE %A Peter Henderson %D 1982 %J Conference Record of the 1982 ACM Symposium on LISP and Functional Programming %K Functional Geometry, Functional Graphics, LISP, Escher, Transformations. %P 179-187 %T Functional Geometry SOURCE CODE If anybody wants the source code, they are welcome to it. I have two versions each written in a purely functional language (KRC/Miranda). The source code is small (about 10Kb). PICTURE FORMAT The original format for each drawing is simply a list of line specifications, one per line in the form: x1 y1 x2 y2. To reduce the size of this file, these absolute coordinates are converted into relative coordinates. Then the file is compressed using compress (V4.0). Finally the file is uuencoded. So to view the picture: uudecode the picture file, uncompress it, pipe it through the relative to absolute coordinate filter and display on your favourite device. PICTURE SIZE Bytes 94553 fish1 66278 fish1.r 20090 fish1.r.Z 27703 fish1.r.Z.uu Number of lines: 5973 Min x and y: 0 0 Max x and y: 1024 1024 Bytes 242470 fish2 164879 fish2.r 51436 fish2.r.Z 70893 fish2.r.Z.uu Number of lines: 15900 Min x and y: 0 0 Max x and y: 1024 1024 Bytes 699572 fish3 458458 fish3.r 140013 fish3.r.Z 192929 fish3.r.Z.uu Number of lines: 36924 Min x and y: 0 0 Max x and y: 8192 8192 RELATIVE TO ABSOLUTE COORDINATES #include main() { int cx = 0, cy = 0, x1, y1, x2, y2; while (scanf("%d %d %d %d\n", &x1, &y1, &x2, &y2) == 4) { cx += x1; cy += y1; printf("%d %d ", cx, cy); cx += x2; cy += y2; printf("%d %d\n", cx, cy); } } ------------------------------------------------------------------------------ Mike Parsons UUCP: ..!seismo!mcvax!ukc!msp JANET: msp@uk.ac.ukc MAIL: Computing Lab, University of Kent, Canterbury, Kent, UK.