Julibrot subtypes "quat" and "hypercomplex" fix
Jonathan and Tim, I think I've stumbled upon the reason why "julibrot" subtypes "quat" and "hypercomplex" don't render correctly - it seems to be a simple case of wrong initialization in zlinefp() in file jb.c. However, my knowledge of Fractint's source is minimal at best, so its possible the fix is not complete (although all works nicely with the executable produced by *cough* old Borland C/C++ 3.1). Since the diff is small it's directly pasted below this text (hope this is ok). Regards, Gerald ------------------------ jb.c.diff --------------------------- *** jb.c Sun Jan 18 07:19:34 2004 --- ..\jb.c Fri Feb 13 06:27:48 2004 *************** *** 308,319 **** for (zpixel = 0; zpixel < zdots; zpixel++) { ! old.x = jxfp; ! old.y = jyfp; ! jbcfp.x = mxfp; ! jbcfp.y = myfp; ! qc = param[0]; ! qci = param[1]; ! qcj = param[2]; ! qck = param[3]; #ifdef XFRACT if (keychk++ > 500) --- 308,334 ---- for (zpixel = 0; zpixel < zdots; zpixel++) { ! /* Special initialization for Mandelbrot types */ ! if (neworbittype == QUATFP || neworbittype == HYPERCMPLXFP) ! { ! old.x = 0.0; ! old.y = 0.0; ! jbcfp.x = 0.0; ! jbcfp.y = 0.0; ! qc = jxfp; ! qci = jyfp; ! qcj = mxfp; ! qck = myfp; ! } ! else ! { ! old.x = jxfp; ! old.y = jyfp; ! jbcfp.x = mxfp; ! jbcfp.y = myfp; ! qc = param[0]; ! qci = param[1]; ! qcj = param[2]; ! qck = param[3]; ! } #ifdef XFRACT if (keychk++ > 500) --------------------- end of jb.c.dif ------------------------
On Friday 13 February 2004 1:04 am, Gerald K. Dobiasovsky wrote:
I think I've stumbled upon the reason why "julibrot" subtypes "quat" and "hypercomplex" don't render correctly - it seems to be a simple case of wrong initialization in zlinefp() in file jb.c.
What are the symtoms of not rendering correctly? Can you provide a PAR?
However, my knowledge of Fractint's source is minimal at best, so its possible the fix is not complete (although all works nicely with the executable produced by *cough* old Borland C/C++ 3.1).
I'll try to look at it this weekend, but Tim has more knowledge of these types than I do. Jonathan
Jonathan Osuch wrote:
What are the symtoms of not rendering correctly? Can you provide a PAR?
Apologies for being obscure, I somehow had the impression of this being a known bug. PARs follow beneath this text. Both "Quat-Test" and "Hyp-Test" PARs are set up in a way the resulting 3d slice of the 4d-Mandelbrot set should be easily recognizable if rendered correctly (its silhouette resembling the well known 2d version, the complex M-set). Load, say, "Quat-Test": Instead of the above, Fractint outputs a sphere. Now load "QuatJul-Test": This produces the quaternion version of what Mandelbrot called the San Marco Dragon. Press <z>, switch from quatj to quat, press <Enter>. Although we are now in a mandelbrot routine, again we get the San Marco Dragon! The equivalent applies to "Hyp-Test" and the hypercomplex types. And... even going from (one type) julia --> (other type) mandelbrot, one gets the (other type) julia with the same parameters! Hope this helps a bit more, Gerald ---------------------- Begin of PARs ----------------------- Quat-Test { ; Fractint Version 2003 Patchlevel 1 ; reset=2003 type=julibrot julibrotfromto=-1.5/1.5/0/0 julibroteyes=2.5 orbitname=quat corners=-2/2/-1.5/1.5 params=0/0/0/0 float=y } QuatJul-Test { ; Fractint Version 2003 Patchlevel 1 ; reset=2003 type=julibrot julibrotfromto=-1.5/1.5/0/0 julibroteyes=2.5 orbitname=quatjul corners=-2/2/-1.5/1.5 params=-0.75/0/0/0/0/0 float=y } Hyp-Test { ; Fractint Version 2003 Patchlevel 1 ; reset=2003 type=julibrot julibrotfromto=-1.5/1.5/0/0 julibroteyes=2.5 orbitname=hypercomplex function=sqr corners=-2/2/-1.5/1.5 params=0/0/0/0 float=y } HypJul-Test { ; Fractint Version 2003 Patchlevel 1 ; reset=2003 type=julibrot julibrotfromto=-1.5/1.5/0/0 julibroteyes=2.5 orbitname=hypercomplexj function=sqr corners=-2/2/-1.5/1.5 params=-0.75/0/0/0/0/0 float=y } -------------------- End of PARs -------------------------
On Friday 13 February 2004 8:30 pm, Gerald K. Dobiasovsky wrote:
Both "Quat-Test" and "Hyp-Test" PARs are set up in a way the resulting 3d slice of the 4d-Mandelbrot set should be easily recognizable if rendered correctly (its silhouette resembling the well known 2d version, the complex M-set).
Load, say, "Quat-Test": Instead of the above, Fractint outputs a sphere.
Now load "QuatJul-Test": This produces the quaternion version of what Mandelbrot called the San Marco Dragon. Press <z>, switch from quatj to quat, press <Enter>. Although we are now in a mandelbrot routine, again we get the San Marco Dragon!
The equivalent applies to "Hyp-Test" and the hypercomplex types.
Oh... That's broke! Shows how much I play with Julibrots. I'll test your patch, thanks. Jonathan
participants (2)
-
Gerald K. Dobiasovsky -
Jonathan Osuch