Dear reader Intro About three or four years ago I downloaded fractint and winfract. Since then, every year, during wintertime I'm playing with those programs. It's the formula parser that has my main interest. I can subdivide this in three things: 1. What are the possibilities of the parser? 2. Do I understand what it is doing? 3. Can I produce pictures, which are somehow interesting and/or beautiful? Now I feel the need to show some of my "investigations" to people who are interested. I'm not sure this list is the right place, because emails I read are mainly about implementation-problems. Well, we will see. Quit normal, during my investigations, a lot of questions pop up. Questions I couldn't answer. Maybe someone can. Short formulas and graphs of real valued functions This first time I like to show is that you can make really short formulas. Here's one: formula#1 jhline { : |Imag(Pixel)|<p1 } I like it: there is no initiation, nothing in the looping part, there is only a criteria to stop. The formula draws the x-as. The thickness of the line depends on the parameter p1. So I ask myself: "What is the shortest, meaningful formula possible". I came with this: formula#2 jhshortest { : Pixel<0 } This formula divides the plane in two half-planes. Apart from the name there are 10 symbols. Naturally this gives my first question: question#1 Is there a shorter formula possible? Does anybody know a shorter one? Because Pixel=( , ) is a complex number or otherwise interpreted a point of the plain, the statement Pixel<0 has mathematical spoken no meaning: there is no ordering in Z or R2. Nevertheless the generator interprets the statement. So question#2 How interprets the formulagenerator things like z<1? For sure these formulas have nothing to do with fractals. But they have to do with fractint. And the first one gave me a marvellous idea (at least that's what I think): you can use the formulagenerator for drawing the graph of real valued functions in a rather simple way. Here are two formulas doing that. The first draws a parabola, the second draws the graphs of functions of the form f(x)=(ax+b)/(cx^2+dx+e) formula#3 jhparabola {;Jos Hendriks,2002 : |real(Pixel)^2-imag(Pixel)-1.25|<p1 } formula#4 jhgraphs1 {;Jos Hendriks,2002 ;graph of y= (a1*x+a2*x)/(a3*x^2+a4*x+a5)\ ;imag(p3) gives the thickness : |(real(p1)*real(Pixel)+imag(p1))/\ (real(p2)*real(Pixel)^2+imag(p2)*\ real(Pixel)+real(p3))-imag(Pixel)|<imag(p3)||\ |real(Pixel)|<.001|||imag(Pixel)|<.001 } In these formulas is the amount of typework not greater then in a "math-program". The rendering time is not too long: a few seconds or less. Moreover, and I think the most interesting part: The unusual way fractint draws the graph (it's scanning if a point belongs to the graph or not) makes a graph a quite elegant drawing because the thickness of the line is not everywhere the same. So you can create elegant curves. About this maybe another time. For convenience I have included some parameter files, because some picture parameters are important. For instance maxiter=2. I have the frms also repeated. In this way you can transport all at once into a par file. p.s:don't blame me for mistakes I make in writing English: it's not my native language frm:jhline { ;Jos Hendriks,2002 ;draws the line y=0, p1 gives the thickness of the line ;watch out: only two colors are used ;take for instance maxiter=2, inside=0, outside=iter : |Imag(Pixel)|<p1 } x-as {;Jos Hendriks,2002 reset=2000 type=formula formulaname=jhline center-mag=0/0/0.6666667 params=0.001/0 float=y maxiter=2 inside=0 colors=00000e } frm:jhparabola{ ;Jos Hendriks,2002, ;draws a parabola. Thickness depends on p1. ;use maxiter=2,inside color=0, outside=iter : |real(Pixel)^2-imag(Pixel)-1.25|<p1 } jhparabola1 {;Jos Hendriks,2002 reset=2000 type=formula formulafile=sier.frm formulaname=jhparabola center-mag=0.0301786/0.369842/0.4959278 params=0.1/0 float=y maxiter=2 inside=0 colors=00000e } frm:jhgraphs1 { ;Jos Hendriks,2002 ;graph of y= (a1*x+a2*x)/(a3*x^2+a4*x+a5)\ ;imag(p3) gives the thickness ;also the x- and y-axes are drawn : |(real(p1)*real(Pixel)+imag(p1))/\ (real(p2)*real(Pixel)^2+imag(p2)*\ real(Pixel)+real(p3))-imag(Pixel)|<imag(p3)||\ |real(Pixel)|<.001|||imag(Pixel)|<.001 { graph1 { ;Jos Hendriks,2002, broken polynomial function ; also x- en y-axes are visible reset=2000 type=formula formulafile=sier.frm formulaname=jhgraphs1 passes=1 center-mag=-0.791138/1.96774/0.2142747 params=0/5/-1/2/1/0.02 float=y maxiter=2 inside=0 cyclerange=1/1 colors=00000e } graph2 { ; Jos Hendriks,2002, broken polynomial function ; also x- en y-as are visible reset=2000 type=formula formulafile=sier.frm formulaname=jhgraphs1 passes=1 center-mag=-0.791138/1.96774/0.2142747 params=0/5/1/-2/-3/0.05 float=y maxiter=2 inside=0 cyclerange=1/1 colors=00000e } graph3 { ; Jos Hendriks,2002, broken polynomial function ; also x- en y-axes are visible reset=2000 type=formula formulafile=sier.frm formulaname=jhgraphs1 passes=1 center-mag=-0.791138/1.96774/0.2142747 params=0/5/1/0/1/0.05 float=y maxiter=2 inside=0 cyclerange=1/1 colors=00000e } graph4 { ; Jos Hendriks,2002, broken polynomial function ; also x- en y-as are visible reset=2000 type=formula formulafile=sier.frm formulaname=jhgraphs1 passes=1 center-mag=-0.791138/1.96774/0.2142747 params=-5/5/1/0/1/0.05 float=y maxiter=2 inside=0 cyclerange=1/1 colors=00000e } graph5 { ; Jos Hendriks,2002, ;with correct choosen parameters graph of linear f: a line ; also x- en y-axes are visible reset=2000 type=formula formulafile=sier.frm formulaname=jhgraphs1 passes=1 center-mag=-0.791138/1.96774/0.2142747 params=1/3/0/0/1/0.05 float=y maxiter=2 inside=0 cyclerange=1/1 colors=00000e }