XaoS - XaoS

XaoS
Xaos.png
Pierwotny autor (autorzy) Jan Hubička, Thomas Marsh
Deweloper(zy) Współtwórcy XaoS
Wersja stabilna
4.2.1 / 18 stycznia 2021 ; 4 miesiące temu ( 18.01.2021 )
Magazyn Edytuj to na Wikidata
Napisane w C , C++
System operacyjny Wieloplatformowy
Dostępne w 14 języków
Lista języków
czeski, angielski, francuski, niemiecki, hindi, węgierski, islandzki, włoski, portugalski, rumuński, rosyjski, serbski, hiszpański, szwedzki
Rodzaj Oprogramowanie do generowania fraktali
Licencja GPL
Stronie internetowej xaos-projekt .github .io

XaoS to interaktywny program do powiększania fraktali . Pozwala użytkownikowi na ciągłe powiększanie lub pomniejszanie fraktala w czasie rzeczywistym.

XaoS jest objęty licencją GPL . Program jest wieloplatformowy i jest dostępny dla różnych systemów operacyjnych , w tym Linux , Windows , Mac OS X , BeOS i innych.

XaoS może pokazać zbiór Mandelbrota (potęgi 2, 3, 4, 5 i 6), fraktal Octo, trzy rodzaje fraktali Barnsleya , fraktal Newtona (porządek 3 i 4), fraktal Phoenixa i magnes (1 i 2). XaoS może wyświetlać zbiory Julii z wybranych części fraktalnych. Xaos umożliwia również użytkownikom wprowadzanie niestandardowych formuł.

XaoS jest w stanie wyświetlać fraktale jako grafikę ASCII za pomocą AAlib , co w połączeniu z budową na bezpłatnych narzędziach GNU pozwala na jego uruchomienie niemal wszędzie.

W zestawie znajduje się interaktywna pomoc i animowane wprowadzenie do fraktali. Wstęp zajmuje się w dziesięciu rozdziałach z różnymi formułami prezentowanymi w oprogramowaniu i ich funkcjami.

Algorytm Hubički

XaoS był pierwotnie tylko „źle napisaną” przeglądarką Mandelbrota, dopóki Jan Hubička nie dodał wydajnego powiększania, używając techniki czasami nazywanej algorytmem XaoS lub algorytmem Hubička.

W tamtych czasach filmy z zoomem fraktalnym były tworzone przez całkowite przeliczenie każdej klatki, mimo że naturalnie miały ze sobą wiele wspólnego. Uniemożliwiło to interaktywne powiększanie bez bardzo potężnych komputerów. Co więcej, o ile nie zostanie użyte jeszcze więcej przetwarzania w celu wykonania antyaliasingu , ponowne obliczenie każdej klatki daje efekt „migotania”, gdy małe jasne obszary uderzają, a następnie znikają między pikselami.

Jednak umożliwienie użytkownikowi powiększania, a nie skakania, jak w Fractint , wydawało się najbardziej naturalnym sposobem interakcji z fraktalami. Aby stworzyć interaktywny zoom, Hubička musiała znaleźć sposób na zapisanie wykonanych już obliczeń. Zapisanie każdego obliczonego piksela zajęłoby zbyt dużo pamięci, więc algorytm Hubička zapisuje tylko poprzednią klatkę i zamiast zapamiętywać położenie każdego piksela, może je wyrównać w rzędach i kolumnach i zapamiętać je zamiast.

Najtrudniejszą częścią algorytmu XaoS było wybranie, które zapisane wiersze i kolumny mają zostać narysowane. Robienie tego źle skutkuje zniekształceniem obrazu, ale musi być zrobione szybko, aby było użyteczne. Po wypróbowaniu kilku różnych heurystyk problem został ostatecznie potraktowany jako problem optymalizacji.

Pozostałe wiersze i kolumny są pokolorowane tak samo jak najbliższy wiersz/kolumna i są na bieżąco obliczane, gdy procesor ma na to czas. Jest to ostrożna równowaga między utrzymaniem zoomu a zwiększeniem poziomu szczegółowości. Obliczanie obszarów, do których obraz jest powiększany, ma wyższy priorytet, ponieważ będą one wyświetlane na ekranie najdłużej i prawdopodobnie są to miejsca, na które użytkownik i tak patrzy. Oddalanie następuje odwrotnie, a priorytetem są krawędzie.

Algorytm Hubička można również zastosować do powiększania innych obrazów, w których obliczane są piksele, i został wykorzystany w innym oprogramowaniu, takim jak program do tworzenia wykresów złożonych funkcji rtzme ("Real-Time Zooming Math Engine") i innych fraktalnych zoomach.

Bibliografia

Linki zewnętrzne