Today's post is an astroid,not the asteroid of Jim Muth's recent post.
From a big rock in outer space to an object on the complex
plane - that's a transition! A three color range orbit trap formula by Paul Carlson.
Ready made at http://maxitersfractalfollies.blogspot.com

fract461.gif       { ; astroid not asteroid
                     ; blank
                     ; calctime   0:15:26.65
                     ; created Oct 06, 2010
                     ;  Fractint Version 2004 Patchlevel 9
  reset=2004 type=formula formulafile=_a.frm formulaname=Astroid_Mset
  passes=1
  center-mag=-0.10064490259883670/+0.95634738310731750/334.5786
  params=0.3/2/3/85 float=y maxiter=1500 inside=0 outside=summ
  colors=0z00000y00y00x00x00w00w00v00v00u00u00t00s00s00r00r00q00q00p00p00o\
  00o00n00n00m00l00l00k00k00j00j00i00i00h00h00g00f00f00e00e00d00d00c00c00b\
  00b00a00a00`00_00_00Z00Z00Y00Y00X00X00W00W00V00U00U00T00T00S00S00R00R00Q\
  00Q00P00P00O00N00N00M00M00L00L00K00K00J00J00I00H0z00z00z00z00y00y00y00x0\
  0x00x00x00w00w00w00v00v00v00u00u00u00u00t00t00t00s00s00s00r00r00r00r00q0\
  0q00q00p00p00p00o00o00o00o00n00n00n00m00m00m00m00l00l00l00k00k00k00j00j0\
  0j00j00i00i00i00h00h00h00g00g00g00g00f00f00f00e00e00e00d00d00d00d00c00c0\
  0c00b00b00b00a0000z00z00y00y00x00x00w00w00v00u00u00t00t00s00s00r00q00q00\
  p00p00o00o00n00m00m00l00l00k00k00j00i00i00h00h00g00g00f00e00e00d00d00c00\
  c00b00a00a00`00`00_00_00Z00Y00Y00X00X00W00W00V00U00U00T00T00S00S00R00Q00\
  Q00P00P00O00O00N00M00M00L00L00K00K00J00I00I00H00H00G00F
  }
frm:
Astroid_Mset  {; Copyright (c) Paul W. Carlson, 1997
    ;****************************************************
    ; Always use floating point math and outside=summ.
    ;
    ; Parameters:
    ;   real(p1) = a factor controlling the width of the curves
    ;   imag(p1) = radius of the astroid
    ;   real(p2) = number of color ranges
    ;   imag(p2) = number of colors in each color range
    ;
    ; Note that the equation variable is w, not z.  Always
    ; initialize z to zero.
    ;****************************************************
    w = 0
    c = pixel
    z = 0
    bailout = 0
    iter = 0
    range_num = 0
    i = (0,1)
    r = imag(p1)
    ;****************************************************
    ; In the accompanying par file, astmset.par,
    ; we have 8 color ranges with 30 colors in each range
    ; for a total of 240 colors. The first range starts at
    ; color 1.  Pixels will use color 0 when |w| < 10000.
    ; Other values can be used here as long as the product
    ; of num_ranges times colors_in_range is less than 255.
    ; Color 0 is reserved for the background color and color
    ; 255 can be used for the inside color.
    ;****************************************************
    num_ranges = real(p2)
    colors_in_range = imag(p2)
    ;****************************************************
    ; Real(p1) controls the width of the curves.
    ; These values will usually be in the range 0.001 to 0.1
    ;****************************************************
    width = real(p1)
    index_factor = (colors_in_range - 1) / width:
    ;****************************************************
    ; The equation being iterated.  Almost any equation
    ; that can be expressed in terms of a complex variable
    ; and a complex constant will work with this method.
    ; This example uses the standard Mandelbrot set equation.
    ;****************************************************
    w = w * w + c
    ;****************************************************
    ; The orbit trap curve.  This example uses an "astroid"
    ; curve (which has absolutely nothing to do with huge
    ; rocks in outer space).  Any two-dimensional curve can
    ; be used which can be expressed in parametric form in
    ; terms of the angle from the origin.
    ;****************************************************
    ang = atan(imag(w) / real(w))
    astroid = r * (cos(ang)^3 + i * sin(ang)^3)
    ;****************************************************
    ; If the orbit point is within some distance of the curve,
    ; set z to the index into the colormap and set the bailout
    ; flag.  Note: the way we use the "distance" here has
    ; the effect of turning the curves inside-out in the image.
    ;****************************************************
    distance = abs(|w| - |astroid|)
    IF (distance < width && iter > 1)
        z = index_factor * distance + range_num * colors_in_range + 1
        bailout = 1
    ENDIF
    ;****************************************************
    ; Cycle through the range numbers (0 thru num_ranges - 1)
    ; With two color ranges, even iterations use color
    ; range 0, odd iterations use color range 1.
    ;****************************************************
    range_num = range_num + 1
    IF (range_num == num_ranges)
        range_num = 0
    ENDIF
    ;****************************************************
    ; Since we are using outside=summ, we have to subtract
    ; the number of iterations from z.
    ;****************************************************
    iter = iter + 1
    z = z - iter
    ;****************************************************
    ; Finally, we test for bailout
    ;****************************************************
    bailout == 0  && |w| < 1000
  ;SOURCE: 98msg.frm
}
Roger Alexander