index
index

Michiel van der Haagen

Psychodeliczne programy rekursywne

Programy te napisałem w czasie, kiedy byłem bezrobotny. Skończyłem już studia na wydziale biologii ale jeszcze nie zdecydowałem się zająć grafiką komputerową. Znalazłem książkę o fraktalach z kilkoma programami w basic'u. Przełożyłem je na Pascala i w ten sposób nauczyłem się programować. Szybko dokonałem własnych modyfikacji i odkryłem opcje powtarzania kolorów. Wydaje mi się, że byłem wtedy trochę szalony. Czasami wpadałem w rytm programowania przez cały dzień i podziwiania wieczorami tego, co udało mi się zrobić. Ostatnio przyjrzałem się tym programom jeszcze raz i odkryłem, że obecnie komputery są tak szybkie, że teraz są o wiele bliższe moim oczekiwaniom wobec ich możliwości.
Mój pierwszy komputer był wyposażony w monitor EGA - tylko 16 kolorów, ale to było całkiem fajne. Obliczanie zabierało dużo czasu lecz cykliczne odtwarzanie kolorów było już szybkie. Zawsze starałem się dotrzeć do granic wydolności maszyny, na której pracowałem. Teraz czasami różne rzeczy dzieją się nawet za szybko. Tych kilka programów przystosowałem do prędkości jakimi operują komputery obecnej generacji (niektóre z nich nie potrzebowały żadnych zmian). Jeśli się wam spodobają mogę poświęcić trochę czasu by przystosować do nowego sprzętu kilka następnych. Te prezentuję wam w takiej postaci, w jakiej są co oznacza, że nie są zbyt wygodne w obsłudze. Poniżej znajduje się krótka instrukcja obsługi zawarta również w pliku psycho.zip, który możecie ściągnąć do waszego komputera.

By programy działały muszą się znajdować w tym samym katalogu co pliki .bgi

||||||||||||||||| Klawisze: |||||||||||||||||

Circles
Escape = koniec

Ghost
Escape = koniec

Matrix1 i Matrix2
+ (numeryczna część klawiatury) zwiększa prędkość
- (numeryczna część klawiatury) zmniejsza prędkość
p zmienia paletę kolorów
Escape = koniec

Mira
dowolny klawisz by zacząć
Escape = koniec

Mtxpar
s = koniec

No_end
najpierw trzeba podać numer od 0 do 999 (daje to 1000 różnych punktów startu)
klawisze od 1 do 6 pokazują te same punkty w inny sposób
spacja = przejście do następnego zestawu
q = koniec

||||||||||||||||||||||||||||||||||||||||||||

Podstawą większości z tych programów jest funkcja rekursywna. Znaczy to tyle, że funkcja wykorzystuje jeden punkt dla wyliczenia drugiego, następnie na podstawie drugiego wylicza trzeci itd. Jeśli połączyć te punkty, na ekranie monitora zacznie rosnąć figura. Gdyby istniały monitory o nieskończonej wysokiej rozdzielczości okazało by się, że te same dwa punkty nigdy nie znajdują się w tym samym miejscu. Odkrywcami tego zjawiska są Gumowski i Mira, którzy pracowali w instytucie CERN w Genewie. Właśnie tam, pod ziemią znajduje się akcelerator magnetyczny, w którym cząstki atomów krążą w kółko, coraz szybciej, zderzają się i tworzą nowe cząstki, które są badane.
Wydaje mi się, że tamtejsi naukowcy przy obliczaniu trajektorii cząstek elementarnych w akceleratorze wyszli właśnie od funkcji rekursywnych.
W funkcjach tych można zmieniać niektóre parametry. W programie Mira I jeden z parametrów zmienia się w całym zakresie, od -0.99 do +0.99. Program w basic'u jest bardzo mały. Mieści się na jednej kartce A4. To zadziwiające, że tyle kształtów jest produkowanych przez tak niewiele linii kodu żródłowego.

Miłej zabawy

Michiel van der Haagen

ZAŁADUJ



Michiel van der Haagen - Psychedelic recursive programs

What is this?

These programs I've made in the period when I was unemployed. I finished Biology studies and did not decide to do Computer graphics yet. I found a book about fractals with some program's in basic. I translated them in Pascal. This is how I learned programming. Soon I made my own modifications, and I discovered colorcycling. I am afraid I was a bit of a freak in these days. Sometimes I had a rhythm of programming at the daytime and enjoying what I found in the evenings. Recently I looked at them again and I found out that now that the computers are so much faster they are much closer to what I wanted them to be.
My first computer had an EGA screen. Only 16 colors, but that was already great. Calculating took a long time, but color cycling was quick. I always tried to go to the border of what was possible on the machine I had. Now sometimes things go much to fast. These are the few programs that I adapted a bit to the new speeds, or that did not need an adaptation. If you like them I might put some time into updating more old stuff. I present them to you the way they are. That means not very user frendly. Here is the manual.

In order to run the programs must be in the same directory as the .bgi files.
(these are the graphic drivers)

||||||||||||||||| Keys: |||||||||||||||||

Circles
Escape to quit.

Ghost
Escape to quit.

Matrix1 and Matrix2
+ (all the way to the right) increases the speed
- (also right on the keyboard) decreases the speed
p changes the (color) palette
Escape key to quit.

Mira
Any key to start.
Escape to quit.

Mtxpar
s to stop (quit).

No_end
first you have to give a number between 0 and 999 (this gives you 1000 different starting points)
the key's 1 to 6 show the same points in a different way.
Space bar to go to the next set.
q for quit.

||||||||||||||||||||||||||||||||||||||||||||

The basis of most of the programs is a recursive function. That means a function that uses a point to calculate the next point. Then it can use this point to calculate the next point etc. If you plot these points a picture grows on your screen. If you would have a screen with infinite high resolution you would find that never two points are at the same place. It is invented by Gumowski and Mira. They where working at CERN in Geneve. There under the ground is a ring of electro magnets in which particles go round and round faster and faster until they hit an other particle.
I think they used these kind of functions to calculate the trajectories of particles through the accelerator ring.
In the function there are some parameters you can change.
In the program Mira I go through the whole range of one parameter, from -0.99 to +0.99. The basic program is verry small, it fits on one A4. I was amazed at the variety of shapes these few lines of code could produce.

Have fun

Michiel van der Haagen.

projekty

n/files

label

rants

wywiady

teksty

napisz do nas