Welcome to Fractal Forums

Fractal Art => Images Showcase (Rate My Fractal) => Topic started by: Pauldelbrot on June 06, 2012, 03:07:45 AM




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
}