Title: Inflection mappings Post by: Kalles Fraktaler on January 27, 2017, 10:41:57 AM Inflection mappings
(http://nocache-nocookies.digitalgott.com/gallery/19/8851_27_01_17_10_41_56.jpeg) http://www.fractalforums.com/index.php?action=gallery;sa=view;id=19987 Morphing a basic Mandelbrot-shape 30 times, which would require a zoom depth of E1406173. But this image is actually out-zoomed, calculated with plain double datatypes. Points are transformed according to this: // Get the points in the mandelbrot for the screen coordinates r = r_start+x*(r_stop-r_start)/nX; i = i_start+y*(i_stop-i_start)/nY; // Transform the coordinates for each inflection point int inf; for(inf=g_nInflections-1;inf>=0;inf--){ if(r>g_pInflections[inf].r){ r = g_pInflections[inf].r - (r-g_pInflections[inf].r); i = g_pInflections[inf].i - (i-g_pInflections[inf].i); } double ratio = (double)(i-g_pInflections[inf].i)/(double)(r-g_pInflections[inf].r); double degree = -atan(ratio); double dist = sqrt((double)((r-g_pInflections[inf].r)*(r-g_pInflections[inf].r)+(i-g_pInflections[inf].i)*(i-g_pInflections[inf].i)))/diagonal; double dr = (double)g_pInflections[inf].r + (double)(r-g_pInflections[inf].r)*cos(degree)*dist + (double)(i-g_pInflections[inf].i)*sin(degree)*dist; double di = (double)g_pInflections[inf].i + (double)(i-g_pInflections[inf].i)*cos(degree)*dist - (double)(r-g_pInflections[inf].r)*sin(degree)*dist; r=dr; i=di; } // Contiunue with the ordinary mandelbrot calculation sequence Title: Re: Inflection mappings Post by: superheal on January 27, 2017, 10:54:49 AM Can you share the contents of the infections array, or how you generate it? ;D
Title: Re: Inflection mappings Post by: Kalles Fraktaler on January 27, 2017, 12:59:58 PM I select the points in the inflection array by clicking in the image, the points which I want the pattern to be wrapped around :)
Title: Re: Inflection mappings Post by: Dinkydau on January 27, 2017, 07:50:22 PM Nice. Is this a new feature in Kalles Fraktaler?
Title: Re: Inflection mappings Post by: gds-entropy on January 27, 2017, 10:24:59 PM Looks quite nice.
This is very similar to the "Origami Butterfly" technique used by Jonatan McCabe, but with a different source of data for reflection/folding. There is some Processing code out there which mimics this. Ian Title: Re: Inflection mappings Post by: Kalles Fraktaler on January 31, 2017, 10:50:01 PM Nice. Is this a new feature in Kalles Fraktaler? No sorry, I am just playing with a program using plain double datatypeTitle: Re: Inflection mappings Post by: claude on February 02, 2017, 12:14:07 AM I think your code can be simplified and optimized using properties of right-angled triangles:
Code: dist = sqrt(dx * dx + dy * dy) There may be some sign errors, and I ignored your 'diagonal' variable not knowing what it does, but nothing that can't be solved cheaply afaict. EDIT then it can be simplified further using properties of complex numbers: Code: double _Complex inflectionmapping(int n, double _Complex *cs, double _Complex c) I haven't tested this yet, but I'm fairly confident that it's this simple! Title: Re: Inflection mappings Post by: Kalles Fraktaler on February 02, 2017, 09:34:07 AM Awesome claude, that's magic!
Yes it works :) And your code get rid of sqrt, cos, sin, tan and also the arbitrary constant "diagonal" which was simply the size of the diagonal of the window. If you want to test it, please note that you probably need to reverse the order of applying the inflection points. So this is the new simplified code: Code: // Map the screen pixels to points in the fractal Title: Re: Inflection mappings Post by: hobold on February 05, 2017, 02:18:57 PM These inflections are kinda nice even without an underlying fractal formula:
(http://nocache-nocookies.digitalgott.com/gallery/20/1134_05_02_17_2_15_44.png) Here I used 1/z of a checkerboarded complex plane as the underlying pattern. Then three different inflections. Each inflection doubles the number of "flowers" (really the pole of 1/z), so there are eight in total. Title: Re: Inflection mappings Post by: Kalles Fraktaler on February 06, 2017, 12:19:01 AM These inflections are kinda nice even without an underlying fractal formula: Cool!...image... Here I used 1/z of a checkerboarded complex plane as the underlying pattern. Then three different inflections. Each inflection doubles the number of "flowers" (really the pole of 1/z), so there are eight in total. I tried myself with photo images, however close around the inflection point the pattern is magnified a lot, and if the image is not very large (large AA) the pixels get quite visible Title: Re: Inflection mappings Post by: claude on February 11, 2017, 12:50:29 AM There are two ways to do inflection mapping, one with Mandelbrot iterations (inflect C, start iterating at Z = 0), and another with Julia iterations (inflect Z, iterate with C set to the first inflection point (last to be applied)).
Here's a Mandelbrot version in Fragmentarium: http://www.fractalforums.com/images-showcase-%28rate-my-fractal%29/fruity-%28inflection-mapping%29/ Here's a Julia version in Fragmentarium: Code: #include "Progressive2D.frag" Image of the Julia version: (https://mathr.co.uk/misc/2017-02-10_inflection_mapping_julia.jpg) Title: Re: Inflection mappings Post by: hapf on May 16, 2017, 11:46:06 AM Where exactly is the region of the first posting? And was it retested with the simplified algorithm and looked the same as before?
Title: Re: Inflection mappings Post by: Adam Majewski on May 16, 2017, 05:31:33 PM These inflections are kinda nice even without an underlying fractal formula: (http://nocache-nocookies.digitalgott.com/gallery/20/1134_05_02_17_2_15_44.png) Here I used 1/z of a checkerboarded complex plane as the underlying pattern. Then three different inflections. Each inflection doubles the number of "flowers" (really the pole of 1/z), so there are eight in total. Great image Can you post the code ? can you upload it to commons ? Title: Re: Inflection mappings Post by: hapf on July 27, 2017, 12:10:01 PM The scaling can not be done away with in the fast algorithm. In the general case scaling is needed. |