Something got squirrelly with that last post, and it messed up the par files formula, among other things...  I'm trying again here.. Lycos mail kind of sucks...
-----------------------------------------------------------------------------------------------------
Okay, when last seen on this list I was lobbying for a 3D pixel... Why? Well, it goes way back, but let's start with Gerald K. Dobiasovsky’s Rot3D Fractint formula. Gerald wrote this amazing code to wrap around a 3D formula I'd discovered, and render it as a solid object, viewable from virtually any angle it seemed. The trade-off was that the code sucked up a lot of Fractint's resources and many familiar x-functions and other options were not available in this context. I wanted the best of both worlds, and at that time the solut! ion seemed to me to be a 3D pixel.

It turns out that the resources to generate the images I wanted were already at hand, but it took me months to see it. Indeed, it wasn't until I'd forgotten the whole thing that a vision came to me. I suddenly saw that I could adapt just part of Gerald's code to my formula, in a way that it would retain its rotational functions, but generate only a single slice rather than a solid.

So this:

frm:Rot3d_T-set {;periodicity=no, outside=summ
              ;maxit > p5real*(p5imag+1)
  ;--------------------------------------------
  ;p1real: Rotation about x-axis (1st rotation)
  ;p1imag: Rotation about y-axis (2nd rotation)
  ;p2real: Far clipping plane
  ;p2imag: Near clipping plane
  ;p3real: x1(0)
  ;p3imag: y1(0)
  ;p4real: z1(0)
  ;p4imag: Bailout
  ;p5real: Maxiter per s! lice
  ;p5imag: Number of slices - 1
  ;-------------- ------------------------------
  ;
  bailout = imag(p4), tiefnum = imag(p5)
  delta = (real(p2)-imag(p2))/tiefnum
  tmp = pi/180
  rotXax = exp(flip(real(p1)*tmp)), rotYax = exp(flip(imag(p1)*tmp))
  ;
  HPixXY = rotYax
  VPixZ = real(rotXax)
  VPixXY = flip(conj(rotYax))
  NXY = VPixZ*VPixXY
  NZ = imag(conj(rotXax))
  VPixXY = -NZ*VPixXY
  ;
  tmp = NXY*imag(p2) + HPixXY*real(pixel) + VPixXY*imag(pixel)
  cx = cx0 = real(tmp), cy = cy0 = imag(tmp)
  cz = cz0 = NZ*imag(p2) + VPixZ*imag(pixel)       ;HPixZ -> 0
  tmp = NXY*delta, dcx = real(tmp), dcy = imag(tmp)
  dcz = NZ*delta
  x1 = real(p3)
  y1 = imag(p3)
  z1 = real(p4)
  j = m = i = 0:
    a = sqr(x1) + 2*y1*z1
    b = sqr(z1) + 2*x1*y1
    c = sqr(y1) + 2*x1*! z1
    x1 = a + cx, y1 = b + cy, z1 = c + cz
    IF (bailout >= (sqr(x1)+sqr(y1)+sqr(z1)))
      i = i + 1
    ELSE
      i = 0
      m = m + 1
      cx = cx0 = cx0 + dcx
      cy = cy0 = cy0 + dcy
      cz = cz0 = cz0 + dcz
      x1 = real(p3), y1 = imag(p3), z1 = real(p4)
    ENDIF
    z = m - j
    j = j + 1
  tiefnum >= m && p5 >= i
  }

became the formula you'll see at the end of the par files below. To create the pars, I chose arbitrary angles and poked around a little bit, just to demonstrate how it works. I.e., real(p1) is X-axis rotation, imag(p1) is Y-axis rotation and real(p2) controls Z-axis elevation. Z-axis rotation is of c! ourse built into Fractint's zoombox. The color maps are borrowed/stole n from some Lee Skinner files...


----------------------Par files----------------------

3DT1               {
                     ;  Fractint Version 2004 Patchlevel 3
  reset=2004 type=formula formulafile=file
  formulaname=NrotT passes=3
  center-mag=-0.409232/-0.0419349/1.319302/1/-39.9999999999850431/\
  -7.45483536013225034e-012 params=30/60/0/0 float=y
  maxiter=500 inside=fmod outside=fmod periodicity=0
  colors=000IG5<3>SU9UXAX`BZcC`fDhrI<3>UnXRm_NlcJkgFfpAaz<3>PJoSFl\
  WAi_5fc0ce7_jFRoNIzb0<2>zz1zzC<2>zzz<3>jqdfo_blU<3>Mb8<3>LQ8KM8K\
  J8<2>I88H44G00<3>TA5WD6ZF7aI8eLAhMBiODjQF<3>qeBriAtm9vq8xu7zz5zz\
  4zz3<4>zj4zg4zc4<3>zS5zP! 5zL6zI6zE6wE6tD6<6>vAIv9Kv9M<3>x7Sy7Uy6W\
  z6Yz5_<3>f5Ma5IW4E<2>_4H<3>P3DN2CK2A<3>805G0BO0G<3>g0Ul0Xq0`v0d<\
  2>y0fz0gy0h<3>u1m600enG000t1ns1or2q<2>v2u<3>c5dZ6`U6X<2>F9LAAG7F\
  O4KW0Qc<3>5Xc6Zc7`c7aa7c_7eY<3>FcgHciJbl<3>S_v<3>civflvinvlqvotv\
  sww<2>zzz<3>rwzovzhsw<3>Gch8_d8Xa<3>8JP8FL8CI<3>SCCXCAaB9<3>uA2z\
  A0xA0<12>SA1QA1NA1<3>D92GD3
  }

3DT2               {
                     ;  Fractint Version 2004 Patchlevel 3
  reset=2004 type=formula formulafile=file
  formulaname=NrotT passes=3
  center-mag=-1.18271378376611700/-0.08563326265067148/564833.1/1/\
  144.99999! 9994806842/3.39427561751870499e-009
  params=30/60/0/0 float=y maxiter=1000 inside=fmod
  outside=fmod periodicity=0
  colors=000000zr1zz1zzC<2>zzz<2>nsjQdrLdtblU<3>Mb8<3>LQ8KM8KJ8<2>\
  I88H44G00<3>TA5WD6ZF7aI8eLAhMBiODjQF<3>qeBriAtm9vq8xu7zz5zz4zz3<\
  4>zj4zg4zc4<3>zS5zP5zL6zI6zE6wE6tD6<6>vAIv9Kv9M<3>x7Sy7Uy6Wz6Yz5\
  _<3>f5Ma5IW4E<2>_4H<3>P3DN2CK2A<3>805G0BO0G<3>g0Ul0Xq0`v0d<2>y0f\
  z0gy0h<3>u1mt1ns1or2q<2>v2u<3>c5eZ6`U6X<2>F9LAAG7FO4KW0Qc<3>5Xc6\
  Zc7`c7aa7c_7eY<3>FcgHciJbl<3>S_v<3>civflvinvlqvotvsww<2>zzz<3>rw\
  zovzhsw<3>Gch8_d8Xa<3>8JP8FL8CI<4>XCAaB9fB7<3>zA0<13>SA1QA1NA1<3\
  >D92<6>UXAW`BYcC<3>hrI<3>UnXRm_NlcJkgFfpAaz<3>PJoSFlWAi_5fc0ce7_\
  jFRoNIzb0zj0
  }

3DT3        &n! bsp;      {
                     ;  Fractint Version 2004 Patchlevel 3
  reset=2004 type=formula formulafile=file
  formulaname=NrotT passes=3
  center-mag=-1.32840608235000200/+0.07132735675645727/74.59508/1/\
  -25.0000000000003553/5.21999110603132976e-013
  params=30/60/0/0 float=y maxiter=1000 inside=fmod
  outside=fmod periodicity=0
  colors=000000zr1zz1zzC<2>zzz<2>nsjQdrLdtblU<3>Mb8<3>LQ8KM8KJ8<2>\
  I88H44G00<3>TA5WD6ZF7aI8eLAhMBiODjQF<3>qeBriAtm9vq8xu7zz5zz4zz3<\
  4>zj4zg4zc4<3>zS5zP5zL6zI6zE6wE6tD6<6>vAIv9Kv9M<3>x7Sy7Uy6Wz6Yz5\
  _<3>f5Ma5IW4E<2>_4H<3>P3DN2CK2A<3>805G0BO0G<3>g0Ul0Xq0`v0d<2>y0f\
  z0gy0h<3>u1mt1ns1or2q<2>v2u<3>c5e! Z6`U6X<2>F9LAAG7FO4KW0Qc<3>5Xc6\
  Zc7`c7aa7c_7eY& lt;3>FcgHciJbl<3>S_v<3>civflvinvlqvotvsww<2>zzz<3>rw\
  zovzhsw<3>Gch8_d8Xa<3>8JP8FL8CI<4>XCAaB9fB7<3>zA0<13>SA1QA1NA1<3\
  >D92<6>UXAW`BYcC<3>hrI<3>UnXRm_NlcJkgFfpAaz<3>PJoSFlWAi_5fc0ce7_\
  jFRoNIzb0zj0
  }

3DT4               {
                     ;  Fractint Version 2004 Patchlevel 3
  reset=2004 type=formula formulafile=file
  formulaname=NrotT passes=3
  center-mag=-0.28477637453427680/-0.33348986019581970/849.9581/1/\
  152.499999999998067/1.37438671554690472e-012
  params=30/60/0/0 float=y maxiter=1000 inside=fmod
  outside=fmod periodicity=0
  colors=000enG000t1ns1or2q<2>v2u<3>c5dZ6`U6X<2>F9LAAG! 7FO4KW0Qc<3>\
  5Xc6Zc7`c7aa7c_7eY<3>FcgHciJbl<3>S_v<3>civflvinvlqvotvsww<2>zzz<\
  3>rwzovzhsw<3>Gch8_d8Xa<3>8JP8FL8CI<3>SCCXCAaB9<3>uA2zA0xA0<12>S\
  A1QA1NA1<3>D92<3>NN7PQ8SU9<3>`fDhrI<3>UnXRm_NlcJkgFfpAaz<3>PJoSF\
  lWAi_5fc0ce7_jFRoNIzb0<2>zz1zzC<2>zzz<3>jqdfo_blU<3>Mb8<3>LQ8KM8\
  KJ8<2>I88H44G00<3>TA5WD6ZF7aI8eLAhMBiODjQF<3>qeBriAtm9vq8xu7zz5z\
  z4zz3<4>zj4zg4zc4<3>zS5zP5zL6zI6zE6wE6tD6<6>vAIv9Kv9M<3>x7Sy7Uy6\
  Wz6Yz5_<3>f5Ma5IW4E<2>_4H<3>P3DN2CK2A<3>805G0BO0G<3>g0Ul0Xq0`v0d\
  <2>y0fz0gy0h<3>u1m600
  }

3DT5               {
              &nb! sp;      ;  Fractint Version 2004 Patchl evel 3
  reset=2004 type=formula formulafile=file
  formulaname=NrotT passes=3
  center-mag=-0.14884238268022650/-0.38832806053613630/1979.434/1/\
  167.500000000001677/-1.53900503452319981e-012
  params=30/60/0/0 float=y maxiter=2000 inside=fmod
  outside=fmod periodicity=0
  colors=000v1lu1m600enG000t1ns1or2q<2>v2u<3>c5dZ6`U6X<2>F9LAAG7FO\
  4KW0Qc<3>5Xc6Zc7`c7aa7c_7eY<3>FcgHciJbl<3>S_v<3>civflvinvlqvotvs\
  ww<2>zzz<3>rwzovzhsw<3>Gch8_d8Xa<3>8JP8FL8CI<3>SCCXCAaB9<3>uA2zA\
  0xA0<12>SA1QA1NA1<3>D92<3>NN7PQ8SU9<3>`fDhrI<3>UnXRm_NlcJkgFfpAa\
  z<3>PJoSFlWAi_5fc0ce7_jFRoNIzb0<2>zz1zzC<2>zzz<3>jqdfo_blU<3>Mb8\
  <3>LQ8KM8KJ8<2>I88H44G00<3>TA5WD6ZF7aI8eLAhMBiODjQF<3>qeBriAtm9v\
  q8xu7zz5zz4zz3<4>zj4zg4zc4<3! >zS5zP5zL6zI6zE6wE6tD6<6>vAIv9Kv9M<3\
  >x7Sy7Uy6Wz6Yz5_<3>f5Ma5IW4E<2>_4H<3>P3DN2CK2A<3>805G0BO0G<3>g0U\
  l0Xq0`v0d<2>y0fz0gy0hx0iw1k
  }

3DT6               {
                     ;  Fractint Version 2004 Patchlevel 3
  reset=2004 type=formula formulafile=file
  formulaname=NrotT passes=3
  center-mag=-0.14799944943377080/-0.39312872010527840/241.4909/1/\
  -149.999999999999858/6.39974184757363673e-014
  params=30/60/0/0 float=y maxiter=1500 inside=fmod
  outside=fmod periodicity=0
  colors=000v1lu1m600enG000t1ns1or2q<2>v2u<3>c5dZ6`U6X<2>F9LAAG7FO\
  4KW0Qc<3>5Xc6Zc7`c7aa7c_7eY<3>FcgHciJbl<3>S_v<3>civflvinvlqvotv! s\
  ww<2>zzz<3>rwzovzhsw<3>Gch8_d8Xa<3&g t;8JP8FL8CI<3>SCCXCAaB9<3>uA2zA\
  0xA0<12>SA1QA1NA1<3>D92<3>NN7PQ8SU9<3>`fDhrI<3>UnXRm_NlcJkgFfpAa\
  z<3>PJoSFlWAi_5fc0ce7_jFRoNIzb0<2>zz1zzC<2>zzz<3>jqdfo_blU<3>Mb8\
  <3>LQ8KM8KJ8<2>I88H44G00<3>TA5WD6ZF7aI8eLAhMBiODjQF<3>qeBriAtm9v\
  q8xu7zz5zz4zz3<4>zj4zg4zc4<3>zS5zP5zL6zI6zE6wE6tD6<6>vAIv9Kv9M<3\
  >x7Sy7Uy6Wz6Yz5_<3>f5Ma5IW4E<2>_4H<3>P3DN2CK2A<3>805G0BO0G<3>g0U\
  l0Xq0`v0d<2>y0fz0gy0hx0iw1k
  }

3DT7               {
                     ;  Fractint Version 2004 Patchlevel 3
  reset=2004 type=formula formulafile=file
  formulaname=NrotT passes=3
  center-! mag=-0.27335510710850930/-0.33261891955182190/602.8773/1/\
  152.499999999999545/6.23771867491740295e-013
  params=30/60/0/0 float=y maxiter=1000 inside=fmod
  outside=fmod periodicity=0 colors=@lskin4.map
  }

3DT8               {
                     ;  Fractint Version 2004 Patchlevel 3
  reset=2004 type=formula formulafile=file
  formulaname=NrotT passes=3
  center-mag=-0.28068146663278950/-0.33155663391069030/103.6949/1/\
  152.499999999999886/7.67164110015983169e-014
  params=30/60/0/0 float=y maxiter=1000 inside=fmod
  outside=fmod periodicity=0
  colors=000v1lu1m600enG000t1ns1or2q<2>v2u<3>c5dZ6`U6X<2>F9LAAG7FO\
  4KW0Qc<3>5Xc6Zc7`c7aa7c_7eY<3>FcgHciJbl<3>S! _v<3>civflvinvlqvotvs\
  ww<2>zzz<3>rwzovzhs w<3>Gch8_d8Xa<3>8JP8FL8CI<3>SCCXCAaB9<3>uA2zA\
  0xA0<12>SA1QA1NA1<3>D92<3>NN7PQ8SU9<3>`fDhrI<3>UnXRm_NlcJkgFfpAa\
  z<3>PJoSFlWAi_5fc0ce7_jFRoNIzb0<2>zz1zzC<2>zzz<3>jqdfo_blU<3>Mb8\
  <3>LQ8KM8KJ8<2>I88H44G00<3>TA5WD6ZF7aI8eLAhMBiODjQF<3>qeBriAtm9v\
  q8xu7zz5zz4zz3<4>zj4zg4zc4<3>zS5zP5zL6zI6zE6wE6tD6<6>vAIv9Kv9M<3\
  >x7Sy7Uy6Wz6Yz5_<3>f5Ma5IW4E<2>_4H<3>P3DN2CK2A<3>805G0BO0G<3>g0U\
  l0Xq0`v0d<2>y0fz0gy0hx0iw1k
  }


------------------------frm------------------------

frm:NrotT {
  tmp = pi/180, p = real(p2)
  rotXax = exp(flip(real(p1)*tmp))
  rotYax = exp(flip(imag(p1)*tmp))
  X = real(pixel), Y = imag(pixel)
  a = real(rotXax), b = imag(rotXax)
  c = real(rotYax), d = imag(rotYax)
&nb! sp; cx = c*X - a*d*p - b*d*Y
  cy = a*c*p + d*X + b*c*Y
  cz = a*Y - b*p
  x1 = 0, y1 = 0, z1 = 0:
    f = sqr(x1) + 2*y1*z1 + cx
    g = sqr(z1) + 2*x1*y1 + cy
    h = sqr(y1) + 2*x1*z1 + cz
    x1 = f, y1 = g, z1 = h
    z = sqr(x1)+sqr(y1)+sqr(z1)
  z < 100 }

NrotTC {
  tmp = pi/180, p = real(p2)
  rotXax = exp(flip(real(p1)*tmp))
  rotYax = exp(flip(imag(p1)*tmp))
  X = real(pixel), Y = imag(pixel)
  a = real(rotXax), b = imag(rotXax)
  c = real(rotYax), d = imag(rotYax)
  cx = c*X - a*d*p - b*d*Y
  cy = a*c*p + d*X + b*c*Y
  cz = a*Y - b*p
  x1 = 0, y1 = 0, z1 = 0:
    f = sqr(x1) + 2*y1*z1 + cx
    g = sqr(z1) + 2*x1*y1 + cy
    h = sqr(y1) + 2*x1*z1 + cz
    x1 = g, y1 = f, z1 = h
&n! bsp;   z = x1^2 + y1^2 + z1^2
  z < 100 }

----------------------end Par----------------------






Russell Walsmith
russw@lycos.com