Z Wikipedii:
Klon (Acer L.) – rodzaj roślin z rodziny mydleńcowatych (Sapindaceae) (czasem, zwłaszcza dawniej z wyodrębnianej osobno rodziny klonowatych Aceraceae). Do rodzaju należy około 100 gatunków drzewiastych i krzewiastych (według niektórych źródeł jest to nawet 150 gatunków), występujących głównie w strefie umiarkowanej (kilka w górach tropikalnych). Występują w największym zróżnicowaniu w Azji, poza tym w Ameryce Północnej i Środkowej, Europie, północnej Afryce. Gatunkiem typowym jest klon jawor (Acer pseudoplatanus L.)
...Liście
Nakrzyżległe o różnych kształtach. Występują najczęściej z pięcioma głównymi nerwami odchodzącymi od nasady liścia pod kątem 45°[2]. Najczęściej ma 5 klapek, jednak ich liczba może się wahać zależnie od gatunku od pojedynczo klapowanego do 11 klapek. Liście opadają na zimę (z wyjątkiem nielicznych ciepłolubnych gatunków takich jak Klon wieczniezielony).
Tak to, na przykład, może wyglądać:
Albo tak:
Ale może i tak:
Pięć jakby zdegenerowało się do trzech – też liczba pierwsza! I taki właśnie potrójny liść klonu dziś skonstruujemy – poprzez technikę układów funkcji iterowanych (ang. iterated function system – IFS). Technika ta sama jaką stosowaliśmy konstruując liść paproci w notce Paproć Barnsleya. Tylko dane wyjściowe inne. Dalej mamy tu cztery przekształcenia afiniczne – cztery macierze i cztery przesunięcia:
x' = ax + b
gdzie a jest macierzą, zaś b przesunięciem. Po rozpisaniu na składowe wektorów wygląda to tak:
x'1 = a11 x1 + a12 x2 + b1
x'2 = a21 x1 + a22 x2 + b2
Każde z przekształceń zadawane jest zatem przez sześć liczb: a11,a12,a21,a22,b1,b2. Ale przekształceniu musimy też przypisać prawdopodobieństwo p z który jest ono losowane. To siódma liczba. Razem cały układ czterech przekształceń zadawany jest przez 28 liczb. Przyjęło się w literaturze kodowanie takiego jednego przekształcenia zapisując je w słupku:
a11
a12
a21
a22
b1
b2
p
Tabelka IFS kodująca liść paproci: „Barrnsley's Fern”
0.81
|
0.12
|
0.19
|
0.0235
|
0.07
|
-0.25
|
0.275
|
0.087
|
-0.04
|
0.277
|
0.238
|
0.045
|
0.84
|
0.28
|
-0.14
|
0.166
|
0.12
|
0.12
|
0.16
|
0.11
|
0.195
|
0.02
|
0.12
|
0
|
0.5586
|
0.2338
|
0.2051
|
0.0025
|
A oto tabelka opisująca liść klonu (tego „potrójnego”):
Tabelka IFS kodująca liść klonu
0.8
|
0.5
|
0.355
|
0.355
|
0
|
0
|
-0.355
|
0.355
|
0
|
0
|
0.355
|
-0.355
|
0.8
|
0.5
|
0.355
|
0.355
|
0.1
|
0.25
|
0.266
|
0.378
|
0.04
|
0.4
|
0.078
|
0.434
|
0.35
|
0.22
|
0.22
|
0.21
|
Każdy może sprawdzić co z tego wynika ściągając sobie z sieci jeden z powszechnie dostępnych programów pozwalających na rysowanie układów IFS. Na przykład można sobie ściągnąć „Chaoskop”. Ściągamy na dysk i rozpakowujemy. Idziemy do katalogu Chaoskop/bin/Debug. Znajdujemy tam m.in. „Chaoskop.exe” - który można uruchomić, znajdujemy też sześć plików tekstowych z rozszerzeniem „.par”. Na przykład plik ifs6.par ma taką zawartość:
ifspar#Tree
a; 0.00; 0.42; 0.42; 0.10
b; 0.00; -0.42; 0.42; 0.00
c; 0.00; 0.42; -0.42; 0.00
d; 0.50; 0.42; 0.42; 0.10
e; 0.00; 0.00; 0.00; 0.00
f; 0.00; 0.20; 0.20; 0.20
p; 0.05; 0.40; 0.40; 0.15
Tak, to jedna z tabelek. Możemy ją zastąpić tabelką opisującą liść klonu
ifspar#Klon
a; 0.8; 0.5; 0.355; 0.355
b; 0.0; 0.0; -0.355; 0.355
c; 0.0; 0.0; 0.355; -0.355
d; 0.8; 0.5; 0.355; 0.355
e; 0.1; 0.25; 0.266; 0.378
f; 0.04; 0.4; 0.078; 0.434
p; 0.35; 0.22; 0.22; 0.21
Zapisujemy naszą nową tabelkę w tymże katalogu nadając jej nazwę ifs7.par. Teraz uruchamiamy chaoskop.exe. Różnych możliwości jest sporo, ale chcemy obejrzeć wynik zastosowania algorytmu IFS do naszej tabelki. W Menu wybieramy „Iterated Functions” i, u dołu, IFS Parameter”. W prawym Menu (na prawo od dużego czarnego okna), pod nagłówkiem „Load Parameter Sets from File” jest małe okienko „Choose PAR file” i czarna strzałeczka. Po najechaniu na nią myszką wybieramy ifs7.par. Naciskamy „Start”. Liść się pojawia zbudowany z 20000 punktów. Ilość punktów możemy zwiększyć do 30000.
Progarm rysuje punkt po punkcie, niezbyt szybko, możemy więc przyjrzeć się z temu jak przypadkowo (ale jednak z pewną regułą) rysowane punkty tworzą końcowy, miły dla oka i rozpoznawalny, kształt.
Ja pracuję nad moim własnym programem fraktalnym, który ma służyć nie tylko do zabawy lecz także do ilustracji matematycznych właściwości fraktali. Oto tenże liść otrzymany z mojego programiku:
Ten jest złożony z miliona punktów. Dodatkowo, ponieważ jest jesień, dodałem trochę czerwieni (tzn. ująłem niebieskiego) z tych pikseli gdzie gęstość punktów jest mała. Odpowiedni fragment kodu (Delphi, Pascal) wygląda tak:
begin
maxn:=0;
for i:= 0 to resolution-1 do
begin
for j:=0 to resolution-1 do
begin
if counts[i][j]>maxn then maxn:=counts[i][j]
end;
end;
dmax:= log10(maxn+1);
for i:=0 to bmp.Height -1 do
begin
p:= bmp.Scanline[i];
for j:=0 to bmp.Width-1 do
begin
value:= floor(255*log10(counts[j][resolution-i-1]+1)/dmax);
If value=0 then p[j*3+2]:=0 else //Blue
p[j*3+2]:=255-floor(255*log10(counts[j][resolution-i-1]+1)/dmax); //Blue
// p[j*3]:=0;
p[j*3+1]:=value; // Green
p[j*3]:=0; // Red
end;
end;
Jeśli ktoś ma ochotę, może pobawić się chaoskopem, obejrzeć różne fraktale. W kolejnych notkach będę omawiał inne aspekty fraktali – a jest ich doprawdy wiele. W notce następnej zajmę się dokładniej inną realizacją rysowania dwuwymiarowych fraktali – wejdziemy jednak, choćby i jedną nogą, w trzy wymiary.
A tymczasem polecam mój ulubiony klonowy syrop:
Naukowiec, zainteresowany obrzeżami nauki.
Katalog SEO Katalog Stron
map counter
Życie jest religią.
Nasze życiowe doświadczenia odzwierciedlają nasze oddziaływania z Bogiem.
Ludzie śpiący są ludźmi małej wiary gdy idzie o ich oddziaływania ze wszystkim co stworzone.
Niektórzy ludzie sądzą, że świat istnieje dla nich, po to, by go pokonać, zignorować lub zgasić.
Dla tych ludzi świat zgaśnie.
Staną się dokładnie tym co dali życiu.
Staną się jedynie snem w "przeszłości".
Ci co baczą uważnie na obiektywną rzeczywistość wokół siebie, staną się rzeczywistością "Przyszłości"
Lista wszystkich wpisów
Nowości od blogera
Inne tematy w dziale Technologie