An afternoon visiting an old friend.
Guess I should have seen it coming... Finished an article earlier than expected today. Had a few email inquiries to get through and just finished the last one (someone wanting to know what exactly Hilbert spaces are), made some posts of my own, found myself with a whole afternoon with (just for a moment) no idea what to do in it. Brief moment of panic: what had I forgotten? Nope, just no active contracts right now. Nothing needing writing, nothing needing coding, nothing needing expediting, and my friend's nephew is still on holiday, so he won't be in for his tutorial. Halfway through January and things are still quiet. Thought of a few things to do, but I'd already planned trips to the art gallery to see the new Chinese exhibit and the museum for a bit of digging through its archives for Thursday ... wasn't keen on the beach at all ... seen the movies I've been planning to see ... read a book? (glance at the shelves - nope, nothing saying "READ me! Read ME!") ... take a nap? ... could go to the pub ... the usual suspects seemed strangely boring. The proveribal drawing board was as metaphorically quiet as the literal bookshelves. Ended up spending the afternoon messing 'round on Fractint. Well, you should have been able to guess that - otherwise this post about my day and psychological state would have been entirely off-topic; it's not as though any of you would actually be interested in my psychological state while I munched lunch. It's just that I don't play with Fractint as much as I did ... good thing I didn't pay for it, I suppose (Would I use it more if I _had_ paid for it? Judging from past form, no. It would just sit there with its cost/benefit ratio steadily climbing.) I figured twenty pars worth keeping would be a convenient figure; to make things more interesting for myself, I resolved to use only those formulae that I'd coded myself. WFA, here are the final score: Morgan L. Owens "Now, to the theatre." --*--*-- Ypres_Dawn { ; De l'autre extremite du monde. ; Version 2001 Patchlevel 8 reset=2001 type=formula formulafile=dynamics.frm formulaname=distortpendulummg function=log passes=1 center-mag=-0.319069/0.0272592/24.6537 params=0.1/1 float=y maxiter=255 inside=255 periodicity=0 colors=000<82>K00L00L00<90>gY0gY0gZ0gZ0hZ0<74>zzz } Asymptotic_Freedom { ; Version 2001 Patchlevel 8 reset=2001 type=formula formulafile=dynamics.frm formulaname=HenonQuadmapJulGen function=cotanh/recip passes=1 center-mag=-1.36335/0.187656/1.572327/1/-90 params=0/0/0/0 float=y maxiter=255 inside=epsiloncross proximity=-0.001 outside=0 periodicity=0 colors=653<9>cb`fecjig<3>xwu<9>qYXpVVoSS<2>mKLlHIjII<8>QRLOSLMTL<3>CXN<9\
ekKhmKknK<3>wuI<9>VUOSRPPOQ<3>DCT<9>YCS_CSaCS<3>jCR<9>OMcMNeKOf<3>ATl<9\ 8EL8DI7BF<3>653<9>cb`fecjig<3>xwu<9>qYXpVVoSS<2>mKLlHIjII<8>QRLOSLMTL<3\ CXN<9>ekKhmKknK<3>wuI<9>VUOSRPPOQ<3>DCT<9>YCS_CSaCS<3>jCR<9>OMcMNeKOf<3\ ATl<14>AA9 }
Grand_Unification { ; Version 2001 Patchlevel 8 reset=2001 type=formula formulafile=dynamics.frm formulaname=distortpendulummg function=zero passes=d corners=-0.0475/0.285/0.15865385/-0.03365385 params=0.5/0.5 float=y maxiter=255 inside=epsiloncross proximity=-0.00025 outside=0 periodicity=0 viewwindows=1/0.526/yes/0/0 colors=000ccc<3>nnnqqqtttwwwzzz<4>IIz99z00z<9>bbOffKjjG<3>zz0<9>zO0zK0zG\ 0<3>z00<9>O0bK0fG0j<3>00z<9>0bO0fK0jG<3>0z0<9>bObfKfjGj<3>z0z<9>`0`Y0YV0\ V<2>N0NK0KJ1L<8>8Ia7Kc5Me<2>2Sk0Um0Vm<8>0em0fm0hm<2>0km0mm0mm<8>0gu0gu0f\ v<3>0cz<9>bqzfrzjtz<3>zzz<25>zhCzgAzf8<2>zd2zc0zd0<8>zq0zr0zt0<3>zz0<9>z\ O0zK0zG0<3>z00<14>ZZZ } Not_a_Nice_Doggy { ; Version 2001 Patchlevel 8 reset=2001 type=formula formulafile=chby19.frm formulaname=ca03-19 center-mag=-0.938086/0.440367/5.464481/1/-90 params=0.1/0.25/1/0 float=y maxiter=1023 inside=255 periodicity=0 colors=653<9>cb`fecjig<3>xwu<9>qYXpVVoSS<2>mKLlHIjII<8>QRLOSLMTL<3>CXN<9\
ekKhmKknK<3>wuI<9>VUOSRPPOQ<3>DCT<9>YCS_CSaCS<3>jCR<9>OMcMNeKOf<3>ATl<9\ 8EL8DI7BF<3>653<9>cb`fecjig<3>xwu<9>qYXpVVoSS<2>mKLlHIjII<8>QRLOSLMTL<3\ CXN<9>ekKhmKknK<3>wuI<9>VUOSRPPOQ<3>DCT<9>YCS_CSaCS<3>jCR<9>OMcMNeKOf<3\ ATl<14>AA9 }
Binding_Energy { ; Version 2001 Patchlevel 8 reset=2001 type=formula formulafile=chby15.frm formulaname=C03-15 center-mag=4.26326e-014/-2.84217e-014/0.01293333 passes=t params=0.1/0.5/100/0 float=y maxiter=255 inside=255 periodicity=0 colors=00000V<18>00s00t00v00w00x00z<41>0qz0rz0sz<3>0yz<9>bymfyljyk<3>zye\ <9>zyGzyEzyB<3>zy0<41>z80z70z50<2>z20z00y00<24>T00S00R00<3>L00<9>jaDleEo\ iF<3>zyL<9>z_8zY7zV6<3>zK0<8>Q90L70H60<3>000<22>00U } Membrane_Paradigm { ; Version 2001 Patchlevel 8 reset=2001 type=formula formulafile=chby7.frm formulaname=P07-07 center-mag=+0.30185741738705010/-1.15831114979194900/153.647/1/-87.599 params=0/0/1/0 float=y maxiter=255 inside=255 periodicity=0 colors=653<3>JIGNMK000UTR<3>fecjigmlj<2>xwu<9>qYXpVVoSS<2>mKLlHIjII<8>QR\ LOSLMTL<3>CXN<9>ekKhmKknK<3>wuI<9>VUOSRPPOQ<3>DCT<9>YCS_CSaCS<3>jCR<9>OM\ cMNeKOf<3>ATl<9>8EL8DI7BF<3>653<9>cb`fecjig<3>xwu<9>qYXpVVoSS<2>mKLlHIjI\ I<8>QRLOSLMTL<3>CXN<9>ekKhmKknK<3>wuI<9>VUOSRPPOQ<3>DCT<9>YCS_CSaCS<3>jC\ R<9>OMcMNeKOf<3>ATl<14>AA9 } Unbothered_Title_2 { ; Version 2001 Patchlevel 8 reset=2001 type=formula formulafile=blend.frm formulaname=quarterblend_ijjjj center-mag=-0.00333611/4.44089e-016/0.6377551/1/90 params=-1/0/0/-1/0/1/-1/0 float=y maxiter=255 inside=255 potential=255/500/150 periodicity=0 colors=000<62>A0BA0BB0C<97>U01U01U01<2>V01V01V12W23<83>zzz } Unbothered_Title_3 { ; Version 2001 Patchlevel 8 reset=2001 type=formula formulafile=raytrace.frm formulaname=threecircles2 center-mag=0.610996/1.77636e-015/0.5025363/1/90 params=0.8/0/2.6/0 float=y maxiter=255 inside=255 outside=atan periodicity=0 colors=000zzz<42>zzBzz9zz8<3>yy4yy4yx4<72>yX0yX0yW0<127>000 } Unbothered_Title_4 {; Version 2001 Patchlevel 8 reset=2001 type=formula formulafile=newton_e.frm formulaname=newton_elliptics_4 center-mag=+0.57733246912440290/+0.09997371801359245/123/1/53.13 params=0/1/0/0.1 float=y maxiter=1023 inside=255 periodicity=0 colors=000ueCwfBzgA<13>vEAuBAu9A<2>t3As0Aq7BnEDlLEGaY<24>iIejHelHe<3>qDg\ rWlsor<19>mfPmeOleMldLldJkcH<23>oYcpYdpYe<2>pXhqWioUh<4>`JcZHbWEa<3>K5X<\ 8>LRkLUlLWn<3>Mfu<3>Zceab`daX<3>rYG<34>bdpadqadr`ds`dt_ev<24>HVRGVQGUP<3\
CSJ<3>qSn<8>aVZ_VXZVV<3>RXN<12>sdD }
Sagittal_Coherence { ; Version 2001 Patchlevel 8 reset=2001 type=formula formulafile=chby5.frm formulaname=sc06-05 passes=d center-mag=6.19973/9.57075/2.446735/1/10 params=1/0/1/0 float=y maxiter=1023 inside=255 outside=atan invert=0.5/6.2038774233896/9.8444537114261 periodicity=0 colors=653<9>cb`fecjig<3>xwu<9>qYXpVVoSS<2>mKLlHIjII<8>QRLOSLMTL<3>CXN<9\
ekKhmKknK<3>wuI<6>caM`_NYXN<3>MLRJISGFSDCT<9>YCS_CSaCS<3>jCR<5>XIZVJ_TK\ `<3>KOfIPhFRiDSkATl<9>8EL8DI7BF<3>653<9>cb`fecjig<3>xwu<9>qYXpVVoSS<2>mK\ LlHIjII<8>QRLOSLMTL<3>CXN<9>ekKhmKknK<3>wuI<6>caM`_NYXN<3>MLRJISGFSDCT<9\ YCS_CSaCS<3>jCR<5>XIZVJ_TK`<3>KOfIPhFRiDSkATl<14>AA9 }
Not_Your_Job { ; Version 2001 Patchlevel 8 reset=2001 type=formula formulafile=chby5.frm formulaname=Ca10-05 passes=1 center-mag=+0.07662876962040530/+0.09346251373957647/6.137269e+012/1/-14\ .997/-0.001 params=2/0/1/0 float=y maxiter=1023 inside=255 periodicity=0 sound=beep/fm polyphony=3 wavetype=1 colors=00032t40t50s60s<36>ps`qt`rv_sw_uyZvzZwzYxzYzyXzwXzvW<30>OCHNBGLAG\ K8FJ6F<14>I5EI5EI5E<3>I5EIzE<4>IzE<3>IzEIzEH7F<33>CDLCELCEL<2>CELBFMDEM<\ 3>I8OJ6PK5PL3QN2QO0RP0RQ0S<22>rZbs_cuac<2>xeezgezhfzjf<5>rsiqtjpvjnwkmyk\ lzlkzlizm<21>JUxITxGRy<3>BLzAKz9Iz<5>19w08v06v05u13u } Mandelbrot_Forgery { ; Version 2001 Patchlevel 8 reset=2001 type=formula formulafile=more.frm formulaname=Mandelbar passes=1 center-mag=-0.62872052566293170/+0.11121047612571350/23956.75/0.1483/-12\ .868/-50.835 float=y maxiter=512 inside=255 logmap=-43 periodicity=0 colors=000Xtu<8>XvuXvuXvuXvuXwv<23>eeOfdNfdL<2>gaHh`Fg`F<25>FCSEBTDATC9U\ B8U97V<158>8RD7SC7SC<10>9SE9SE9SE<3>ASFXtu } Parallel_Transport { ; Version 2001 Patchlevel 8 reset=2001 type=formula formulafile=ifs.frm formulaname=A4Page passes=1 center-mag=1/-0.666667/1.5 float=y maxiter=16 inside=startrail outside=0 periodicity=0 colors=@default } Two_Flows { ; Version 2001 Patchlevel 8 reset=2001 type=formula formulafile=chby24.frm formulaname=P03-24 function=sin/sqr/sinh passes=t center-mag=-1.19245/26.7544/0.2931875/17.119/180 params=0.1/0 float=y maxiter=1023 inside=255 periodicity=0 sound=off polyphony=3 wavetype=1 colors=000LLL<9>LLjLLlLLo<2>LLwLLzLNx<8>Lj`LlZLoW<3>LzL<9>LzjLzlLzo<2>Lz\ wLzzNxx<8>j``lZZoWW<3>zLL<9>zLjzLlzLo<2>zLwzLzzNx<8>zj`zlZzoW<3>zzL<9>zz\ jzzlzzo<3>zzz<9>OOPKKMGGI<3>002<8>00Q00S00V<2>00b00e02c<8>0QG0SE0VB<3>0e\ 0<9>0eQ0eS0eV<2>0eb0ee2cc<8>QGGSEEVBB<3>e00<9>e0Qe0Se0V<3>e0e<9>eDGeEEeF\ B<3>eL0<9>eYQeZSe_V<3>eee<14>NNN } Altern_AntiSpiral { ; Version 2001 Patchlevel 8 reset=2001 type=formula formulafile=more.frm formulaname=PokornyJul center-mag=0.200125/0.776177/2.506266 params=0.25/0.9 float=y maxiter=1023 inside=255 logmap=yes periodicity=0 colors=@altern } Puffer_Train { ; Version 2001 Patchlevel 8 reset=2001 type=formula formulafile=evenmore.frm formulaname=Rossler2Man center-mag=+0.87099255681842290/+0.45740250376426910/5.001221e+012/1.000\ 1 params=0/0/12/0 float=y maxiter=1023 inside=255 logmap=57 periodicity=0 colors=653<9>cb`fecjig<3>xwu<9>qYXpVVoSS<2>mKLlHIjII<8>QRLOSLMTL<3>CXN<9\
ekKhmKknK<3>wuI<9>VUOSRPPOQ<3>DCT<9>YCS_CSaCS<3>jCR<9>OMcMNeKOf<3>ATl<9\ 8EL8DI7BF<3>653<9>cb`fecjig<3>xwu<9>qYXpVVoSS<2>mKLlHIjII<8>QRLOSLMTL<3\ CXN<9>ekKhmKknK<3>wuI<9>VUOSRPPOQ<3>DCT<9>YCS_CSaCS<3>jCR<9>OMcMNeKOf<3\ ATl<14>AA9 }
FriendlyBiological { ; Version 2001 Patchlevel 8 reset=2001 type=formula formulafile=evenmore.frm formulaname=Rossler2Man passes=1 center-mag=+0.80768598348989470/+1.07767747322206200/622.4066/1/28 params=0/0/12/0 float=y maxiter=1023 inside=255 logmap=9 periodicity=0 colors=tuu<3>tvvtvvtvvtvvuww<6>lwwkwwjwwiwwgww<3>ctvbtvasu<3>XosVnsUmr<1\ 8>AXh9Wg8Vg7Uf6Te<4>5Pc5Oc5Ob4Na<18>17R17Q16Q<2>13O02N14O02N<8>16Q27Q27Q\ <3>3AT3BU3CV<6>4Ka4Lb5Mc<5>4Si4Tj4Uk3Vl3Wm<4>2_o1_p1`p<2>0cr0cr0br<3>1_q\ 1Zp1Yp<8>3Qg3Pf3Oe<2>4La4K`3IZ<3>4GS4FQ5FO<3>6CG7BD7BD<70>oqqpqqqrrqrrrs\ s<8>suu } Corrosion { ; Kerry Mitchell colour map ; Version 2001 Patchlevel 8 reset=2001 type=formula formulafile=chby17.frm formulaname=H04-17 function=ident/log passes=1 center-mag=-0.405748/-0.631308/5.253812/1/-34.999 params=0/0/1/0 float=y maxiter=1023 inside=255 periodicity=0 colors=222qU6yaEqaMyiUeYQYQIaaaiiiqiayqiqqqyyyemuYemQeuIYmAYu2QmAQe2IYMU\ aUaiQQQIIIAIQ2AIAAA642IC6UKAYK6iSAqS2u_Eq_IugUi_QYSMY_aigeqgYuoiqomuwyio\ uYgqUguI_qA_y6SmASi6KYISaU_eUSQIKMAKU6CIACEA62IEAUI6YMAiQ6uU2qYEuaIqeUiY\ MYUQYaeieauiYqmiuqmquyimqYiuUeqIau6YyAUm6QiAMYIUeUYaUQMIMQ6IUAEI6AEA86IG\ EQG6YOEeO6yW2qWAycIqcQiWIaWQYciecaykYqkeysmqsuikmakuUcmMcu2WyAWq2OiAOaIW\ iQWaUOIMOQ2GUAGM28EEA6MIEQE2aQEeM2yY6mUAyeMmaQeUIaYUaeieaYymamieyuqmquei\ mamyQamMey2UuEYq2MeEQaMYiQUYQMIMQU2EQEIM26AE82MGAUG2aOAiO2uW6mWEucMmcUeW\ MYWUaceicYukamkiusqmsyekqYkyQcqIcy6WuEWm6OeEOYMWeUWYQOMIOU6GQEGI68AIA2QI\ AYI2eQAmQ2uYAmYIueQiaUaUMYYYeeemeYumemmmuuuiqyaiqUiyMaqEay6UqEUi6MaIQYQY\ eUUUMMMEMU6EMEEE666MC2QKEaK2eSEmS6y_Am_MygQe_UaSIa_Yegimgayoemoqywueoyag\ mQgyM_mE_u2SqESe2KaMSYQ_iQSUMKIEKQ2CMECA246ME6UMEaM6iUE } Mitrocoma { ; Version 2001 Patchlevel 8 reset=2001 type=formula formulafile=chby26.frm formulaname=T03-26 function=abs/ident/ident passes=1 center-mag=-0.833021/0.838198/7.751938 params=2/0.2/0/0/8/1 float=y maxiter=1023 inside=255 periodicity=0 colors=@blues.map } Six_OClock { ; Version 2001 Patchlevel 8 reset=2001 type=formula formulafile=twodne~1.frm formulaname=twodnewton_o passes=t center-mag=+17.61898205646764000/+11.36059478637080000/109.2896/1/-22.49\ 9 params=0.1/-1 float=y maxiter=1023 inside=255 periodicity=0 colors=000e0_e0be0e<9>eDGeEEeFB<3>eL0<9>eYQeZSe_V<3>eee<9>TTTSSSRRR<2>NN\ NLLLLLN<8>LLjLLlLLo<2>LLwLLzLNx<3>LYm<21>MruMsvMtv<3>Nxx<8>j``lZZoWW<3>z\ LLzLNzLQzLS<18>zgVzhVzjV<2>zmVzoWzrTztRzwOzzL<9>zzjzzlzzo<3>zzz<3>kkkggg\ ccd__`<31>__`<4>__`0_60b30e0<9>0eQ0eS0eV<2>0eb0ee2cc<8>QGGSEEVBB<3>e00<1\ 2>e0Y } frm:distortpendulumMG{ bailout=4 dt=real(p1) a=imag(p1) b=real(pixel) c=imag(pixel) time=0 z=pixel: x=real(z) y=imag(z) z=x+dt*y+flip(y+(dt*fn1(b*x-c*time)-x)*a) time=time+dt |z|<=bailout} frm:HenonQuadmapJulGen{ bailout=real(p2)+4 c=p1 d=1-c z=pixel: x=real(z) nx=c*x-imag(z)-d*fn1(x) z=nx+flip(x-c*nx+d*fn2(nx)) |z|<=bailout} frm:Ca03-19 {; V.1.1 - earlier versions may be discarded ; Copyright (c)1998,1999 Morgan L. Owens ; = (2(a+2)xCa(2)-(2a+1)Ca(1))/3 a=p2, b=(a+a)*(a+1), c=(a+a+4)/3 t=p1, bailout=4, z=pixel: x=real(z), y=imag(z) y=y+t*(b*x*(c*x*x-1)) x=x-t*(b*y*(c*y*y-1)) z=x+flip(y) |z|<=bailout } frm:C03-15 {; V.1.1 - earlier versions may be discarded ; Copyright (c)1998,1999 Morgan L. Owens ; = zC02-C01 r=p1, bailout=real(p2)/10000, z=pixel: zz=z*z f=z*(zz-3) fd=3*zz-3 oz=z z=z-r*f/fd bailout<=sqrt(|(|z|)-(|oz|)|) } frm:P07-07 (XYAxis) {; V.1.1 - earlier versions may be discarded ; Copyright (c)1998,1999 Morgan L. Owens ; = (13zP06-6P05)/7 bailout=real(p2)/10000, z=pixel: zz=z*z f=z*(3*zz*(11*zz*(13*zz-21)+105)-35)/16 fd=(21*zz*(11*zz*(13*zz-15)+45)-35)/16 oz=z w=z-f/fd ww=w*w fw=w*(3*ww*(11*ww*(13*ww-21)+105)-35)/16 z=w-fw/fd bailout<=|z-oz| } frm:quarterblend_iJJJJ{ z=pixel: if(imag(z)>0) if(real(z)<0) c=p1 else c=p2 endif else if(real(z)>0) c=p3 else c=p4 endif endif z=sqr(z)+c |z|<=4} frm:threecircles2 { ; three circles located at the cube roots of 1 ; real(p1) specifies their common radius - note that they're tangent to ; each other when real(p1)=sqrt(3)/2. ; ; p2 specifies a point (the "radiant") from which test particles are ; launched. More precisely, every point in the complex plane emits a ; test particle, which travels directly away from p2 ; ; First, we need to establish the centres of the three circles. centre1=1 centre2=exp(flip(2*pi/3)) centre3=sqr(centre2) ; Reckon this is faster than another exp()? rho=real(p1) direction=pixel-p2 z = pixel trapped=(|z-centre1|<sqr(rho) || |z-centre2|<sqr(rho) || |z-centre3|<sqr(rho)) ; For efficiency, we see if z is _inside_ a circle. If it is, we can ; predict how long it will take to escape :-) ; Note also that since Fractint's || operator is nonstandard, we use ; sqr(rho) instead of rho. : ; End of initialisation section. Now beginning the loop. if(trapped) escaped=0 ; We'll continue to iterate, though - so that the insides of ; the circles really are classified as "inside" else ; Let's get dangerous ; Right, we have a ray that passes through the point z in the direction ; theta. Finding the intersections (if any) of this ray with a circle ; involves finding the solutions of a certain quadratic with real ; coefficients. If the quadratic has two real roots, then the ray cuts the ; circle. If it has one real root (necessarily of multiplicity two) then ; the ray is tangent to the circle. And if both roots are complex, then ; the ray misses the circle completely. escaped=1 ; As far as we know at the moment. hit=9999 ; Meaningless when escaped==1 ;Examining circle 1 coefA = |direction| coefB = real(z-centre1)*real(direction)+imag(z-centre1)*imag(direction) coefC = |z-centre1|-sqr(rho) discriminant=coefB*coefB-coefA*coefC ; If discriminant==0, then the ray is tangent to circle 1 - we won't ; count this as a "reflection" ; If discriminant<0, then the ray misses circle 1 completely. if(discriminant>0) ; Two solutions t1=(-coefB-sqrt(discriminant))/coefA t2=(-coefB+sqrt(discriminant))/coefA if(t1>0) ; If t1<0 then this hit is actually behind us escaped=0 ; Sorry, not this time. hit=t1 target=1 ; The first circle endif if(t2>0 && t2<t1) ; Hits t2 before hitting t1 escaped=0 hit=t2 target=1 endif endif ; Circle 2 ; coefA = |direction| is already known coefB = real(z-centre2)*real(direction)+imag(z-centre2)*imag(direction) coefC = |z-centre2|-sqr(rho) discriminant=coefB*coefB-coefA*coefC if(discriminant>0) t1=(-coefB-sqrt(discriminant))/coefA t2=(-coefB+sqrt(discriminant))/coefA if(t1>0 && t1<hit) escaped=0 hit=t1 target=2 endif if(t2>0 && t2<t1 && t2<hit) escaped=0 hit=t2 target=2 endif endif ; Circle 3 coefB = real(z-centre3)*real(direction)+imag(z-centre3)*imag(direction) coefC = |z-centre3|-sqr(rho) discriminant=coefB*coefB-coefA*coefC if(discriminant>0) t1=(-coefB-sqrt(discriminant))/coefA t2=(-coefB+sqrt(discriminant))/coefA if(t1>0 && t1<hit) escaped=0 hit=t1 target=3 endif if(t2>0 && t2<t1 && t2<hit) escaped=0 hit=t2 target=3 endif endif ; We now know when we hit a circle (hit) and which circle it is (target) ; The hit point is z+direction*hit, the normal at this point is ; z-centre?, which we normalise to a unit vector (un). ; ; We set z to the hit point, and the reflected vector is ; direction-2(direction.un)un if(target==1) un=(z-centre1)/cabs(z-centre1) elseif(target==2) un=(z-centre2)/cabs(z-centre2) else un=(z-centre3)/cabs(z-centre3) endif r=direction-2*(real(direction)*real(un)+imag(direction)*imag(un))*un z=z+direction*hit direction=r endif ;bailout continue until we escape escaped==0 } frm:newton_elliptics_4{ x=real(pixel) y=imag(pixel) A=real(p1) B=imag(p1) phi=tan(real(p2)) t=imag(p2) z=x+flip(y) : oz=z x=real(z) y=imag(z) d=2*y*phi-(3*sqr(x)+A) f=(sqr(x)+A)*x+B-sqr(y) g=phi*x+t-y nx=x-f+2*y*g ny=y-phi*f+(3*x^2+A)*g z=nx+flip(ny) |z-oz|>0.0001 } frm:Mandelbar(Xaxis){ z=pixel: z=sqr(conj(z))+pixel |z|<=4} Julibar(Origin){ z=pixel: z=sqr(conj(z))+p1 |z|<=4} frm:A4Page(XYAxis){ s=-sqrt(2) z=pixel: x=real(z) y=imag(z) if(x>0) z=s*(flip(conj(z)-1)) else z=s*(flip(conj(z)+1)) endif |z|<=300} frm:Sc06-05 {; V.1.1 - earlier versions may be discarded ; Copyright (c)1998,1999 Morgan L. Owens ; = Sc[6]=2(zO[5]-cos(5*pi/2)^2)/5 r=p1, bailout=real(p2)/10000, z=pixel: z2=z*z, z4=z2*z2 f=((((((72-8*z)*z-192)*z+384)*z-704)*z+768)/(z4*z)) fd=((((384-72*z)*z-1152)*z+2816)*z-3840)/(z4*z2) oz=z z=z-r*f/fd bailout<=|z-oz| } frm:twodnewton_o{ h = real(p1) m = imag(p1) z=pixel: oz=z x=real(z),y=imag(z) f=2*x-y-m*(x-x*x) g=2*y-x-m*(y-y*y) fx=2-m*(1-2*x) gy=2-m*(1-2*y) delta =(-g-f*gy)/(fx*gy-1) epsilon=(-f-g*fx)/(fx*gy-1) nx=x+h*delta ny=y+h*epsilon z=nx+flip(ny) |oz-z|>.001 } frm:Rossler2Man(XAxis){ bailout=real(p2)+4 z=p=pixel: x=real(z) y=imag(z) z=abs(sqr(x)-sqr(y))-real(p)+flip((x+x)*y-imag(p)) |z|<=bailout} frm:PokornyJul(Origin){ bailout=4 c=p1 z=pixel: z=1/(sqr(z)+c) |z|<=bailout} frm:P03-24 {; V.1.1 - earlier versions may be discarded ; Copyright (c)1998,1999 Morgan L. Owens ; = ( 5zP02-2P01)/3 t=p1, bailout=4, z=fn3(pixel): x=real(z), y=imag(z) y=y+t*(fn1(x*(5*x*x-3)/2)) x=x-t*(fn2(y*(5*y*y-3)/2)) z=x+flip(y) |z|<=bailout } frm:T03-26 {; V.1.1 - earlier versions may be discarded ; Copyright (c)1998,1999 Morgan L. Owens ; = 2zT02-T01 t=p1, bailout=real(p3), z=pixel, v=imag(p3): x=real(z), y=imag(z) Tx=(fn1(x*(4*x*x-3))) Ty=(fn1(y*(4*y*y-3))) x=x-t*Ty, y=y+t*Tx w=fn1(x+flip(y)) z=fn3(v/fn2(w*w))+p2 |z|<=bailout } frm:H04-17 {; V.1.1 - earlier versions may be discarded ; Copyright (c)1998,1999 Morgan L. Owens ; = 2(xH(3)-3H(2)) z=pixel, oz=0 fz=12 zt=fn1(z)+p1: foz=fz zz=z*z fz=4*(4*zz*(zz-3)+3) z=z-p2*fz*(z-oz)/(fz-foz) oz=zt zt=fn2(z) |fz|>=0.0001 } frm:Ca10-05 {; V.1.1.1 - earlier versions may be discarded ; Copyright (c)1998,1999 Morgan L. Owens ; = ((a+9)xCa(9)-(a+4)Ca(8))/5 a=p1 b1=a*(a*(a*(a*(a+10)+35)+50)+24)/382860 c1=15*(a+5) d1=2*(a+6) e1=a*(a+15)+56 f1=2*(a+9)/45 g1=14*(2*a+13)/5 b2=a*(a*(a*(a*(a*(a+15)+85)+225)+274)+120)/12762 e2=(a+9)/9 f2=21*(2*a+13)/5 bailout=real(p2)/10000, z=pixel: zz=z*z f=b1*(c1*zz*(d1*zz*(81*zz*(e1*zz*(f1*zz-1)+g1)-1418)+2127)-31903) fd=b2*z*(d1*zz*(162*zz*(e1*zz*(e2*zz-2)+f2)-2881)+2127) oz=z z=z-f/fd bailout<=|z-oz| }
Wow! Morgan, you should spend more time with your old friends. :-) <much clipped>
Ended up spending the afternoon messing 'round on Fractint. Well, you should have been able to guess that - otherwise this post about my day and psychological state would have been entirely off-topic; it's not as though any of you would actually be interested in my psychological state while I munched lunch. It's just that I don't play with Fractint as much as I did ... good thing I didn't pay for it, I suppose (Would I use it more if I _had_ paid for it? Judging from past form, no. It would just sit there with its cost/benefit ratio steadily climbing.)
I figured twenty pars worth keeping would be a convenient figure; to make things more interesting for myself, I resolved to use only those formulae that I'd coded myself. WFA, here are the final score: Morgan L. Owens
Hi Morgan, At 19:54 14/01/03 +1300, you wrote:
Guess I should have seen it coming...
me too.. super formulas! super pic's! lot's of stuff to play around.. wouwww!!
Morgan L. Owens "Now, to the theatre."
here's something for 3D freaks.. run the pic, enter the evolver, leave all values on default except these: Param 1 real=no Param 1 imag=no Param 2 real=no Param 2 imag=x+y (or x-y or x) image grid size=5 for parallel eyed viewing: x parameter range=4 x parameter offset=-2 for crossed eyes viewing: x parameter range=-4 x parameter offset=2 if the 3D effects are too strong, press F2 to halve the mutation levels.. ************* evolve3d { ; Version 2002 Patchlevel 3 reset=2002 type=formula formulafile=fractint.frm formulaname=threecircles2 center-mag=-1/0/0.33/1/-90/0 params=0.4/0/-2.5/0 float=y maxiter=200 inside=atan outside=atan periodicity=0 colors=000000<57>taJubJvbK<2>ydLzeLydL<55>642531421<2>100000001<56>Q_tQ`\ uR`v<2>SbyTczSby<61>000 } ; and the formula again (I don't know the author of it; maybe from Morgan L. Owens) frm:threecircles2 { centre1=1 centre2=exp(flip(2*pi/3)) centre3=sqr(centre2) rho=real(p1) direction=pixel-p2 z = pixel trapped=(|z-centre1|<sqr(rho) || |z-centre2|<sqr(rho) || |z-centre3|<sqr(rho)) : if(trapped) escaped=0 else escaped=1 hit=9999 coefA = |direction| coefB = real(z-centre1)*real(direction)+imag(z-centre1)*imag(direction) coefC = |z-centre1|-sqr(rho) discriminant=coefB*coefB-coefA*coefC if(discriminant>0) ; Two solutions t1=(-coefB-sqrt(discriminant))/coefA t2=(-coefB+sqrt(discriminant))/coefA if(t1>0) escaped=0 hit=t1 target=1 endif if(t2>0 && t2<t1) escaped=0 hit=t2 target=1 endif endif coefB = real(z-centre2)*real(direction)+imag(z-centre2)*imag(direction) coefC = |z-centre2|-sqr(rho) discriminant=coefB*coefB-coefA*coefC if(discriminant>0) t1=(-coefB-sqrt(discriminant))/coefA t2=(-coefB+sqrt(discriminant))/coefA if(t1>0 && t1<hit) escaped=0 hit=t1 target=2 endif if(t2>0 && t2<t1 && t2<hit) escaped=0 hit=t2 target=2 endif endif coefB = real(z-centre3)*real(direction)+imag(z-centre3)*imag(direction) coefC = |z-centre3|-sqr(rho) discriminant=coefB*coefB-coefA*coefC if(discriminant>0) t1=(-coefB-sqrt(discriminant))/coefA t2=(-coefB+sqrt(discriminant))/coefA if(t1>0 && t1<hit) escaped=0 hit=t1 target=3 endif if(t2>0 && t2<t1 && t2<hit) escaped=0 hit=t2 target=3 endif endif if(target==1) un=(z-centre1)/cabs(z-centre1) elseif(target==2) un=(z-centre2)/cabs(z-centre2) else un=(z-centre3)/cabs(z-centre3) endif r=direction-2*(real(direction)*real(un)+imag(direction)*imag(un))*un z=z+direction*hit direction=r endif escaped==0 } *********** have fun, Guy
participants (3)
-
Guy Marson -
John Wilson -
Morgan L. Owens