astroid_out_800_5.jpg

Astroid_Out

The formula for this fractal is called True_Astroid and is based on the original Astroid_Mset by Paul Carlson. The original draws an "inside out" astroid curve while this one draws it in true form. The orbit trap formula is modified to use the polar form instead of the parametric form. The changes to the formula were suggested by Gerald Dobiasovsky.

The parameter file used to make this image is below:

Astroid_Out { ; Exported from Fracton.
reset=2004 type=formula formulafile=fracton.frm
formulaname=True_Astroid passes=1 float=y
center-mag=-1.265578607178311/0.1218562499999997/2\
22.222225/1/0/0
params=0.01/0.59/8/30/0/0/0/0/0/0 maxiter=500
inside=255 outside=summ
colors=000fOz<28>I0Kz0f<28>O08z88<28>O00zW0<28>c40\
zz0<28>aG00zR<28>0C40zz<28>0CCGGz<28>00O000<12>000\
z88 }

frm:True_Astroid {
; Based on
; Astroid_Mset copyright (c) Paul W. Carlson, 1997
; Modified for compatibility with Fractint 20.04 and
; Fracton by Mike Frazier, 2011
; Additional improvements by Gerald Dobiasovsky
;****************************************************
; 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.
; Initialize cindex to the index of the background color
; Formula modified to avoid color index 0 which can not
; be used with outside=summ in FractInt v20.04
;****************************************************
w=0,
c=pixel,
z=0,
cindex=254,; Background color 254
bailout=0,
iter=0,
range_num=0,
i=(0,1),
r=imag(p1),
;****************************************************
; In the accompanying par file,
; 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 254 when |w| > 1000.
; Other values can be used here as long as the product
; of num_ranges times colors_in_range is less than 255.
; Color 254 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 is really tan(ang) here
ang=imag(w)/real(w),
astroid=r*sqrt((ang^2+1)/(|ang|^(1/3)+1)^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.
;****************************************************
distance=abs(|w|-|astroid|),
if(distance<width&&iter>1),
cindex=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=cindex-iter,
;****************************************************
; Finally, we test for bailout
;****************************************************
bailout==0&&|w|<1000
}

 

Return to the Fracton main page