| 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---------------------- |