home *** CD-ROM | disk | FTP | other *** search
/ norge.freeshell.org (192.94.73.8) / 192.94.73.8.tar / 192.94.73.8 / pub / computers / pcjr / games / FRAINT15.LZH / FRACTINT.FRM < prev    next >
Text File  |  1990-07-28  |  6KB  |  217 lines

  1.  comment = {
  2.  FRACTINT.DOC has instructions for adding new formulas to this file.
  3.  Note that there are several hard-coded restrictions in the formula
  4.  interpreter:
  5.  
  6.  1) The fractal name through the open curly bracket must be on a single line.
  7.  2) There is a current hard-coded limit of 30 formulas per formula file, only
  8.     because of restrictions in the prompting routines.
  9.  3) Formulas must currently be less than 200 characters long.
  10.  3) Comments, like this one, are set up using dummy formulas with no
  11.     formula name or the special name "comment".  There can be as many
  12.     of these "comment" fractals as desired, they can be interspersed with
  13.     the real formulas, and they have no length restriction.
  14.  
  15.  The formulas in the beginning of this file are from Mark Peterson, who
  16.  built this fractal interpreter feature.  The rest are grouped by contributor.
  17.  (Scott Taylor sent many but they are no longer here - they've been
  18.  incorporated as hard-coded types.  Lee Skinner also sent many which have
  19.  now been hard-coded.)
  20.  }
  21.  
  22.    Mandelbrot(XAXIS) = {
  23.       z = Pixel:  z = sqr(z) + pixel, |z| <= 4
  24.    }
  25.  
  26.    Dragon (ORIGIN) {
  27.       z = Pixel:
  28.      z = sqr(z) + (-0.74543, 0.2),
  29.       |z| <= 4
  30.    }
  31.  
  32.    Daisy (ORIGIN) = { z = pixel:  z = z*z + (0.11031, -0.67037), |z| <= 4 }
  33.  
  34.    InvMandel {
  35.       c = z = 1 / pixel:
  36.      z = sqr(z) + c;
  37.       |z| <= 4
  38.    }
  39.  
  40.    MarksMandelPwr {
  41.       z = pixel, c = z ^ (z - 1):
  42.      z = c * sqr(z) + pixel,
  43.       |z| <= 4
  44.    }
  45.  
  46.    DeltaLog(XAXIS) {
  47.       z = pixel, c = log(pixel):
  48.      z = sqr(z) + c,
  49.       |z| <= 4
  50.    }
  51.  
  52.    Newton4(XYAXIS) {
  53.       z = pixel; Root = 1:
  54.      z3 = z*z*z;
  55.      z4 = z3 * z;
  56.      z = (3 * z4 + Root) / (4 * z3),
  57.         .004 <= |z4 - Root|
  58.    }
  59.  
  60.  
  61.  comment = {
  62.     The following are from Chris Green:
  63.     These fractals all use Newton's or Halley's formula for approximation
  64.     of a function.    In all of these fractals, p1 is the "relaxation
  65.     coefficient". A value of 1 gives the conventional newton or halley
  66.     iteration. Values <1 will generally produce less chaos than values >1.
  67.     1-1.5 is probably a good range to try.    P2 is the imaginary component
  68.     of the relaxation coefficient, and should be zero but maybe a small
  69.     non-zero value will produce something interesting. Who knows?
  70.  
  71.     These MUST be run with floating point in order to produce the correct
  72.     pictures.  I Haven't explored these sets very much because I lack a
  73.     floating point coprocessor.
  74.  
  75.     For more information on Halley maps, see "Computers, Pattern, Chaos,
  76.     and Beauty" by Pickover.
  77.  
  78.     Halley :  Halley's formula applied to x^7-x=0. Setting P1 to 1 will
  79.         create the picture on page 277 of Pickover's book.
  80.  
  81.     HalleySin : Halley's formula applied to sin(x)=0. Setting P1 to 0.1
  82.         will create the picture from page 281 of Pickover.
  83.  
  84.     NewtonSinExp : Newton's formula applied to sin(x)+exp(x)-1=0.
  85.  
  86.     CGNewton3 : A different variation on newton iteration. The initial
  87.         guess is fixed at (1,1), but the equation solved is different
  88.         at each pixel ( x^3-pixel=0 is solved). Try P1=1.8.
  89.  
  90.     CGNewtonSinExp : Newton's formula applied to sin(x)+exp(x)-pixel=0.
  91.  
  92.     HyperMandel :  A four dimensional version of the mandelbrot set. Use P1
  93.         to select which two-dimensional plane of the four dimensional
  94.         set you wish to examine.
  95.  
  96.  }
  97.  
  98.   halley (XYAXIS) {
  99.     z=pixel:
  100.     z5=z*z*z*z*z;
  101.     z6=z*z5;
  102.     z7=z*z6;
  103.     z=z-p1*((z7-z)/ ((7.0*z6-1)-(42.0*z5)*(z7-z)/(14.0*z6-2))),
  104.     0.0001 <= |z7-z|
  105.     }
  106.  
  107.   CGhalley (XYAXIS) {
  108.     z=(1,1):
  109.     z5=z*z*z*z*z;
  110.     z6=z*z5;
  111.     z7=z*z6;
  112.     z=z-p1*((z7-z-pixel)/ ((7.0*z6-1)-(42.0*z5)*(z7-z-pixel)/(14.0*z6-2))),
  113.     0.0001 <= |z7-z-pixel|
  114.     }
  115.  
  116.    halleySin (XYAXIS) {
  117.     z=pixel:
  118.     s=sin(z);
  119.     c=cos(z);
  120.     z=z-p1*(s/(c-(s*s)/(c+c))),
  121.     0.0001 <= |s|
  122.    }
  123.  
  124.    NewtonSinExp (XAXIS) {
  125.     z=pixel:
  126.     z1=exp(z);
  127.     z2=sin(z)+z1-1;
  128.     z=z-p1*z2/(cos(z)+z1), .0001 < |z2|
  129.    }
  130.  
  131.    CGNewton3 {
  132.         z=(1,1):
  133.         z2=z*z;
  134.         z3=z*z2;
  135.         z=z-p1*(z3-pixel)/(3.0*z2),
  136.         0.0001 < |z3-pixel|
  137.     }
  138.  
  139.     HyperMandel {
  140.     a=(0,0);
  141.     b=(0,0):
  142.     z=z+1;
  143.     anew=sqr(a)-sqr(b)+pixel;
  144.     b=2.0*a*b+p1;
  145.     a=anew,
  146.     |a|+|b| <= 4
  147.     }
  148.  
  149.  
  150.  comment = { The following are from Lee Skinner }
  151.  
  152.  comment = { Mandelbrot form 1 of the Tetration formula }
  153.  
  154.  MTet (XAXIS) {
  155.    z = pixel:
  156.        z = (pixel ^ z) + pixel,
  157.        |z| <= (P1 + 3)
  158.  }
  159.  
  160.  comment = { Mandelbrot form 2 of the Tetration formula }
  161.  
  162.  AltMTet (XAXIS) {
  163.    z = 0:
  164.        z = (pixel ^ z) + pixel,
  165.        |z| <= (P1 + 3)
  166.  }
  167.  
  168.  comment = { Julia form 1 of the Tetration formula }
  169.  
  170.  JTet (XAXIS) {
  171.    z = pixel:
  172.        z = (pixel ^ z) + P1,
  173.        |z| <= (P2 + 3)
  174.  }
  175.  
  176.  comment = { Julia form 2 of the Tetration formula }
  177.  
  178.  AltJTet (XAXIS) {
  179.    z = P1:
  180.        z = (pixel ^ z) + P1,
  181.        |z| <= (P2 + 3)
  182.  }
  183.  
  184.  Cubic {
  185.       p = pixel,
  186.        test = p1 + 3,
  187.      t3 = 3*p,
  188.      t2 = p*p,
  189.       a = (t2 + 1)/t3,
  190.       b = 2*a*a*a + (t2 - 2)/t3,
  191.     aa3 = a*a*3,
  192.       z = 0 - a :
  193.           z = z*z*z - aa3*z + b,  |z| < test }
  194.  
  195.  
  196.  { The following resulted from a FRACTINT bug. Version 13 incorrectly
  197.    calculated Spider (see above). We fixed the bug, and reverse-engineered
  198.    what it was doing to Spider - so here is the old "spider" }
  199.  
  200.  Wineglass(XAXIS) {
  201.     c = z = pixel:
  202.     z = z * z + c, c = (1+imag(c)) * real(c) / 2 + z, |z| <= 4 }
  203.  
  204.  
  205.   { The following were sent by JM Colard-Richard}
  206.  
  207.   Richard1(XYAXIS) {c = z = pixel: z=(z*z*sin(z*z)+z*z)+pixel, |z|<=50}
  208.   Richard2 {c = z = pixel: z=1/(sin(z*z+pixel*pixel)),|z|<=50}
  209.   Richard3 {c = z = pixel: z=(1/sinh(z)*sinh(z))+pixel,|z|<=50}
  210.   Richard4 {c = z = pixel: z=(1/(z*z*cos(z*z)+z*z))+pixel,|z|<=50}
  211.   Richard5 {c = z = pixel: z=sin(z*sinh(z))+pixel,|z|<=50}
  212.   Richard6 {c = z = pixel: z=sin(sinh(z))+pixel,|z|<=50}
  213.   Richard7 {c = z = pixel: z=log(z)*pixel,|z|<=50}
  214.   Richard8 {c = z = pixel: z=sin(z)+sin(pixel),|z|<=50}
  215.  
  216.  
  217.