Latööcarfian Kings Dream

Under ett par kvällar har jag suttit med ett litet program som ritar ut en fraktal med hjälp av SDL. Ekvationen för fraktalen är tagen från boken Chaos in Wonderland av Clifford A. Pickover, ISBN 0-312-12774-X. Fraktalen kallas Latööcarfian i boken. Kärnan i algoritmen är:

x' = sin(y * b) + c * sin(x * b);
y' = sin(x * a) + d * sin(y * a);

där a = -0.966918, b = 2.879879, c = 0.764155 och d = 0.744728 för bilden som kallas ”kings dream” i boken. Som en extra touch ändrar jag lite på dessa värden mellan varje frame och ritar sedan om bilden vilket får den att se ut som den rör sig lite spöklikt. Allt finns med i källkoden, som laddas hem med följande kommando:

bzr branch http://vmlinux.org/~av/latoocarfian

För att kompilera bör följande paket vara installerade: build-essential, libsdl1.2-dev och libpng12-dev. För en extra finess, installera även gimp och ffmpeg.

Gå in i katalogen och skriv make för att bygga och make link för att skapa en länk från filter.scm till ~/.gimp-2.4/scripts/. Genom att ange argumentet -p till programmet kommer en massa png-filer skapas. Dessa kan sedan bearbetas med gimp via scriptet gimp.sh (som använder filter.scm, därav länken). Kör bara ./gimp.sh ‘*.png’ efter att bilderna skapats med ./latoocarf -p. Till sist kan en avi-fil
skapas med ffmpeg. Kör ./encodemovie.sh för att göra detta. Naturligtvis går det att skapa en filmfil utan att köra varje frame genom gimp först också. Hoppa bara över gimp.sh.

Om ni inte orkar installera, bygga från källkod, fixa och trixa så finns en kort video på youtube som visar hur det blir. Ganska gålig upplösning dock.

Annonser

Om albertveli

Grävande programmerare.
Det här inlägget postades i Programmering och har märkts med etiketterna , . Bokmärk permalänken.

4 kommentarer till Latööcarfian Kings Dream

  1. Joachim Nilsson skriver:

    Åh vad kollt, snyggt jobbat!

  2. Mårten Wikström skriver:

    Fräckt! Nu blev jag sugen på att realisera min idé om animerade slumppunktsstereogram.

  3. albertveli skriver:

    Jag har inte tänkt på det förut, men med den här tekniken kan man ju göra som ”amigademos” fast man renderar en frame i taget och sätter ihop till en film sen. Då behöver man inte optimera som en tok för att beräkna i realtid heller. Visserligen fuskigt, men kul ändå.

  4. per funke skriver:

    Jag skrev ett VB-program vintern 1996 i Idre i en lånad fjällstuga (som var det enda jag hade råd med som nyskild när jag skulle vintersemestra med ungarna). Idén var att jag ville kunna spåra de ställen där diskreta förändringar av funktionen inträffade, ‘förstora’ dess områden och köra igen för att se vad som hände i detalj. Barnsligt men kul.

    Jag satte igång det häromdagen på en W7-maskin för första gången på sådär 10 år. Barnsligt men kul.

    http://bitsdream.dyndns.org/lat/lat.html

    Ja, jag kör Linux sedan 1998 så VB känns lite anakronistiskt. Jag kommer att göra om det i någon roligare miljö när jag går i pension 2015.

    :0)
    Mvh Per

Kommentera

Fyll i dina uppgifter nedan eller klicka på en ikon för att logga in:

WordPress.com Logo

Du kommenterar med ditt WordPress.com-konto. Logga ut / Ändra )

Twitter-bild

Du kommenterar med ditt Twitter-konto. Logga ut / Ändra )

Facebook-foto

Du kommenterar med ditt Facebook-konto. Logga ut / Ändra )

Google+ photo

Du kommenterar med ditt Google+-konto. Logga ut / Ändra )

Ansluter till %s