Welcome to Fractal Forums

Fractal Math, Chaos Theory & Research => Mandelbrot & Julia Set => Topic started by: Alef on December 10, 2012, 08:11:15 AM




Title: Swirlbrot
Post by: Alef on December 10, 2012, 08:11:15 AM
Try swirlbrot by kram1032 and gravitational waves as discussed in buddhabrot thread. Simplest version is:
z=(exp(flip(cabs(z)+atan2(z)) ) *z )^@power  +c

It looks like rotated LKM's rotated mandelbrot, throught becouse of uneasy julia shapes you probably would want to use power 3 version instead of usual 2. No pics, too tired of buddhabrots;)



Title: Re: Swirlbrot
Post by: kram1032 on December 10, 2012, 09:29:11 AM
The generic idea would be to do:
z=r e^{i \phi }\to f\left(r e^{i \phi (r)}\right)
or:
x=r \cos (\phi (r)) \to f_x(r \cos (\phi (r)))<br />y=r \sin (\phi (r)) \to f_y(r \sin (\phi (r)))

Where \phi(r) is a function of r.
In the most obvious case, you'd simply use f(z)=z^n+c and \phi(r)=\phi+r.


Title: Re: Swirlbrot
Post by: Alef on December 11, 2012, 08:02:21 AM
Here it is. Mset with power 2 a julia set with power 2 and 3.


Title: Re: Swirlbrot
Post by: kram1032 on December 11, 2012, 09:01:36 AM
So the last one is power 3. What about the second Julia?
Those are quite beautiful :)
It's interesting to me to see that the swirl transform actually increases symmetry, somewhat stretching the three biggest bulb to at least apparently be the same size.

Maybe, by animating the two frequencies (\nu_\phi and \nu_r), you could visualize how this symmetry comes about and, potentially, even find rotated versions of the original MSet if you just keep going...


z=r e^{i \phi }\to \left(r e^{i(\nu_\phi\phi + \nu_r r)}\right)^n+c


Title: Re: Swirlbrot
Post by: Alef on December 11, 2012, 01:47:02 PM
By animating would be too time consuming;) I was thinking about introducing this to Ultra Fractal and Chaos Pro database.
 All other m and j sets are of power 2.

This one  somewhat looks like rised in additional power 2. And it's very simmilar to LKM's rotated mandelbrot and alsou z=z^2+c; z=z*z/|z| , just that rotated mandelbrot realy aren't rotated, but this one is slightly rotated around coordinate start;)
So there seems to be some good mathamatical background behind. It can't look simmilar just by accident.

Code:
rotated-mandelbrot { ; Kerry Mitchell 06oct2002
;
; Rotates the z variable in the standard Mandelbrot
; calculation each iteration.
;
; Use the 'rotation type' parameter to rotate before or
; after raising z to the desired power, or both before and
; after.  The '+before, -after' setting rotates the opposite
; way after raising z to the power.
;
; The rotation angle is the 'rotation factor' times the angle
; of the pixel or z.  The 'constant' setting in 'rotation type'
; makes the rotational angle a constant 'rotation factor'
; degrees.
;
init:
  c=#pixel
  z=c+@manparam
  float t=0.0
  float trad=@rotfac*#pi/180
  rot=(0,0)
loop:
;
; set up the rotation angle
;
  if(@angletype==1)          ; pixel
    t=@rotfac*atan2(#pixel)
  elseif(@angletype==2)      ; z
    t=@rotfac*atan2(z)
  else                       ; constant
    t=trad
  endif
  rot=cos(t)+flip(sin(t))
;
; iterate z, taking into account the rotation type
;
  if(@rottype==1)            ; before
    z=z*rot
    z=z^@power+c
  elseif(@rottype==2)        ; after
    z=z^@power+c
    if(@angletype==2)
      t=@rotfac*atan2(z)
      rot=cos(t)+flip(sin(t))
    endif
    z=z*rot
  elseif(@rottype==3)        ; before & after
    z=z*rot
    z=z^@power+c
    if(@angletype==2)
      t=@rotfac*atan2(z)
      rot=cos(t)+flip(sin(t))
    endif
    z=z*rot
  elseif(@rottype==4)        ; +before, -after
    z=z*rot
    z=z^@power+c
    if(@angletype==2)
      t=@rotfac*atan2(z)
      rot=cos(t)+flip(sin(t))
    endif
    z=z/rot
  else                       ; none
    z=z^@power+c
  endif
bailout:
  |z|<@bailout
default:
  title="Rotated Mandelbrot"
  periodicity=0
  param manparam
    caption="perturbation"
    default=(0,0)
  endparam
  param power
    caption="power"
    default=(2,0)
  endparam
  float param bailout
    caption="bailout"
    default=1000.0
  endparam
  param rottype
    caption="rotation type"
    default=1
    enum="none" "before iterating" "after iterating" \
      "before & after" "+before, -after"
    hint="How z is rotated each iteration."
  endparam
  float param rotfac
    caption="rotation factor"
    default=1.0
    enabled=@rottype!="none"
    hint="If 'angle type' is 'constant', then this is the \
      rotation angle in degrees. Otherwise, it is the factor \
      that multiples the pixel or z angle to make the rotation \
      angle."
  endparam
  param angletype
    caption="angle type"
    default=2
    enum="constant" "pixel" "z"
    enabled=@rottype!="none"
    hint="Use 'constant' to specify a constant angle in degrees. \
      Otherwise, the rotation is based on the angle of the pixel \
      or the angle of z."
  endparam
switch:
  type="rotated-julia"
  julparam=#pixel
  bailout=bailout
  power=power
  rottype=rottype
  rotfac=rotfac
  angletype=angletype
}


Title: Re: Swirlbrot
Post by: simon.snake on December 11, 2012, 09:39:32 PM
Reminded me of one of my fractint formulas that produced this:

(http://www.needanother.co.uk/uploads/fract872.gif)

Yours are great.


Title: Re: Swirlbrot
Post by: kram1032 on December 11, 2012, 09:43:23 PM
neat. What formula does that?


Title: Re: Swirlbrot
Post by: simon.snake on December 11, 2012, 09:56:41 PM
Code:
simon0070-D {
  if (ismand)
    p = pixel
    z = pixel
  else
    p = p1
    z = pixel
  endif
  z = (1/z)/(z*z):
  z = z * z + p
  |z| < 4
}

Parameters are as follows:

Code:
Swirl              {
                     ;  Fractint Version 2099 Patchlevel 8
  reset=2099 type=formula formulafile=simon.frm
  formulaname=simon0070-D ismand=n passes=1
  center-mag=-2.13163e-014/1.06581e-014/0.06643282/0.75
  params=-1.7805108952668485/2.7597098893445381e-006 float=y
  maxiter=512 fillcolor=0 inside=0 periodicity=0
  colors=0003be4no5zzzzz<3>zaXzVPuSL<3>_E5UA0PA2<3>56A05C1GM<3>5zzzzz<3>za\
  XzVPuSL<3>_E5UA0PA2<3>56A05C1GM<3>5zzzzz<3>zaXzVPuSL<3>_E5UA0PA2<3>56A05\
  C1GM<3>5zzzzz<3>zaXzVPuSL<3>_E5UA0PA2<3>56A05C1GM<3>5zzzzz<3>zaXzVPuSL<3\
  >_E5UA0PA2<3>56A05C1GM<3>5zzzzz<3>zaXzVPuSL<3>_E5UA0PA2<3>56A05C1GM<3>5z\
  zzzz<3>zaXzVPuSL<3>_E5UA0PA2<3>56A05C1GM<3>5zzzzz<3>zaXzVPuSL<3>_E5UA0PA\
  2<3>56A05C1GM<3>5zzzzz<3>zaXzVPuSL<3>_E5UA0PA2<3>56A05C1GM05C<3>4no5zzzz\
  z<3>zaXzVPuSL<3>_E5UA0PA2<3>56A05C1GM<3>5zzzzz<3>zaXzVPuSL<3>_E5UA0PA2<4\
  >05C1GM2SW
  }


Title: Re: Swirlbrot
Post by: Alef on December 13, 2012, 09:14:45 AM
Is this a z = (1/z)* 1/(z*z) ? Cos 1/(z/(z*z))= (z*z) /z= z

This works in interesting way:
z=exp(flip( @frequency*cabs(z)+@spin*atan2(z)) ) *z
z=z^2+c

UF operator flip switches real and imaginary parts, so it's like *i. In normal way:
z=z*e^i(frequency*cabs(z)+spin*atan2(z))

Frequency is how mutch this is rotated around. Each 0.5 of spin works like additional power (simmetry), exept that it generates more stalked fractal. Probably it have something to do with radians. -2 spin and frequency =0 generates tricorn fractal.

Julias are especialy cool, like pictures on washing powders. I want this to upload to Ultra Fractal and Chaos Pro databases. What's your name to include in credits? Or should I put just "Variation by Kram1032"?


Title: Re: Swirlbrot
Post by: kram1032 on December 13, 2012, 11:54:02 AM
Code:
z = (1/z)/(z*z):
z = z * z + p
Huh... if I'm reading that right, it would do
z=\frac{1}{z^3}<br />z=z^2+p
So essentially, it would do \frac{1}{z}+p which, if I recall, does not yield what you have there...

Alef, yeah, just go with kram1032, I guess :) Really nice stuff.


Title: Re: Swirlbrot
Post by: simon.snake on December 13, 2012, 07:38:45 PM
Probably my colour scheme has something to do with it, and if you look at the parameters, it shows that this is a julia (ismand=n).

Does that help?


Title: Re: Swirlbrot
Post by: Ryan D on December 14, 2012, 03:56:37 PM
Code:
z = (1/z)/(z*z):
z = z * z + p
Huh... if I'm reading that right, it would do
z=\frac{1}{z^3}<br />z=z^2+p
So essentially, it would do \frac{1}{z}+p which, if I recall, does not yield what you have there...

In a Fractint formula, everything before the full colon (":") is an initial condition.  Everything after the colon is iterated in the escape-time loop.  So, the iteration loop executes only the z^2 + p portion.  (Also, the final statement in a Fractint formula is the bailout condition.)

Ryan


Title: Re: Swirlbrot
Post by: kram1032 on December 14, 2012, 07:30:29 PM
Ah, I see... The plane is initiated at \frac{1}{z^3} and from there just iterated like the normal MSet.
That makes sense.
It's like those experiments where you'd do one thing up to iteration i and after that iterate differently, in this case with i=1.


Title: Re: Swirlbrot
Post by: TheRedshiftRider on November 04, 2014, 07:05:43 PM
For images I make I mostly use a different program, but it has a similar way of making images like this. The whole function is different but the effects look allmost the same. This function is called mandelgrass.