PORZÂDEK CZY CHAOS? W chwili gdy czytacie te sîowa i siedzicie sobie w îawce szkolnej (cóû, listopad), ja wîaônie wyjeûdzam na wakacje nad morze (cóû, sierpieï). 30 stopni w cieniu pod stoîem, mój pies leûy z nosem przed wentylatorem, móûdûek paruje, myôleê sië nie chce, a ja siedzë w lodówce i piszë ten artykuî... Bolesîaw Szczerba Aby powiëkszyê wycinek "glona", naleûy podawaê coraz mniejsze zakresy parametrów, pamiëtajâc jednoczeônie o zwiëkszaniu liczby iteracji N. Najlepiej dobraê jâ eksperymentalnie tak, by rysunek byî wyraúny. Potem trzeba wgraê powiëkszany obrazek do DPainta, zaznaczyê prostokâtem powiëkszany fragment, spisaê wspóîrzëdne jego wierzchoîków i nastëpnie przeliczyê je na nowe zakresy parametrów. Byîoby super, gdyby fraktal generowaê w HAM8, albo przynajmniej w 256 kolorach. Niestety, przykîadowego listingu nie bëdzie, gdyû na nie ma na niego miejsca. Ûeby Wam zaostrzyê apetyt, przedstawiam na rysunku 4. fragment fraktala z rysunku 2., wygenerowany w 24 bitach. Robi wraûenie, co? Uwaûny Czytelnik mógîby zadaê pytanie: czy moûna zamiast podanego przeze mnie wielomianu kwadratowego uûyê jakiejô innej funkcji? Oczywiôcie, ûe moûna! Proponujë poeksperymentowaê -- nawet kilka miesiëcy cyklu na ten temat nie zastâpi kilku godzin spëdzonych na samodzielnym êwiczeniu. Proponujë zaczâê od: xn+1=xn3+c **** GÓRNY WZÓR NA RYSUNKU 0 ***** Oto wzór na z3, który wykorzystamy w dzisiejszym programie. Wynika on w prosty sposób ze wzorków podanych poprzednio. z3 = x3-3xy2 + (3x2y-y3)i **** DOLNY WZÓR NA RYSUNKU 0 **** W listingu 2. przedstawiam fragment funkcji main() programiku generujâcego zbiór Mandelbrota dla wielomianu trzeciego stopnia. Reszta jest taka sama jak w programie z pierwszego odcinka, wiëc nie bëdë jej powielaî. Zmianie ulegajâ tylko podane dwie linijki. Aha, i jeszcze jedno: zapomniaîem o tym napisaê ostatnio, ale jeôli masz odpowiednie biblioteki matematyczne w LIBS:, to warto kompilowaê program z MATH=FFP. Prëdkoôê wzrasta ok. 2, 3 razy. Jeûeli masz koprocesor, to warto teû zainstalowaê sobie szybsze wersje tych bibliotek, dostëpne np. na Aminecie (util/libs/FastMath405.lha). Po kompilacji wpisujemy z CLI/SHELL: nazwa_programu -1.5 1.5 -1.5 1.5 100 Chwilka (chîe!, chîe!) oczekiwania i oto mamy fraktal, który przedstawiam na rysunku 1. Kolejna chwilka (uaaa!, uaaa!) i na rysunku 2. widzimy jego fragment powiëkszony dwieôcie tysiëcy razy. A teraz ciekawostka. Na rysunku 3. przedstawiam... no co? Uzyskaîem toto przez przypadek, na skutek bîëdów w obliczeniach (to ten upaî). Nawiasem mówiâc w ten wîaônie sposób wpadîem na bardzo ciekawy algorytm, za pomocâ którego stworzyîem te obrazki. Nie ma tego zîego itd. Zachëcam do zabawy w generowanie i powiëkszanie fraktali. Zapewniam, ûe warto -- robi wraûenie. Gdy sië uwaûnie wpatrzeê, to moûna dostrzec, jak wîaônie tu zaciera sië granica miëdzy matematykâ a sztukâ... Po co to komu? To, co napisaîem, to zaledwie skromne wprowadzenie do tematyki fraktali. Teoria chaosu jest tak olbrzymia, ûe moûna by o tym pisaê bez koïca. Jednak podanej tu wiedzy wystarczy chyba na poczâtek eksperymentowania. Co sâdzicie na temat zabrania Amigi na lekcjë matematyki czy informatyki do szkoîy i zrobienia maîego pokazu? Niejeden nauczyciel przekonaîby sië bardziej do Amigi, a niejeden uczeï do matematyki, gdyby mu pokazaê na lekcji takie cudeïka... Sensownym zastosowaniem fraktali wydaje mi sië np. generowanie bardzo efektownych obrazków, które moûna stosowaê jako podkîady (równieû animowane) do róûnych prezentacji (np. Scala) czy kompozycji graficznych. Na ilustracjach przedstawiam kilka przykîadów takiego zastosowania. Fraktale stosuje sië teû w niektórych programach graficznych do nadawania realistycznych tekstur czy ksztaîtów generowanym obiektom. Ale to juû jest temat na inny artykuî. Jako ciekawostkë moûna dodaê, ûe wydawane sâ nawet albumy z bajecznie pokolorowanymi fraktalami, ba, kasety wideo, przedstawiajâce ich animacje (wyobraúcie sobie pîynne powiëkszanie wycinka fraktala, tego na ilustracjach w poprzednim odcinku, w dodatku w HAM8). Do takiej animacji w czasie rzeczywistym Amiga sië jednak nie bardzo nadaje. Moûe z jakimô Raptorem czy innym Warpem coô by sië zdziaîaîo, a póki co trzeba generowaê klatki osobno, a póúniej je îâczyê, tak jak w programach do raytracingu. Idealnym rozwiâzaniem byîoby zastosowanie do tego celu potëûnych stacji typu Silicon Graphics (to te umiejâce np. renderowaê ruch dinozaura w czasie rzeczywistym). To dopiero byîby prawdziwy lot nad fraktalowym ôwiatem! Na dwóch ostatnich ilustracjach przedstawiam inny, nie omówiony tu przeze mnie, rodzaj fraktali -- zbiory Julii. Co to takiego, napiszë przy okazji kontynuacji tego tematu. A czy bëdzie on kontynuowany, to zaleûy wyîâcznie od Was... Czekam na Wasze opinie i sprawozdania ze szkolnych prezentacji. Podziwiajâc fraktale, ciëûko sië oprzeê wraûeniu, ûe formy te sâ nam dziwnie znajome. Spójrzcie na ksztaît konika morskiego, morskich muszli czy skalistego brzegu -- uderzajâce podobieïstwo! Pozostaje tylko pytanie: kto od kogo zrzynaî, matematyka od przyrody czy na odwrót. A moûe wykradliômy skrawek zazdroônie strzeûonej tajemnicy przepisu Natury na piëkno? Niestety, nie znaleziono dotychczas zadowalajâcego wytîumaczenia tych podobieïstw. We fraktalach uderza piëkno przypadkowych kompozycji, a jednoczeônie wysokie samopodobieïstwo i symetria. Porzâdek to czy chaos? W swoich pracach Mandelbrot wyraûaî poglâd, ûe w przyrodzie wszystkie obiekty majâ fraktalnâ strukturë, a twory czysto geometryczne, jak np. koîo, kwadrat czy linia prosta, w ogóle nie istniejâ i sâ jedynie wymyôlonymi przez ludzi uproszczeniami Natury. Jeôli popatrzymy na wzburzone morze o zachodzie sîoïca lub zamarzniëtâ na szybie parë wodnâ, to wydaje sië, ûe Mandelbrot miaî duûo racji... Mój e-mail: zfjmgr@usctoux1.cto.us.edu.pl