Mapy oraz obiekty
Jednym z praktycznych zastosowań fraktali jest generowanie różnego rodzaju map (znajdujących zastosowanie między innymi w grach) niosących za sobą różnorodne informacje. Mogą być to mapy wysokościowe, temperatur, rodzajów gleb i wiele innych.
Pozwalają one twórcom kreować dwu- lub trójwymiarowe tereny - a graczom cieszyć się różnorodnością rozgrywki. Fraktalnie generowane są też obiekty na mapach - zamiast ręcznie umieszczać każde źdźbło trawy, stosuje się programy komputerowe,
który automatycznie wykonują proste, powtarzalne czynności.
Przykładowa mapa
Diamond-square algorithm
Algorytm Diament-Kwadrat jest jednym ze sposobów na wygenerowanie takiej mapy, jaką widzimy powyżej. Swoje działanie opiera on na dwuwymiarowej tablicy (czyli pewnego "pojemnika" na dane) liczb rzeczywistych o "długości" i "wysokości" równej 2n+1.
Najpierw, po uruchomieniu programu wartości "narożników" tablicy ustawiane są na losowe wartości, a następnie, aż do całkowitego zapełnienia tablicy są wykonywane kroki diamentu i kwadratu:
- Krok diamentu: dla każdego odnalezionego kwadratu w tablicy wyznacza się punkt środkowy, mający wartość równą średniej "wierzchołków" kwadratu zwiększonej o liczbę losową
- Krok kwadratu: dla każdego odnalezionego diamentu w tablicy wyznacza się punkt środkowy, mający wartość równą średniej "wierzchołków" diamentu zwiększonej o liczbę losową. W przypadkach, kiedy punkt środkowy znajduje sie na krawędzi tablicy, wyznacza się wartość z trzech, zamiast czterech "wierzchołków".
- Z każdym powtórzeniem (iteracją) obu kroków, zakres, z którego wybierana jest liczba losowa, powinien być zmniejszany.
Graficzna reprezentacja dwuwymiarowej tablicy o wielkości 5
(liczenie kolumn i wierszy
zaczyna się od 0)
Graficzna reprezentacja diamond-square algorithm