Einträge mit dem Tag ‘Fraktal’

Wirklich witzige Google-Anfragen kann ich aus letzter Zeit leider nicht vermelden. Festzustellen bleibt lediglich, daß sich immer wieder Leute hierhin verirren, die auf ihre Fragen fast eine Antwort bekommen -- dann aber keinen Kommentar hinterlassen, sondern wortlos wieder abziehen. Wer nach povray mandelbulb sucht, will doch sicher den Code für das Fraktal in einer Form haben, die von PoV-Ray gelesen werden kann? Naja, vielleicht hilft es ja doch noch jemandem, wenn auch der ursprüngliche Besucher längst weg ist (siehe unten).

Außerdem: mein Hauptblog läßt sich wunderbar über Google finden; das Nibelungen-Projekt aber nur über die Blog-Suche. Das finde ich ein bißchen frustrierend, weil es für die Besucherzahlen alles andere als förderlich ist. Naja, vielleicht sollte ich trotzdem noch ein paar Seiten ablichten und vor allem auch transkribieren, damit die Suchmaschinen ein bißchen mehr Text zum Zerkauen haben.

So, das war's auch schon für heute. Ach ja, der Code:

#declare iteratex = function (x, y, z, a) {
a + pow(f_sphere(x,y,z,0),4)*sin(f_ph(y,z,x)*8)
*cos(f_th(y,z,x)*8)}
#declare iteratey = function(x, y, z, b) {
b + pow(f_sphere(x,y,z,0),4)*sin(f_ph(y,z,x)*8)
*sin(f_th(y,z,x)*8)}
#declare iteratez = function(x, y, z, c) {
c + pow(f_sphere(x,y,z,0),4)*cos(f_ph(y,z,x)*8)
}
isosurface {
function {
f_sphere(iteratex(iteratex(iteratex(x,y,z,x), iteratey(x,y,z,y), iteratez(x,y,z,z), x),
iteratey(iteratex(x,y,z,x), iteratey(x,y,z,y), iteratez(x,y,z,z), y),
iteratez(iteratex(x,y,z,x), iteratey(x,y,z,y), iteratez(x,y,z,z), z), x),
iteratey(iteratex(iteratex(x,y,z,x), iteratey(x,y,z,y), iteratez(x,y,z,z), x),
iteratey(iteratex(x,y,z,x), iteratey(x,y,z,y), iteratez(x,y,z,z), y),
iteratez(iteratex(x,y,z,x), iteratey(x,y,z,y), iteratez(x,y,z,z), z), y),
iteratez(iteratex(iteratex(x,y,z,x), iteratey(x,y,z,y), iteratez(x,y,z,z), x),
iteratey(iteratex(x,y,z,x), iteratey(x,y,z,y), iteratez(x,y,z,z), y),
iteratez(iteratex(x,y,z,x), iteratey(x,y,z,y), iteratez(x,y,z,z), z), z), 2)
}
}

[Edit: Typo in den Metadaten]

Kein Kommentar

Das Wort des Tages: Unbill. Außerhalb alter Texte (oder der Fantasy-Literatur) hört man es äußerst selten. Heute aber bat unser IT-Dienstleister, diese zu entschuldigen: ein zentraler Dienst ist vor Weihnachten ausgefallen, der Hersteller arbeitet immer noch an der Behebung des Problems.

Außerdem: Ich habe mich in einem Irrgarten aus Wenn-Dann-Abfragen verlaufen und ein Softwarepaket an zwei Stellen repariert, aber gleichzeitig an drei anderen kaputtgemacht. Bis die Reparatur dann getestet war, ging es schon stark auf acht zu. Naja, wer früh nach Hause will, sollte im Fenster mit den Build-Resultaten vielleicht ganz bis nach rechts scrollen. Dann sähe man nämlich die roten Balken.

Und: Während ich auf den Buildservice warte, bereite ich diesen Blogeintrag in einem TextEdit-Fenster vor. Das Programm mag aber den Satzanfang Naja nicht und ersetzt ihn automatisch durch Anja. Zum Glück kann man das abschalten.

Und zu guter Letzt: Der neue Mandelbulb-Film ist fertig. Es hat ein paar Wochen gedauert, ihn zu berechnen; aber für glatte Kanten und eine höhere Framerate hat ich der Aufwand gelohnt.


Kein Kommentar

Today, another piece of the Mandelbulb Puzzle fell into place (actually, the lower right corner). The mosaic series will continue for a while, but most important parts are there by now. One could start thinking about the next step, say zooming in. However, a higher order is hardly possible without software optimization.

Kein Kommentardeutsch

The latest addition has taken quite some time, but it is also a larger piece of the image: the upper right corner is complete. (Of the fractal, that is; I will supply the remaining background at a later date.)

You can find the entire series by tag. Its beginning is here.

Kein Kommentardeutsch

Today, I only have a quick little thumbnail to add to the mosaic.

Kein Kommentardeutsch

Today, the jigsaw puzzle has grown a little bit.

Kein Kommentardeutsch

Some time ago, I  announced my intentions to calculate a new picture of Mandelbulb with one more iteration step. Unfortunately, PoV-Ray proved to be even slower than I feared. Watching my computer computing on my own is not much fun, so I show you a preview with three iteration steps -- after more than a week, one can get an impression of what it will look like once it is finished. Try watching the large picture to see full details.

Admittedly, a few more iteration steps would be nice: the detailed structure seen on Daniel White's images is much better (he seems to use ten steps).

2 Kommentaredeutsch

A few days ago, I promised to write more about Mandelbulb, a three-dimensional fractal related to the Mandelbrot set. It has taken several days on a two-processor machine, but now the first movie is finally ready.

However, I would like to tell you a bit about sequences first. Sequences are, well, just numbers following one another; exactly what numbers make up the sequence is determined by certain rules.

Let us try to square numbers: 2, 4, 16, 256, 32768, ...  -- these numbers will grow very quickly. We might try to start with a smaller number instead: 1, 1, 1, ... -- I will admit this to be a rather boring sequence: 12=1, so there is little change. Maybe we could try this: 0.1, 0.01, 0.0001, ... -- now the numbers are actually shrinking. So: if we keep on squaring a number less than one in this way, it will shrink to nothing; numbers larger than one are growing, and one itself remains unchanged. By the way, trying negative number will not change this pattern -- the number will become positive during the first step, and the sequence proceeds as before. If we draw the number line, it might look a bit like this:

Zahlenstrahl

Everything between -1 and +1 remains finite. All other numbers will grow ever larger when squared. We could try to make our formula (i.e. keep on squaring) more complicated, but we would not get funny pictures, anyway: the number line is, well, just a single line -- what can we make of it? Having an area to draw on would be much nicer:

C-Ebene

How shall we assign numbers to different spots on this plane? Luckily, this is no problem in mathematics: we simply invent new numbers. We shall do this in such a way that in addition to zero left of one and to to the right, we will have additional number above and below. Now we have to think of a way to square such numbers:

C-Mult

We imagine a clock's hand pointing to each number. When trying to square such a number, we will first square its length. Then, we shall turn its hand a bit: one o'clock gets two o'clock, three o'clock becomes six o'clock, and four o'clock becomes eight o'clock. And, just in case you are wondering: mathematicians' clocks turn the wrong way -- and in this case, twelve o'clock (zero) is to the right, not on top.

This definition might look a tad strange, but it has a distinct advantage: all those ordinary numbers on the number line are at twelve o'clock (the positive ones), or six o'clock (the negative ones). When squaring them according to our new rule, the positive numbers will remain positive numbers, and the negative ones will be turned from six to twelve o'clock. That is, when squaring a number from the number line, we obtain a number from the positive half of the number line. Since we are squaring each hand's length, the result is just the same as when following the ordinary rules from school.

C-Konvergenz

Going back to sequences, we square away. The result is a bunch of hands rotating madly -- but all hands longer than on grow indefinitely, while the shorter ones shrink away to nothing.

This lets us draw at least a little picture, if not a very interesting one: a disc with radius one noting all numbers shrinking when they are squared.

It seems obvious that a more complex formula can create more complex pictures. However, if you think the formula has to be much more complex, you are mistaken: try to square and add the number alternately, like this: 12=1, 1+1=2, 22=4, 4+1=5, 52=25; thus: 1, 2, 4, 5, 25, ... and the numbers are getting ever larger. Starting with a negative number, we encounter a small surprise: -22=4, 4+(-2)=2, 22=4, 4+(-2)=2... we are getting an infinite sequence of the number two! Therefore, when painting every converging sequence black (i.e. every sequence remaining finite), we will not get a circle: +1 would remain white, but -2 would become black. Maybe an ellipse? It is hard to tell intuitively what our clock-hand numbers[1] do, so we have to use a computer to calculate the picture. This is the result:

Mandelset

It is surprising and quite wonderful that such a simple formula creates such a complex image; and this simplicity is, to a large extent, the beauty of the Mandelbrot set: one gets so much more than one has put in.

Finally, I would like to show my movie of the three-dimensional variant. An explanation of the corresponding formula will have to wait until next time. The fractal looks pretty smooth here, whereas the two-dimensional Mandelbrot set is quite hairy. This is not a property of the Mandelbulb, but of my alculations: in order to get a result in no more than a few days, I have calculated only the first two steps of the sequence. To get a more realistic picture, I would have had to use ten or so. Moreover, I will do something about the rough, pixelled structure.

[1]Those of you who have paid very close attention might notice that while we have defined how to square a clock-hand number, we have neglected to define the summation. However, doing so is quite simple: to add to hands, we shift one of them so that its base coincides with the tip of the other hand. During that shift, neither hand must change the direction in which it points. The sum is then defined as a new hand that points from the base of the first to the tip of the second hand. This will look familiar if you know vectors[2].

[2]Moreover, the clock-hand numbers will look quite familiar to those who know complex numbers.

1 Kommentardeutsch

Earlier this week, Slashdot published the news that a three-dimensional equivalent of the Mandelbrot set has been found. Visiting Daniel White's page, not only did I find an explanation, but also unprecedented images -- and I knew immediately that I would like to create such images myself.

Fractured

The class of objects to which the Mandelbrot and the new Mandelbulb belong is called fractals. What are fractals, anyway? Well, a fractals in an object with a dimension that is not an integer. At first glance, it is not quite clear what this means: an object is either one-dimensional, such as a line; or a sheet of paper, which has two dimensions (ignoring its thickness); or, for example, a cube with three dimensions. But two and a half?

If we look at the dimension of a vector space, this is, indeed, impossible: there, one would simply count the (independent) directions that are to be found in a given object, and name there number the object's dimension: if there is just length (such as on a piece of string), the dimension is one. The living room has length, width, and height, thus it is three-dimensional.

But there is a different way: let us take a ball that is large enough to hide the piece of string. For a one-meter string, we would need a ball one meter in diameter. Then, try with a ball half that size: we would need two to cover the string. If we tried with ten-centimeter balls, we would need ten of them, and so on.


That does not work for my living-room, however: I could put the whole room into a large ball of, say, five meters; but I would need many more than just five balls of one meter each -- more than a hundred, in fact. That is, the dimension of an object tells us how quickly the number of balls grows when the balls themselves shrink. For a one-dimensional object, 2 balls of size 1/2 are sufficient, for something three-dimensional, we would need 8, or 23.

Now, let us turn around and use this counting as a definition: a chessboard is two-dimensional precisely because we need  64=82 squares of size 1/8 to cover it.

Erasing

What would an object need to look like to make a fractional number drop out of this computation? Let us make a little experiment. You only need a sheet of paper, a pencil, an eraser, and maybe a ruler (I did without). First, draw a straight line, like this:

eins

Then, take the eraser to remove the middle third of the line:

zwei

Erase the middle third of the two remaining lines as well:

drei

And so on -- in principle, you can continue indefinitely. That is, as long as your eraser is fine enough.

vier

What happens if you try to cover your creation with balls? Start with one that is large enough to cover all those little dashes. If you then try balls a third of its size, you do not need three of them -- instead, two are sufficient: one for the left side, one for the right. You have removed everything in the middle with your eraser, after all. Using balls of diameter 1/3, only 2=30.63 of them are enough to cover the drawing. So you could say your little piece of art has a dimension of 0.63. This is not as weird as it may look at first glance: There is an enormous number of dots, most of which are very close together.  Isolated dots would have a dimension of 0; and dots that are infinitely close together form a line of dimension 1. Our result is somewhere inbetween, which should hardly come as a surprise.

The Mandelbrot set is similar: regardless of how far we magnify parts of it, there are ever finer structures appearing.In principle, this is true for the Mandelbulb above; however, the picture has been rendered with simplified equation, so only the largest knobs are visible: it is like throwing away the erasor after the first two steps.

Appearing soon

During the next few days, I would like to show how to calculate the Mandelbrot set, and the new Mandelbulb. Hopefully, there will also be more pictures, and perhaps a movie or two.

[Edit: Typos]

3 Kommentaredeutsch