Title: Mirror Post by: Aexion on March 04, 2015, 02:14:07 PM Hello,
Here is a very simple idea that perhaps gives interesting results for many fractals, in both 2D and 3D. On the Mandelbrot Set, suppose that you consider every iteration as a photon path that goes from the previous iteration to the next. Now suppose that you put a mirror between two consecutive iterations. The mirror will make a reflection and the value will end in another place. This simple approach changes the iteration values and the overall shape of the fractal. For those who are using the abs based fractals (The Burning ship and the others), the abs function actually acts like a mirror, reflecting the orbit. But it's centered on the origin, its infinite and can only be oriented in right angles. Other angles, positions and sizes can create interesting patterns. My approach is very simple: Since a 2D mirror is just a line, I define the starting and ending points of this line segment Also, every iteration is considered a line segment that start from the previous iteration value. The program tests if both line segments intersects, If there's an intersection point, the new iteration value is calculated from the reflection angle and the length of the iteration line segment from the intersection point. This procedure is repeated until the bailout count is reached. This changes the iteration position but no the length, since it only a reflection The program is very simple (int C) because I only want to show the theory. It saves the resulting image in a ppm format that you can read in any graphics program. On it you can set the mirror position and the angle, then it will calculate a Mandelbrot set using the above procedure. Some of the abs based Mandelbrots can be seen if you set the mirror in a right angle. Now the question is, how it looks if you add more than one mirror (Mandelbrot optics?) or if you move it into 3D. I tried other mirror types (circles) and refractions but without much luck, but any idea is as always welcomed. Later I will post an animation of rotating mirrors, but I suppose that someone can build a shader on where you can interactively add mirrors and positions them (perhaps.. no idea) Code: #include <stdio.h> Hope you like it. Aexion ps. Try it in other fractals.. :) pps. Here's an animation of a rotating mirror centered at (-1,0i): (http://rfractals.net/share/mirror.gif) Title: Re: Mirror Post by: cKleinhuis on March 04, 2015, 08:19:33 PM that is cool, a nice method to deform an object, as far as i can see it fits perfectly to a hybrid constellation (to be used with any formula)
@darkbeam you think you can do a formula that is just performing this transformation, in 3d with a plane obv ;) Title: Re: Mirror Post by: youhn on March 04, 2015, 09:19:58 PM Oh yeah, that moving one is very cool !! :worm: :worm:
Have to read theory again to comprehend, and watch the animated stuff again. If you use a line in 2D defined by 2 points, would a plane defined by 3 point give similar results in 3D ...? I think placing mirrors is already done for the KIFS fractals (probably both in Mandelbulber and MB3D). I love that animation by the way. I tried to compile on Linux, but got this error: Code: % gcc -o mirrorbrot mirrorbrot.c I've tried to force C99 mode: Code: % gcc -std=c99 -o mirrorbrot mirrorbrot.c I would like to explore the relation between the mandelbrot/burningship/buffalo fractals. Of course with reference to the work of Stardust4ever: http://stardust4ever.deviantart.com/art/Mandelbrot-ABS-Variations-Complete-Set-of-Formulas-487039852 http://stardust4ever.deviantart.com/art/Cubic-Mandelbrot-ABS-Variations-Incomplete-487039945 Title: Re: Mirror Post by: cKleinhuis on March 04, 2015, 09:24:45 PM question: the tricorn pops out when placing the mirror line on a standard mandelbrot iteration? nice!
Title: Re: Mirror Post by: DarkBeam on March 04, 2015, 09:28:36 PM that is cool, a nice method to deform an object, as far as i can see it fits perfectly to a hybrid constellation (to be used with any formula) @darkbeam you think you can do a formula that is just performing this transformation, in 3d with a plane obv ;) Lol :) this has a strong rensemblance to my rotatedabs But will investigate later :o Title: Re: Mirror Post by: quaz0r on March 05, 2015, 08:07:42 AM Quote from: youhn I tried to compile on Linux, but got this error fixed the code to compile with gcc. dont forget to add -lm. Title: Re: Mirror Post by: mclarekin on March 05, 2015, 09:09:55 AM Maybe next there will be warping the fractal with reflection from a parabolic mirror, more parameters to tweek. Two or more mirrors can reflect infinitely and a parabolic mirror can be focused on infinity, so mirror stuff is fractal related ;D,
Title: Re: Mirror Post by: Aexion on March 05, 2015, 11:38:20 AM question: the tricorn pops out when placing the mirror line on a standard mandelbrot iteration? nice! Yes, in fact, other abs fractal types are combination of the tricorn (one of them is visible at the starting and ending segment of the animation).. When you zoom you get alternation of triconr's and mandelbrot minibrots. Why? no idea.. If you use a line in 2D defined by 2 points, would a plane defined by 3 point give similar results in 3D ...? I think placing mirrors is already done for the KIFS fractals (probably both in Mandelbulber and MB3D). I love that animation by the way. Thanks!The Abs fractals just take care of the positive section, but by placing a mirror, you're doing something different, mostly because not restricted to a right angle ( abs(x) or abs(y) ) or its combination, but to an arbitrary position an angle, considering the fact that you can also use an smaller mirrors, multiple mirrors, non linear mirrors and many other optical phenomena (refraction, caustics and so on.. perhaps.. ). In 3D the plane equation can be used, but it also can be defined by any surface, such an square, a triangle, a disk.. Maybe next there will be warping the fractal with reflection from a parabolic mirror, more parameters to tweek. Two or more mirrors can reflect infinitely and a parabolic mirror can be focused on infinity, so mirror stuff is fractal related ;D, Yes, it is.. a good example is the Wada Basin Fractal: http://paulbourke.net/fractals/wada/ (http://paulbourke.net/fractals/wada/) Title: Re: Mirror Post by: youhn on March 05, 2015, 07:00:05 PM Thanks for the code quaz0r, it does compile now!
And Aexion for explaining subtle diffs between abs, mirrors and others. I would expect smaller mirrors (segment instead of line, surface instead of plane?) to produce very messy results. I would stay away from those. Placing mirrors towards eachother, with just slllightly changing the flatness or angle could be nice. And computational hard? Title: Re: Mirror Post by: knighty on March 05, 2015, 07:28:16 PM Cool finding. Even cooler, there are no discontinuities.
Title: Re: Mirror Post by: xenodreambuie on March 13, 2015, 11:37:34 PM This is interesting. It seems the offset mirror has the effect of multiplying by an extra z2 for the secondary brots. There is another crucial difference from the abs versions. Here the mirror is applied after adding c (or Mandelbrot coordinates), while abs is applied within the functions. This seems to work fine for the Mandelbrots using DE, but not for Julia sets. I've tried the standard derivative, and the derivative including the +c and mirror. I also tried Julia with the mirror applied before adding c. The Julias always seem to be schizophrenic about the mirror, or totally absent on the far side of it. If anyone finds a nice way to use a mirror in a Julia with DE, I'd like to see it. |