fraktale-obrazy: Program umożliwiąjący generowanie fraktali
Programowanie
Obraz wygenerowany z użyciem programu
fraktale-obrazy
Prosty program napisany w C++ z użyciem biblioteki SDL2, który umożliwia generowanie i zapisywanie obrazów fraktali.
Uwaga!
Początkowo miał być to mały projekt, lecz nieco się rozrósł. Program może być niewydajny i zbugowany.
Jest to plik README z repozytorium GitHub przetłumaczony na język polski.
Instalacja programu
Zklonuj repozytorium GitHub:
git clone https://github.com/bwegrzyn0/fraktale-obrazy
i uruchom program za pomocą komendy ./run.out
.
Użytkowanie
W oknie zobaczysz następujący interfejs:
Radzę samodzielnie wypróbować poszczególne opcje aby zobaczyć ich efekt na obrazie. Tutaj po krótce omówię każdą z nich:
- Brightness multiplier: mnoży jasność wszystkich pikseli przez zadaną wartość.
- Resolution: liczba pikseli na jednostkę długosci. Na przykład, jeśli szerokość obszaru (omawiana dalej) wynosi 10, a rozdzielczość wynosi 100, obraz będzie miał szerokość 100 * 10 = 1000 pikseli. Bardzo duże wartości negatywnie wpływają na wydajność programu. Z tego powodu przy oddalaniu widoku rozdzielczość jest dynamicznie zminiejszana (nie ma to wpływu na zapisywany obraz).
- Number of iterations: liczba iteracji algorytmu IFSP.
- Number of points: liczba punktów w algorytmie IFSP.
- Area X and Area Y: współrzędne X i Y obszaru generacji fraktala.
- Area width and Area height: szerokość i wysokość obszaru generacji fraktala.
- Show area border: pozwala przełączać widoczność czerwonej granicy wokół obszaru generacji fraktala.
-
Transformation parameters: maksymalnie można mieć 4 transformacje. Każdą z nich charakteryzuje 7 liczb. Współrzędne są transformowane według następujących zależności:
transformowane_x = a_x * x + b_x * y + c_x transformowane_y = a_y * x + b_y * y + c_y
Każda transformacja ma swoje prawdopodobieństwo, które nie wpływa na kształt fraktala. Zmienia ono jedynie gęstość rozłożenia punktów na nim.
Wskazówka
Jeśli potrzebne są jedynie np. 2 transformacje, należy ustawić prawdopodobieństwa pozostałych dwóch na zero. - Image file name: nazwa pliku z obrazem fraktala (bez rozszerzenia).
Obrazy są zapisywane w formacie .bmp
w katalogu, w którym znajduje się program.
Można poruszać się i przybliżać obraz fraktala w programie za pomocą strzałek i scrolla.
Jak działa ten program?
Wybrana liczba puntków jest jednorodnie rozłożona w kwadracie, po czym są one poddawane algorytmowi IFSP. Każdy piksel posiada gęstość równą liczbie punktów, która w nim wylądowała. Jego jasność jest ustalana na podstawie gęstości - piksele z 0 punktami są czarne, a piksele z największą ich liczbą białe.
Przykładowe obrazy
Licencja
Program nie posiada licencji i może być używany w dowolny sposób.