Title: Tree Islands in the Maelstrom Post by: Pauldelbrot on June 06, 2012, 03:07:45 AM Tree Islands in the Maelstrom
(http://nocache-nocookies.digitalgott.com/gallery/11/511_06_06_12_3_07_44.jpeg) http://www.fractalforums.com/index.php?action=gallery;sa=view;id=11698 A Kaliset Julia with several kinds of shape. Title: Re: Tree Islands in the Maelstrom Post by: asimes on June 06, 2012, 05:56:03 AM Awesome pic, can you share the Julia constants?
Title: Re: Tree Islands in the Maelstrom Post by: Dinkydau on June 06, 2012, 08:16:54 AM nice render!
Title: Re: Tree Islands in the Maelstrom Post by: Pauldelbrot on June 06, 2012, 08:57:30 AM Thanks! It's got "triangle" symmetry -- I'll put a UF formula at the bottom, but the basic iteration is apply a symmetry transform (usually a boxfold or something along the lines), then z -> abs(cz + 1) + 1/abs(cz + 1) where c is the Julia seed and abs(z) is not |z| but rather folds z into the upper right quadrant. Some use other iterations though. Most choices of the "symmetry" parameter should result in a Kaliset variant, but the bottom three are 2D Mandelboxen: straight, with inverse ballfold, and with rotation. The seed here is 0.0219312560015 + 0.0726704820143i. The center point is -1.1786049365 + 0.673186819i. The side length is about 4.5. kali_3 { global: float r = sqrt(3.0) init: z = #pixel float x = 0.0 float y = 0.0 float u = 0.0 float v = 0.0 complex t = (0,1)*PI/3.0 complex qq = exp(t) float rr = @r * @r loop: IF (@symmetry == 0) IF (real(z) < 0) z = (0,1)*imag(z) - real(z) ENDIF z = abs(z*@seed+1)+1/abs(z*@seed+1) ELSEIF (@symmetry == 1) IF (real(z) > 0) z = (0,1)*imag(z) - real(z) ENDIF z = abs(z*@seed+1)+1/abs(z*@seed+1) ELSEIF (@symmetry == 2) IF (real(z) + imag(z) < 0) z = -(0,1)*real(z) - imag(z) ENDIF IF (real(z) - imag(z) < 0) z = (0,1)*real(z) + imag(z) ENDIF z = z*@seed+1+1/(z*@seed+1) ELSEIF (@symmetry == 3) IF (real(z) - imag(z) < 0) z = (0,1)*real(z) + imag(z) ENDIF z = z*@seed+1+1/(z*@seed+1) ELSEIF (@symmetry == 4) x = abs(real(z)) + 0.5 y = imag(z) u = abs(x*r - y*0.5) v = x*0.5 + y*r x = u*r + v*0.5 - 1 y = v*r - u*0.5 u = abs(x*r + y*0.5) v = y*r - x*0.5 x = u*r - v*0.5 + 0.5 y = u*0.5 + v*r z = (x + (0,1)*y)*@seed + 1 z = z+1/z ELSEIF (@symmetry == 5) x = abs(real(z)) y = imag(z) u = x*r - y*0.5 v = x*0.5 + y*r x = u y = v z = (x + (0,1)*y)*@seed + 1 z = z+1/z ELSEIF (@symmetry == 6) z = abs(z) x = real(z) y = imag(z) x = x / 2^(y+1) z = (x + (0,1)*y)*@seed + 1 z = z+1/z ELSEIF (@symmetry == 7) z = abs(z) x = real(z) y = imag(z) u = 2^(1-y) IF (x > u) x = u - x ENDIF z = (x + (0,1)*y)*@seed + 1 z = z+1/z ELSEIF (@symmetry == 8) x = abs(real(z)) y = imag(z) z = (x + (0,1)*y)*qq*@seed + 1 z = z+1/z ELSEIF (@symmetry == 9) x = real(z) y = imag(z) IF (x > 1) x = 2 - x ELSEIF (x < -1) x = -2 - x ENDIF IF (y > 1) y = 2 - y ELSEIF (y < -1) y = -2 - y ENDIF u = x*x+y*y IF (u < rr) x = x / rr y = y / rr ELSEIF (u < 1) x = x / u y = y / u ENDIF z = (x + (0,1)*y)*@scale + @seed ELSEIF (@symmetry == 10) x = real(z) y = imag(z) IF (x > 1) x = 2 - x ELSEIF (x < -1) x = -2 - x ENDIF IF (y > 1) y = 2 - y ELSEIF (y < -1) y = -2 - y ENDIF u = x*x+y*y IF (u > rr) x = x / rr y = y / rr ELSEIF (u > 1) x = x / u y = y / u ENDIF z = (x + (0,1)*y)*@scale + @seed ELSEIF (@symmetry == 11) x = real(z) y = imag(z) IF (x > 1) x = 2 - x ELSEIF (x < -1) x = -2 - x ENDIF IF (y > 1) y = 2 - y ELSEIF (y < -1) y = -2 - y ENDIF u = x*x+y*y IF (u > rr) x = x / rr y = y / rr ELSEIF (u > 1) x = x / u y = y / u ENDIF z = (x + (0,1)*y)*@scale2 + @seed ENDIF bailout: true default: center = (0,0) maxiter = 100 periodicity = 0 title = "Kali 3" rating = recommended param seed caption = "Seed" default = (-0.5,-0.5) endparam param symmetry caption = "Symmetry" enum = "Real < 0" "Real > 0" "Tetrahedral" "Octahedral" "Triangle" "Twist" "Pinch" "Hic" "T2" "Tglad" "Tglad-inv" "Tgladcplx" endparam param r caption = "Radius" visible = (@symmetry == 9 || @symmetry == 10 || @symmetry == 11) default = 0.5 endparam param scale caption = "Scale" visible = (@symmetry == 9 || @symmetry == 10) default = 2.0 endparam param scale2 caption = "Scale" visible = (@symmetry == 11) default = (2.0,0.0) endparam } |