Grundlagen der funktionsorientierten Programmierung mit SCHEME/Fraktale
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Scheme</language>
[[Bild:Mandelbrot1.png|miniatur|Die vielleicht berühmteste fraktale Struktur: Das Apfelmännchen]]
Der Begriff '''Fraktal''' (lat. fractus "gebrochen") geht auf den französisch-US-amerikanischer Mathematiker '''Benoît Mandelbrot''' (* 20. November 1924) zurück. Mit ihm werden natürliche oder künstliche Gebilde bzw. geometrische Muster bezeichnet, die einen hohen Grad an Selbstähnlichkeiten aufweisen.
== Das Sierpinski-Dreieck ==
Diese selbstähnliche Figur ist nach dem polnischen Mathematiker '''Wacław Franciszek Sierpiński''' (* 14. März 1882; † 21. Oktober 1969) benannt. Die nachfolgende Abbildung zeigt die Konstruktion dieses Dreiecks:
<blockquote>[[Bild: Sierpinski1.GIF]]</blockquote>
'''Implementation:'''
<table cellspacing="0" cellpadding="2">
<tr>
<td valign="top">
<canvas w="380" h="400"></canvas>
</td>
<td valign="top" width="100%">
<code id="4ca83081addcb">
(define n-eck
(lambda (turtle len n)
...))
(define sierpinski
(lambda (turtle len n)
(n-eck turtle len 3)
(if (> n 1)
(begin
...))))
(define sierpinski-dreieck
(lambda (len n)
(clear canvas1)
(move turtle1 100 300)
...))
</code>
<eval id="4ca78d9fcaa2b">
(sierpinski-dreieck 200 6)
</run>
</td>
</tr>
</table>
== Die Koch-Schneeflocke ==
Der schwedische Mathematiker '''Helge von Koch''' (* 25. Januar 1870; † 11. März 1924) stellte im Jahr 1904 einen stetigen Graphen vor, der an keiner Stelle differenzierbar ist.
Die sogenannte Koch-Schneeflocke setzt sich aus drei dieser Koch-Kurven zusammen, die auf den Seiten eines gleichseitigen Dreiecks angeordnet sind:
<blockquote>[[Bild: Kochkurve1.GIF]]</blockquote>
'''Implementation:'''
<table cellspacing="0" cellpadding="2">
<tr>
<td valign="top">
<canvas w="380" h="400"></canvas>
</td>
<td valign="top" width="100%">
<code id="4ca83081adee2">
(define koch
(lambda (turtle len n)
...))
(define koch-schneeflocke
(lambda (len n)
(clear canvas2)
(move turtle2 150 270)
...))
</code>
<eval id="4ca794259d7af">
(koch-schneeflocke 200 5)
</run>
</td>
</tr>
</table>
Zurück zu [[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Rekursionen|Rekursionen]].