MathGroup Archive 2006

[Date Index] [Thread Index] [Author Index]

Search the Archive

translating code from True Basic to Mathematica


I did some IFS based on {r,theta} variable iteration
several years back.
One seems to have become a favorite.
Arg[] and ArcTan[] in Mathematica aren't exactly the same function as 
Angle() in True Basic!

A delicate lace like fractal that I did several years back is at:
http://local.wasp.uwa.edu.au/~pbourke/fractals/lace/lace.basic

C code is at:
http://local.wasp.uwa.edu.au/~pbourke/fractals/lace/lace.c

My best effort so far at a Mathematica translation is:
Clear[ifs, f1, f2, f3, f4, f]
f1[{x_, y_}] = N[{ -Cos[Arg[x + 1/2 + I*(y + Sqrt[3]/2)]]*
    Sqrt[x^2 +
           y^2] - 1/
                  2, -Sin[
                    Arg[x + 1/2 + I*(y +
                       Sqrt[3]/2)]]*Sqrt[x^2 + y^2] - Sqrt[3]/2}]/2;
f2[{x_, y_}] = N[{ -Cos[Arg[x + 1/2 +
          I*(y - Sqrt[3]/2)]]*Sqrt[x^2 + y^2] -
                      1/2, -Sin[Arg[x + 1/2 + I*(y - 
Sqrt[3]/2)]]*Sqrt[x^2 +
                    y^2] + Sqrt[3]/2}]/2;
f3[{x_, y_}] = N[{ -Cos[Arg[x - 1 +
    I*(y)]]*Sqrt[x^2 + y^2] + 1, -Sin[Arg[x -
                1 + I*(y)]]*Sqrt[x^2 + y^2]}]/2;
f4[{x_, y_}] = N[{ -Cos[Arg[x + I*(y)]]*Sqrt[x^2 + y^2], -Sin[Arg[x + 
I*(y)]]*
        Sqrt[x^2 + y^2]}]/2;
f[x_] := Which[(r = Random[]) <= 1/4, f1[x],
    r <= 1/2, f2[x],
    r <= 3/4, f3[x],
    r <= 1.00, f4[x]]   
ifs[n_] := Show[Graphics[{PointSize[.001],
    Map[Point, NestList[f, {0, 0.001}, n]]}], AspectRatio -> Automatic]
ifs[10000]           


  • Prev by Date: Eigenmode problems/Boundary conditions at infinity?
  • Next by Date: Re: PlotRange and FullGraphics
  • Previous by thread: Eigenmode problems/Boundary conditions at infinity?
  • Next by thread: Re: translating code from True Basic to Mathematica