Okay ! I've read that PhD, it's just as great as I expected ! I looove when things are detailed and as clear as mountain water !
Hence, I've generated by myself some images :
+
http://matplotlib.deviantart.com/art/Julia-set-SIC-algorithm-c-0-5-0-25i-679827575+
http://matplotlib.deviantart.com/art/Julia-set-SIC-algorithm-c-0-75-0-11i-679827809?ga_submit_new=10%3A1494428357+
http://matplotlib.deviantart.com/art/Julia-set-SIC-algorithm-c-0-4-0-6i-679829631?ga_submit_new=10%3A1494429324Let me copy/paste the info I gave on the images' page :
Smooth iteration count : u(z
0)=n+1+log
d{ln(M)/ln|z
n|} where n is the number of iterations, M the maximum radius bound, and d the degree of equation : z
n+1=az
nd+Q(z
n) where deg(Q)<=d-1
Now, the palette I use is defined as follows :
+ r=⌊u(z
0)/n
max⌋
+ g,b = r,r
This means I have a palette that has length 256, and palette[
i]=i for i∈[|0,255|]. But here are some issues I get :
+ u(z
0) appears to never reach n
max. Therefore, I never get r greater than a bouded value (usually around 150). What is the maximum bound of this function u I'm using ? I have tried using the famous u(z
0)=n+1-log
d{|z
n|}, but this does not change much the values taken.
+ How to use an adapted coloured palette ? It looks like the values taken by u get stuck on one side of the palette, that side
depending on the current fractal. I have no clue of how to generate
beautiful images using all the colours on the palette. Instead, it only uses half the palette.
Here's a palette I'm using (
.python/numpy code) :
palette_r = list(map(lambda z: int(z),np.linspace(0,90,538).tolist() +np.linspace(90,251,428).tolist() +np.linspace(251,251,544).tolist()+np.linspace(251,130,542).tolist()))
palette_g = list(map(lambda z: int(z),np.linspace(0,233,538).tolist()+np.linspace(233,222,428).tolist()+np.linspace(222,0,544).tolist() +np.linspace(0,0,542).tolist()))
palette_b = list(map(lambda z: int(z),np.linspace(140,0,538).tolist()+np.linspace(0,2,428).tolist() +np.linspace(2,4,544).tolist() +np.linspace(4,127,542).tolist()))
It looks like this :
Now, let's generate the Julia set for the value c=0.5+0.25i using this palette (smaller size) :
I'm basically calling palette_X[
I] for I=⌊L*u/n
max⌋ where L=len(palette_X). As you can notice, the render is not that good, as a lot of the image is coloured blue.
Also, another issue is that sometimes, u/n
max can exceed 1, so I have an "out of range" error raised. That can be easily fixed by having the palette looping itself and using a modulo, but I just don't get why it behaves like this, as I noticed that u
never reached values higher than n
max (I had no problems using the B&W palette).