Wpisany przez Tomasz Lubiński
czwartek, 21 sierpnia 2008 16:31
Na podstawie zbioru Mandelbrota definiuje się zbiory Mandelbrota wyższych rzędów. Proces generowania przybliżeń takich zbiorów przebiega identycznie jak w przypadku zbioru Mandelbrota. Modyfikacji podlega jedynie sposób generowania ciągu liczb zespolonych z0, z1, z2, ..., dla danego punktu p
na płaszczyźnie zespolonej. Dokładnie rzecz biorąc zmienia się jedynie stopień potęgi użytej we wzorze na ciąg.
Poniżej znajdują się definicje zbiorów Mandelbrota kolejnych rzędów wraz z ich reprezentacją graficzną:
Przypomnijmy jeszcze działania na liczbach zespolonych jakie będziemy potrzebować podczas obliczeń. Liczba zespolona z składa się z części rzeczywistej zr oraz części urojonej zi, czyli z = zr + i zi.
Mnożenie definiujemy następująco:
a * b = (ar*br - ai*bi) + i(ar*bi + ai*br)
Dodawanie definiujemy następująco:
a + b = (ar + br) + i(ai + bi)
Moduł z liczby zespolonej definiujemy następująco:
,
dlatego też w praktyce warunek |z| < 2 zastępuje się równoważną nierównością (zr2 + zi2) < 4. Pozbywamy się tutaj czasochłonnego obliczania pierwiastka kwadratowego.
Poniżej znajdują się definicje zbiorów Mandelbrota kolejnych rzędów wraz z ich reprezentacją graficzną:
- Mandelbrot
z0 = 0
zn+1 = zn2 + p

- Cubic Mandelbrot
z0 = 0
zn+1 = zn3 + p

- Quadratur Mandelbrot
z0 = 0
zn+1 = zn4 + p

- Penta Mandelbrot
z0 = 0
zn+1 = zn5 + p

- Hexa Mandelbrot
z0 = 0
zn+1 = zn6 + p

- Hepta Mandelbrot
z0 = 0
zn+1 = zn7 + p

- ...
Przypomnijmy jeszcze działania na liczbach zespolonych jakie będziemy potrzebować podczas obliczeń. Liczba zespolona z składa się z części rzeczywistej zr oraz części urojonej zi, czyli z = zr + i zi.
Mnożenie definiujemy następująco:
a * b = (ar*br - ai*bi) + i(ar*bi + ai*br)
Dodawanie definiujemy następująco:
a + b = (ar + br) + i(ai + bi)
Moduł z liczby zespolonej definiujemy następująco:
,dlatego też w praktyce warunek |z| < 2 zastępuje się równoważną nierównością (zr2 + zi2) < 4. Pozbywamy się tutaj czasochłonnego obliczania pierwiastka kwadratowego.
Przykład w JavaScript:
Zaznaczając obszar uzyskasz jego powiększony obraz. Kliknięcie prawym klawiszem (bądź dotknięcie dwoma palcami na urządzeniach z ekranem dotykowym) spowoduje powtórne pokazanie całego zbioru.
| Autor | Język programowania | Komentarz | Otwórz | Pobierz | Ocena |
| Tomasz Lubiński | C# | MS Visual Studio .net | ![]() | ![]() |
![]() ![]() ![]() ![]() / 1 |
| Tomasz Lubiński | C/C++ | Borland Builder 6 | ![]() | ![]() |
![]() ![]() ![]() ![]() / 1 |
| Tomasz Lubiński | Delphi/Pascal | Borland Delphi 5 | ![]() | ![]() |
![]() ![]() ![]() ![]() / 1 |
| Tomasz Lubiński | Java Script | Firefox 3.0+, Safari 3.0+, Chrome 3.0+, Opera 9.5+, IE 9.0+ | ![]() | ![]() |
![]() ![]() ![]() ![]() / 0 |
Poprawiony: wtorek, 21 czerwca 2011 19:32



/ 1

