Projekt 2 (Zbiory Julia)
Transkrypt
Projekt 2 (Zbiory Julia)
Dr Mirek Łątka Programowanie w C Wiosna 2011 Projekt 2 (Zbiory Julia) 14 października 2010 roku zmarł urodzony w Polsce francuski fizyk i matematyk Benoît Mandelbrot, twórca geometrii fraktalnej. Przykładem geometrycznego fraktala są zbiory Julia. Rozważmy następujące zespolone odwzorowanie na płaszczyźnie: z n+1=z 2n+c , gdzie c jest stałą liczbą zespoloną. Przyjmijmy, że c=-0.123+0745i. Na przykład, jeżeli z0=0.5+0.5i to z1= -0.123 + 1.245i. Zbiór Julia (filled Julia set) tworzą te punkty na zespolonej płaszczyźnie, których kolejne iteracje nie „uciekają” do nieskończoności. To znaczy, odległość kolejnych iteracji od początku układu współrzędnych jest skończona. 1) Korzystając z kodu na ostatniej stronie zapoznaj się z implementacją liczb zespolonych w C++. 2) Napisz program, który generuje nMax=30 iteracji powyższego odwzorowania i dla każdej z takich iteracji oblicza odległość od początku układu współrzędnych. Punkt początkowy z0=x0+y0i wybierz arbitralnie, ale tak aby -1.5≤x0≤1.5 i -1.5≤y0≤1.5. W ten sposób przetestujesz funkcje, których argumentami są liczby zespolone. 3) Zaimplementuj algorytm generacji zbioru Julia: • wybierz punkt z0=x0+y0i na płaszczyźnie zespolonej taki, że -1.5≤x0≤1.5 i -1.5≤y0≤1.5. A więc punkt należy do kwadratu o boku 3 pokazanym na poniższym rysunku. • Generuj kolejne iteracje tak długo jak ich odległość od początku układu współrzędnych jest mniejsza od rMax=2. Jeżeli po nMax=30 iteracjach odległość jest wciąż mniejsza od rMax to na wykresie w punkcie o współrzędnych x0 i y0 rysujemy piksel. • Po przeprowadzeniu obliczeń dla dostatecznie dużej ilości punktów (wykorzystaj zagnieżdżone pętle for) , oczom Twoim ukaże się intrygujący zbiór Julia. • Obliczenia przeprowadź dla c= -0.75, c= -0.391-0.587i, c= -0.123,+0.745i. Dla odważnych: • W zaawansowanych implementacjach kolor piksela odzwierciedla szybkość ucieczki trajektorii wychodzącej z danego punktu do nieskończoności. Dla autorów trzech najbardziej oryginalnych algorytmów „kolorowania” pikseli czeka ocena bardzo dobra z wykładu.