Klasycznym przykładem fraktala jest płatek Kocha.
(wywołanie koch 0 100).
Stopień pierwszy powstaje przez podział odcinka na trzy równe części, a następnie zastąpienie środkowej części dwoma złączonymi odcinkami równymi części usuniętej (wywołanie koch 1 100).
Aby utworzyć stopień drugi, musisz podzielić każdy z odcinków na 4 nowe (wywołanie koch 2 100).
Tak będzie się prezentować się wywołanie koch 4 100.
A oto procedura w języku Logo:
oto koch :st :a
jeśli :st = 0 [np :a stop]
koch :st - 1 :a / 3 pw 60
koch :st - 1 :a / 3 lw 120
koch :st - 1 :a / 3 pw 60
koch :st - 1 :a / 3
już
Możemy sprawdzić jej działanie wywołując ją z takimi parametrami:
koch 0 200
koch 1 200
koch 2 200
koch 3 200
koch 4 200
No to teraz idźmy dalej i opracujmy procedurę gwiazdka.
oto gwiazdka :st :a
powtórz 3 [ koch :st :a lw 120]
już
Wywołuj procedurę z różnymi parametrami:
gwiazdka 0 200
gwiazdka 1 200
gwiazdka 2 200
gwiazdka 3 200
gwiazdka 4 200
Drzewo binarne
oto dbin :wiek :pien
jeśli :wiek = 0 [np :pien pw 180 np :pien stop]
np :pien
lw 45
dbin :wiek - 1 :pien * 0,6
lw 90
dbin :wiek - 1 :pien * 0,6
lw 45 np :pien
już
dbin 0 50
dbin 1 50
dbin 2 50
.........
dbin 6 50
Przykład skryptu w środowisku Scratch
Plaster miodu
Oto plaster :poziom :bok
jeśli :poziom = 0 [stop]
powtórz 6 [ np :bok plaster :poziom - 1 :bok/2 pw 360/6]
już
(obrazek)
plaster 1 100
plaster 2 100
plaster 3 100
............
plaster 6 100
Trójkąt Śierpińskiego
oto troj :a
powtórz 3 [np :a pw 120]
już
oto sierp :n :a
jeśli :n = 0 [troj :a stop]
troj :a
sierp :n - 1 :a / 2
np :a / 2
sierp :n - 1 :a / 2
pw 60
np :a / 2 pw 60
sierp :n - 1 :a / 2
lw 60 ws :a / 2
lw 60 ws :a / 2
już
oto sierpinski :n :a
cs
pw 30
sierp :n :a
już
(obrazki)
Brak komentarzy:
Prześlij komentarz
Uwaga: tylko uczestnik tego bloga może przesyłać komentarze.