Welcome to Fractal Forums

Fractal Software => UltraFractal => Topic started by: matty686 on November 13, 2012, 02:04:30 PM




Title: Qfractal becomes a reality
Post by: matty686 on November 13, 2012, 02:04:30 PM
Qfractal basic solver {

; by (sophy-starfire-1 , sophy-starfire-2 and cammy-starfire) together we make up a human formally know as matty686
; based on the work of Samual Monnier, 5.1.99
; this ultra-fractal formula is a formula designed to plug images into if you don't know how to plug images into fractals look in the ultra-fractal manual 
; this formula must be rendered in passes you need to create one layer for each pass and offset the render parameter each time till the entire fractal is covered
; if you don't render the fractal in passes it will look broken 
; this formula is very difficult to use at first it may even seem like junk but if you play with the render parameter you will see what we were talking about render passes
; if done right the final render should not look broken even if you set the curve order to some crazy fraction
;
init:
  z = #pixel
  float arg = atan2(z)
  bool bail = false
  int i = @i
loop:


  i = i + 1

  if i > 1
  z = (1/sqrt(@r)*real(z) + 1i*sqrt(@r)*imag(z))*@twist
  if 0 == 0
    if |z| > 1000000000
      bail = true
    endif
  elseif 0 == 1 || (0 == 2 && i == 2)
    if |z| > 1
      bail = true
    endif
  endif

  arg = atan2(z*@render)

  ; Deal the case where z needs a rotation
  float arg2 = round(@n/(2*pi)*arg)*2*pi/@n

  ; Prevent the "daughter-circle" drawed under the
  ; "mother" one from having babies...
  if round(@n/(2*pi)*arg) == 0 && i > 2
    if arg > 0
      arg2 = 2*pi/@n
    else
      arg2 = -2*pi/@n
    endif
  endif
  ; Rotate the z that need it.
  z = z*exp(-1i*arg2)
  ; Set the future circle center
  ; at the origin
  if 0 == 0
    z = - z + (1 + |@focus|/@s)
  elseif 0 == 1
    z = - z + (1 - |@focus|/@s)
  elseif (0 == 2 && i == 2)
    z =  + z - (1 - 1/@s)
  elseif (0 == 2 && i > 2)
    z = - z + (1 + |@focus|/@s)
  endif
   ;Magnifiy z by s.
  z = @s*z
  endif

bailout:
  bail == false
default:
  title = "Qfractal basic solver"
  helpfile = "none"
  magn = .5
  center = (0.00021,0.0002)
  maxiter = 50
  periodicity = 0
  param s
    caption = "Magnification step"
    default = 1.7
  endparam
  param n
    caption = "Curve Order"
    default = 3.0
  endparam
  param r
    caption = "Twist Parameter"
    default = (1,0)
  endparam
  param focus
     caption = "focus"
     default = (1,0)
  endparam
  param twist
     caption = "spin"
     default = (1,0)
  endparam
  param render
         caption = "render slice"
     default = (1,0)
     endparam
  param i
     caption = "i"
     default = 0
  endparam
}


Title: Re: Qfractal becomes a reality
Post by: matty686 on November 20, 2012, 08:02:03 PM
ok there is a little botch up i need to fix