DOI: 10.5300/2012-1/9

Zpravodaj Československého sdružení uživatelů TEXu 1/2012

Pages: 9–19

Author: Michel Charpentier

Programujeme L-systémy v PostScriptu

I když se PostScript tradičně považuje za formát souborů pro popis grafiky, jedná se ve skutečnosti o plnohodnotný programovací jazyk rozšířený o grafické funkce. Jeho vyjadřovací schopnosti sahají mnohem dál než pouhý popis vektorové grafiky. PostScript umožňuje naprogramování řady různých druhů vypočtů, včetně složitých aritmetických operací. V tomto článku ukážeme jak používat rekurzivní funkce v PostScriptu k implementaci skupiny přepisovacích systémů nazývaných L-systémy. Pomocí těchto systémů můžeme psát jednoduché programy v PostScriptu, které kreslí jak klasické fraktály tak i zajímavé obrázky připomínající rostliny.

PostScript, L-systémy, fraktály

PostScript as a Programming Language

Although we tend to think of PostScript as a file format used to describe graphics, it is in reality a full-fledged programming language with graphical capabilities. Thus, the power of PostScript goes far beyond that of simple vector-graphics formats. All sorts of computations can be programmed, including complex arithmetic calculations. In this paper, we show how to use recursive functions in PostScript to implement a family of rewriting structures known as L-systems. Based on these systems, one can write short PostScript programs that draw classic fractals and beautiful plant-like pictures.

PostScript, (Lindenmayer) L-systems, fractals, unconventional programming languages

References

  1. Adobe Systems Incorporated. PostScript Language Reference. Addison- Wesley, third edition, February 1999.
  2. Michel Charpentier. Dragon Curve in PostScript. URL: http://www.cs.unh.edu/~charpov/Programming/L-systems/simple-dragon.ps.
  3. Michel Charpentier. L-systems in PostScript. URL: http://www.cs.unh.edu/~charpov/Programming/L-systems/plant2.ps.
  4. Michel Charpentier. Ulam’s Spiral in PostScript. URL: http://www.cs.unh.edu/~charpov/Programming/PostScript-primes/primes-distribution.ps.
  5. Jim Lund. DoodleTron (a L-system Iterator). URL: http://elegans.uky.edu/jiml/lsystem/ls_index.html.
  6. Przemyslaw Prusinkiewicz and Aristid Lindenmayer. The Algorithmic Beauty of Plants. Springer-Verlag, 1990.
  7. Pavel Tišnovský. L-systémy: prírodní objekty i umelé artefakty. URL: http://www.root.cz/clanky/l-systemy-prirodni-objekty-i-umele-artefakty.
  8. Eric W. Weisstein. Dragon Curve. From MathWorld–A Wolfram Web Resource. URL: http://mathworld.wolfram.com/PrimeSpiral.html
  9. Eric W. Weisstein. Lindenmayer Systems. From MathWorld–A Wolfram Web Resource. URL: http://mathworld.wolfram.com/LindenmayerSystem.html
  10. Eric W. Weisstein. Ulam’s Spiral. From MathWorld–A Wolfram Web Resource. URL: http://mathworld.wolfram.com/PrimeSpiral.html
Error on line 1 column 1 of file:/var/tmp/CitedBy_5a1178313a701.xml: SXXP0003: Error reported by XML parser: Premature end of file. Transformation failed: Run-time errors were reported

Hlavní stránka Zpravodaje CSTUGu. Adresa redakce: zpravodaj@cstug.cz. (c) 1996-2012 CSTUG