ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/lsys/lib/fractint.l
Revision: 1.1
Committed: Thu Nov 6 14:31:25 2008 UTC (15 years, 6 months ago) by root
Branch: MAIN
CVS Tags: HEAD
Log Message:
*** empty log message ***

File Contents

# Content
1 ruleset ( // Adrian Mariano
2 // from The Fractal Geometry of Nature by Mandelbrot
3
4 Koch(n) => attr (delta, 360/6) F--F--F, n;
5 F => F+F--F+F;
6 )
7
8 ruleset ( // Adrian Mariano
9 // from The Fractal Geometry of Nature by Mandelbrot
10
11 Koch1(n) => attr (delta, 360/12) F---F---F---F, n;
12 F => -F+++F---F+;
13 )
14
15 ruleset ( // Adrian Mariano
16 // from The Fractal Geometry of Nature by Mandelbrot
17
18 Koch2(n) => attr (delta, 360/4) F-F-F-F, n;
19 F => F-F+F+FF-F-F+F;
20 )
21
22 ruleset ( // Adrian Mariano
23 Koch3(n) => attr (delta, 360/4) F+F+F+F, n;
24 F => F-F F+F F+F+F-F-F F+F+F-F-F F-F F+F;
25
26 )
27
28 ruleset ( // Adrian Mariano
29 // from The Fractal Geometry of Nature by Mandelbrot
30
31 Dragon(n) => attr (delta, 360/8) FX, n;
32 F => ;
33 y => +FX--FY+;
34 x => -FX++FY-;
35 )
36
37 ruleset ( // Adrian Mariano
38 // from The Fractal Geometry of Nature by Mandelbrot
39
40 Peano(n) => attr (delta, 360/4) F-F-F-F, n;
41 F => F-F+F+F+F-F-F-F+F;
42 )
43
44 ruleset ( // Adrian Mariano
45 // from The Fractal Geometry of Nature by Mandelbrot
46
47 Cesaro(n) => attr (delta, 360/34) FX, n;
48 F => ;
49 X => ----F!X!++++++++F!X!----;
50 )
51
52 ruleset ( // Adrian Mariano
53 // from The Fractal Geometry of Nature by Mandelbrot
54
55 Double_cesaro(n) => attr (delta, 360/4) F -(90) F -(90) F -(90) F -(90) , n;
56 F => -(42) !F! +(84) !F! -(42) ;
57 )
58
59 ruleset ( // Adrian Mariano
60 // from The Fractal Geometry of Nature by Mandelbrot
61 anfle => 6;
62 Flow_snake(n) => attr (delta, 360/4) FL, n;
63 L => FL-FR--FR+FL++FLFL+FR-%,;
64 R => +FL-FRFR--FR-FL++FL+FR%,;
65 F => ;
66 )
67
68 ruleset ( // Adrian Mariano
69 // from The Fractal Geometry of Nature by Mandelbrot
70
71 Cantor_dust(n) => attr (delta, 360/6) F, n;
72 F => FfF;
73 f => fff;
74 )
75
76 ruleset ( // Adrian Mariano
77 // from The Fractal Geometry of Nature by Mandelbrot
78
79 Snowflake(n) => attr (delta, 360/12) F, n;
80 F => ++!F!F--F--F attr (distance, distance/03^0.5) |+F!F--;
81 F => F--F!+++ attr (distance, distance*03^0.5) F attr (distance, distance/03^0.5) |+F!F attr (distance, distance*03^0.5) |+F!F;
82 )
83
84 ruleset ( // Adrian Mariano
85 // from The Fractal Geometry of Nature by Mandelbrot
86
87 Snowflake_color(n) => attr (delta, 360/12) F, n;
88 F => --!F!F++F++F attr (distance, distance/03^0.5) |-F!F++;
89 F => F++F!--- attr (distance, distance*03^0.5) F attr (distance, distance/03^0.5) |-F!F attr (distance, distance*03^0.5) |-F!F;
90 F => ;
91 )
92
93 ruleset ( // Adrian Mariano
94 // from The Fractal Geometry of Nature by Mandelbrot
95
96 Island(n) => attr (delta, 360/4) F+F+F+F, n;
97 F => FFFF-F+F+F-F[-fFF+F+FF+F]FF;
98 f => attr (distance, distance*08) f attr (distance, distance/08) ;
99 )
100
101 ruleset ( // Adrian Mariano
102 // from The Fractal Geometry of Nature by Mandelbrot
103
104 Island1(n) => attr (delta, 360/4) F+F+F+F, n;
105 F => F+f F-F F-F-F F+f+F F-f F+F F+F+F F-f-F FF;
106 f => attr (distance, distance*06) f attr (distance, distance/06) ;
107 )
108
109 ruleset ( // Adrian Mariano
110 // from The Fractal Geometry of Nature by Mandelbrot
111
112 Quartet(n) => attr (delta, 360/4) F b, n;
113 A => FBFA+HFA+FB-FA;
114 B => FB+FA-FB-JFBFA;
115 F => ;
116 H => -;
117 J => +;
118 )
119
120 ruleset ( // Adrian Mariano
121 // from The Fractal Geometry of Nature by Mandelbrot
122
123 Snow_flake(n) => attr (delta, 360/12) FR, n;
124 R => ++!FRFU++FU++FU!--- attr (distance, distance*03^0.5) FU|- attr (distance, distance/03^0.5) !FRFU!;
125 U => !FRFU!|+ attr (distance, distance*03^0.5) FR attr (distance, distance/03^0.5) +++!FR--FR--FRFU!--;
126 F => ;
127 )
128
129 ruleset ( // Adrian Mariano
130 // from The Fractal Geometry of Nature by Mandelbrot
131
132 Snow_flake1(n) => attr (delta, 360/12) F x, n;
133 x => ++F!x!F y--F x--F y|+ attr (distance, distance/03^0.5) F yF!x!++F!y!++F!y!F x attr (distance, distance*03^0.5) +++F!y!F x;
134 y => F yF!x!+++ attr (distance, distance/03^0.5) F yF!x!++F!x!++F!y!F x attr (distance, distance*03^0.5) |+F x--F y--F xF!y!++;
135 F => ;
136 )
137
138 ruleset ( // Adrian Mariano
139 // from The Fractal Geometry of Nature by Mandelbrot
140 anfle => 12;
141 Tree(n) => attr (delta, 360/12) +++FX, n;
142 X => attr (distance, distance*0.6) [-FX]+FX;
143 )
144
145 ruleset ( // Adrian Mariano
146 // from The Fractal Geometry of Nature by Mandelbrot
147
148 Peano1(n) => attr (delta, 360/8) FXY++F++FXY++F, n;
149 X => XY attr (distance, distance*02^0.5) -F attr (distance, distance/02^0.5) -FXY++F++FXY;
150 Y => - attr (distance, distance*02^0.5) F- attr (distance, distance/02^0.5) FXY;
151 )
152
153 ruleset ( // Adrian Mariano
154 // from The Fractal Geometry of Nature by Mandelbrot
155
156 Sierpinski(n) => attr (delta, 360/3) F, n;
157 F => FXF;
158 X => +FXF-FXF-FXF+;
159 )
160
161 ruleset ( // Adrian Mariano
162 // from The Fractal Geometry of Nature by Mandelbrot
163
164 Koch4(n) => attr (delta, 360/12) F++++F++++F, n;
165 F => +F--F++F-;
166 )
167
168
169 ruleset ( // Ken Philip, from The Science of Fractal Images p.285b
170 Plant(n) => attr (delta, 360/12) Z, n;
171 z => zFX[+Z][-Z];
172 x => x[-FFF][+FFF]FX;
173
174 )
175
176 ruleset ( // Ken Philip, from The Science of Fractal Images, p.286
177 Plant1(n) => attr (delta, 360/14) SLFFF, n;
178 s => [+++Z][---Z]TS;
179 z => +H[-Z]L;
180 h => -Z[+H]L;
181 t => TL;
182 l => [-FFF][+FFF]F;
183
184 )
185
186 ruleset ( // Ken Philip, from The Science of Fractal Images
187 Hilbert(n) => attr (delta, 360/20) x, n;
188 x => -YF+XFX+FY-;
189 y => +XF-YFY-FX+;
190
191 )
192
193 ruleset ( // From Jim Hanan via Corbit
194 Sierpinski1(n) => attr (delta, 360/4) F-F-F, n;
195 F => F[-F]F;
196
197 )
198
199
200 ruleset (
201 Peano2(n) => attr (delta, 360/3) x, n;
202 x => XFYFX+F+YFXFY-F-XFYFX;
203 y => YFXFY-F-XFYFX+F+YFXFY;
204
205 )
206
207 ruleset (
208 Koch5(n) => attr (delta, 360/4) F+F+F+F, n;
209 F => F+F-F-FFF+F+F-F;
210
211 )
212
213 ruleset ( // from The Science of Fractal Images
214 Sierpinski2(n) => attr (delta, 360/4) FXF--FF--FF, n;
215 F => FF;
216 x => --FXF++FXF++FXF--;
217
218 )
219
220 ruleset (
221 Sierpinski_square(n) => attr (delta, 360/6) F+F+F+F, n;
222 F => FF+F+F+F+FF;
223
224 )
225
226
227 ruleset ( // created by Adrian Mariano
228
229 Pentagram(n) => attr (delta, 360/10) F x++F x++F x++F x++F x, n;
230 // f=f[++++@1.618033989f]
231 x => [++++ attr (distance, distance/01.618033989) F attr (distance, distance*0.618033989) F!x! attr (distance, distance/0.618033989) F];
232 )
233
234
235 ruleset ( // Adrian Mariano, from the Algorithmic Beauty of Plants
236 // Quadratic Koch island, Figure 1.7a p.9
237
238 Quad_koch(n) => attr (delta, 360/4) F-F-F-F-, n;
239 F => F+FF-FF-F-F+F+FF-F-F+F+FF+FF-F;
240 )
241
242 ruleset ( // Adrian Mariano, from the Algorithmic Beauty of Plants
243 // FASS curve (3x3 tiles form macrotile), Figure 1.16a p.17
244 Fass(n) => attr (delta, 360/4) -l, n;
245
246 L => LF+RFR+FL-F-LFLFL-FRFR+;
247 R => -LFLF+RFRFR+F+RF-LFL-FR;
248 )
249
250 ruleset ( // Adrian Mariano, from the Algorithmic Beauty of Plants
251 // FASS curve (4x4 tiles form macrotile), Figure 1.16b p.17
252
253 Fass1(n) => attr (delta, 360/4) -l, n;
254 L => LFLF+RFR+FLFL-FRF-LFL-FR+F+RF-LFL-FRFRFR+;
255 R => -LFLFLF+RFR+FL-F-LF+RFR+FLF+RFRF-LFL-FRFR;
256 )
257
258 ruleset ( // Adrian Mariano, from the Algorithmic Beauty of Plants
259 // Quadratic Gosper curve, Figure 1.11b p.12
260
261 Quad_gosper(n) => attr (delta, 360/4) -F r, n;
262 l => F lF l-F r-F r+F l+F l-F r-F rF l+F r+F lF lF r-F l+F r+F lF l+F r-F lF r-F r-F l+F l+F rF r-;
263 r => +F lF l-F r-F r+F l+F lF r+F l-F rF r-F l-F r+F lF rF r-F l-F rF l+F l+F r-F r-F l+F l+F rF r;
264 F => ;
265 )
266
267 ruleset ( // Adrian Mariano, from the Algorithmic Beauty of Plants
268 // Plant-like structure, figure 1.24a p.25
269 // also p.285a The Science of Fractal Images
270
271 Plant2(n) => attr (delta, 360/14) F, n;
272 F => F[+F]F[-F]F;
273 )
274
275 ruleset ( // Adrian Mariano, from the Algorithmic Beauty of Plants
276 // Plant-like structure, figure 1.24b p.25
277
278 Plant3(n) => attr (delta, 360/18) F, n;
279 F => F[+F]F[-F][F];
280 )
281
282 ruleset ( // Adrian Mariano, from the Algorithmic Beauty of Plants
283 // Plant-like structure, figure 1.24c p.25
284
285 Plant4(n) => attr (delta, 360/16) F, n;
286 F => FF-[-F+F+F]+[+F-F-F];
287 )
288
289 ruleset ( // Adrian Mariano, from the Algorithmic Beauty of Plants
290 // Plant-like structure, figure 1.24d p.25
291
292 Plant5(n) => attr (delta, 360/18) x, n;
293 X => F[+X]F[-X]+X;
294 F => FF;
295 )
296
297 ruleset ( // Adrian Mariano, from the Algorithmic Beauty of Plants
298 // Plant-like structure, figure 1.24e p.25
299
300 Plant6(n) => attr (delta, 360/14) x, n;
301 X => F[+X][-X]FX;
302 F => FF;
303 )
304
305 ruleset ( // Adrian Mariano, from the Algorithmic Beauty of Plants
306 // Plant-like structure, figure 1.24f p.25
307
308 Plant7(n) => attr (delta, 360/16) x, n;
309 X => F-[[X]+X]+F[+FX]-X;
310 F => FF;
311 )
312
313 ruleset ( // Adrian Mariano
314 Plant8(n) => attr (delta, 360/16) y, n;
315 x => X[-FFF][+FFF]FX;
316 y => YFX[+Y][-Y];
317
318 )
319
320 ruleset ( // Adrian Mariano
321 Plant9(n) => attr (delta, 360/14) F, n;
322 F => F[+F F][-F F]F[+F F][-F F]F;
323
324 )
325
326
327 ruleset ( // Adrian Mariano
328 Plant10(n) => attr (delta, 360/10) F, n;
329 F => F[+F[+F][-F]F][-F[+F][-F]F]F[+F][-F]F;
330
331 )
332
333 ruleset ( // Adrian Mariano, from the Algorithmic Beauty of Plants
334 // curve from figure 1.9a p.10
335
336 Curve(n) => attr (delta, 360/4) F-F-F-F-, n;
337 F => FF-F-F-F-F-F+F;
338 )
339
340 ruleset ( // Adrian Mariano, from the Algorithmic Beauty of Plants
341
342 Curve1(n) => attr (delta, 360/4) F-F-F-F-, n;
343 F => FF-F+F-F-FF;
344 )
345
346 ruleset ( // Adrian Mariano, from the Algorithmic Beauty of Plants
347 // curve from figure 1.9e p.10
348 Curve2(n) => attr (delta, 360/4) F-F-F-F-, n;
349
350 F => F-FF--F-F;
351 )
352
353 ruleset ( // Adrian Mariano
354 Curve3(n) => attr (delta, 360/4) y F, n;
355 x => YF+XF+Y;
356 y => XF-YF-X;
357
358 )
359
360 ruleset ( // Adrian Mariano, from the Algorithmic Beauty of Plants
361 // Compound leaf with alternating branches, Figure 5.12b p.130
362
363 Leaf(n) => attr (delta, 360/8) x, n;
364 a => n;
365 n => o;
366 o => p;
367 p => x;
368 b => e;
369 e => h;
370 h => j;
371 j => y;
372 x => F[+A(4)]F y;
373 y => F[-B(4)]F x;
374 F => attr (distance, distance*01.18) F attr (distance, distance/01.18) ;
375 )
376
377 ruleset ( // Adrian Mariano, from the Algorithmic Beauty of Plants
378 // Compound leaf with alternating branches, Figure 5.12a p.130
379
380 Leaf1(n) => attr (delta, 360/8) a, n;
381 a => F[+x]F b;
382 b => F[-y]F a;
383 x => a;
384 y => b;
385 F => attr (distance, distance*01.36) F attr (distance, distance/01.36) ;
386 )
387
388 ruleset ( // Adrian Mariano
389
390 Bush(n) => attr (delta, 360/16) ++++F, n;
391 F => FF-[-F+F+F]+[+F-F-F];
392 )
393
394 ruleset ( // Adrian Mariano
395
396 My_tree(n) => attr (delta, 360/16) ++++F, n;
397 F => FF-[XY]+[XY];
398 X => +FY;
399 Y => -FX;
400 )
401
402 ruleset ( // Adrian Mariano
403
404 Color_triang_gasket(n) => attr (delta, 360/6) --X, n;
405 X => ++FXF++FXF++FXF;
406 F => FF;
407 )
408
409 ruleset ( // Adrian Mariano
410
411 Square_gasket(n) => attr (delta, 360/4) X, n;
412 X => +FXF+FXF+FXF+FXF;
413 F => FF;
414 )
415
416 ruleset ( // Adrian Mariano
417
418 Dragon_curve(n) => attr (delta, 360/4) X, n;
419 X => X-YF-;
420 Y => +FX+Y;
421 )
422
423 ruleset ( // Adrian Mariano
424
425 Square(n) => attr (delta, 360/4) F+F+F+F, n;
426 F => FF+F+F+F+FF;
427 )
428
429 ruleset ( // Adrian Mariano
430
431 Koch_curve(n) => attr (delta, 360/6) F, n;
432 F => F+F--F+F;
433 )
434
435
436 ruleset ( // by Herb Savage
437 // based on Martin Gardner's "Penrose Tiles to Trapdoor Ciphers",
438 // Roger Penrose's rhombuses
439
440 Penrose(n) => attr (delta, 360/10) +WF--XF---YF--ZF, n;
441 W => YF++ZF----XF[-YF----WF]++;
442 X => +YF--ZF[---WF--XF]+;
443 Y => -WF++XF[+++YF++ZF]-;
444 Z => --YF++++WF[+ZF++++XF]--XF;
445 F => ;
446 )
447
448 ruleset ( // by Herb Savage
449 // based on Martin Gardner's "Penrose Tiles to Trapdoor Ciphers",
450 // Roger Penrose's rhombuses
451 // Uses color to show the edge matching rules to force nonperiodicy
452
453 Color_penrose(n) => attr (delta, 360/10) +WF--XF---YF--ZF, n;
454 W => YF++ZF----XF[-YF----WF]++;
455 X => +YF--ZF[---WF--XF]+;
456 Y => -WF++XF[+++YF++ZF]-;
457 Z => --YF++++WF[+ZF++++XF]--XF;
458 F => ;
459 )
460
461 ruleset ( // by Herb Savage
462 // based on Martin Gardner's "Penrose Tiles to Trapdoor Ciphers",
463 // Roger Penrose's rhombuses
464
465 Penrose1(n) => attr (delta, 360/10) ++ZF----XF-YF----WF, n;
466 W => YF++ZF----XF[-YF----WF]++;
467 X => +YF--ZF[---WF--XF]+;
468 Y => -WF++XF[+++YF++ZF]-;
469 Z => --YF++++WF[+ZF++++XF]--XF;
470 F => ;
471 )
472
473 ruleset ( // by Herb Savage
474 // based on Martin Gardner's "Penrose Tiles to Trapdoor Ciphers",
475 // Roger Penrose's rhombuses
476
477 Penrose2(n) => attr (delta, 360/10) [X]++[X]++[X]++[X]++[X], n;
478 W => YF++ZF----XF[-YF----WF]++;
479 X => +YF--ZF[---WF--XF]+;
480 Y => -WF++XF[+++YF++ZF]-;
481 Z => --YF++++WF[+ZF++++XF]--XF;
482 F => ;
483 )
484
485 ruleset ( // by Herb Savage
486 // based on Martin Gardner's "Penrose Tiles to Trapdoor Ciphers",
487 // Roger Penrose's rhombuses
488
489 Penrose3(n) => attr (delta, 360/10) [Y]++[Y]++[Y]++[Y]++[Y], n;
490 W => YF++ZF----XF[-YF----WF]++;
491 X => +YF--ZF[---WF--XF]+;
492 Y => -WF++XF[+++YF++ZF]-;
493 Z => --YF++++WF[+ZF++++XF]--XF;
494 F => ;
495 )
496
497 ruleset ( // by Herb Savage
498 // This is Penrose3 and Penrose4 superimposed
499
500 Double_penrose(n) => attr (delta, 360/10) [X][Y]++[X][Y]++[X][Y]++[X][Y]++[X][Y], n;
501 W => YF++ZF----XF[-YF----WF]++;
502 X => +YF--ZF[---WF--XF]+;
503 Y => -WF++XF[+++YF++ZF]-;
504 Z => --YF++++WF[+ZF++++XF]--XF;
505 F => ;
506 )
507
508 ruleset ( // by Herb Savage
509 // based on Martin Gardner's "Penrose Tiles to Trapdoor Ciphers"
510 // This is an example of a "reptile"
511
512 Sphinx(n) => attr (delta, 360/6) X, n;
513 X => +FF-YFF+FF--FFF|X|F--YFFFYFFF|;
514 Y => -FF+XFF-FF++FFF|Y|F++XFFFXFFF|;
515 F => ff;
516 f => ff;
517 )
518
519 ruleset (
520 // Manual construction by Roger Penrose as a prelude to his development of
521 // the famous Penrose tiles (the kites and darts) that tile the plane
522 // only non-periodically.
523 // Translated first to a "dragon curve" and finally to an L-system
524 // by Joe Saverino.
525
526 Penta_plexity(n) => attr (delta, 360/10) F++F++F++F++F, n;
527 F => F++F++F|F-F++F;
528 )
529
530 // old PentaPlexity:
531 // Angle 10
532 // Axiom F++F++F++F++Fabxjeabxykabxyelbxyeahxyeabiye
533 // F=
534 // a=Fabxjea
535 // b=++F--bxykab
536 // x=++++F----xyelbx
537 // y=----F++++yeahxy
538 // e=--F++eabiye
539 // h=+++++F-----hijxlh
540 // i=---F+++ijkyhi
541 // j=-F+jkleij
542 // k=+F-klhajk
543 // l=+++F---lhibkl
544
545 ruleset ( // Adrian Mariano
546 Circular_tile(n) => attr (delta, 360/10) X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X, n;
547 x => [F+F+F+F[---X-Y]+++++F++++++++F-F-F-F];
548 y => [F+F+F+F[---Y]+++++F++++++++F-F-F-F];
549
550 )
551