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óre automatycznie wykonują proste, powtarzalne czynności.

Przykładowa mapa wysokościowa

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 pewnym "pojemniku" 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.
Tablica 5x5

Graficzna reprezentacja dwuwymiarowej tablicy o wielkości 5
(liczenie kolumn i wierszy
zaczyna się od 0)

Algorytm Diamond Square - graficzne wytłumaczenie

Graficzna reprezentacja diamond-square algorithm


Zobacz to sam!

Naciśnij przycisk i stwórz własną mapę, a na jej podstawie model terenu! Spróbuj kilka razy i zobacz jak się zmienia!

(Źródła: wikipedia.org)