FRACTAL REPORT 13
Further Fractals From Newton's Formula John C. Topham 2
Editorial John de Rivaz 9
Announcements 9
More Mandelbrot Sets Chris Sangwin 10
Compressing Fractal Images Mike Parker 12
Fractal Report is published by Reeves Telecommunications Laboratories Ltd.,
West Towan House, Porthtowan, Truro, Cornwall TR4 8AX, United Kingdom.
Volume 3 no 13 First published February 1991. ISSN applied for.
It is probably seasonal considerations that makes the number of short articles with programs that readers seem to like somewhat scarce this issue. However this has given me the opportunity to publish Mr Parker's article in full, which I hope will benefit some readers and indeed may prove to be helpful to contributors interested in producing new fractal programs. I have been wanting to publish this article for some while, but was reluctant because for many readers, particularly beginners, it could prove hard going. We do have a few Fractal Report type articles still on file, held over to make space for the long articles this time, and anticipate that by the time the next issue appears we can revert to the usual format. There are not enough to make a full issue, and I hope that some more will be forthcoming by around 1 March when issue 14 goes to the printers.
Karen Griffin, my companion for some years, will be leaving sometime later this year. Her help with Fractal Report has been much appreciated, even if sometimes it was a bit adamant. We intend to remain friends, and she hopes to continue to offer help and advice with my publications whenever possible.
Archimedes Correspondents wanted
Mr J. Mourik, of 3rd Millennium, Box 11, Ammanford, Dyfed, SA18 3WB wants Archimedes correspondents. He has 3.5" disks and is interested in cellular automata, fractal dust and sparklies, and wants help in getting hard copy from images saved to disk, and someone to swap programs with.
Reader's Hall of Fame
Mr Darryl Catchpole, of Scunthorpe, got a Mandelbrot Set program published in Amstrad Action's Type-Ins section, issue 63 pages 76/7. Unfortunately they edited out his bit about Fractal Report. My advice is that if you want to mention Fractal Report then include it in a REM statement in the middle of your program - the magazine is reluctant to edit it out then!
However if anyone writes to Mr Catchpole as a result of the article he will mention Fractal Report to them. He also asks me to mention to readers that if anyone wants a trainee programmer, then he makes good coffee!
Striations
Mr L.G.L. Unstead-Joss refers to Dr Wolf's article in issue 12, and mentions that variations in refractive index, e.g. in heated glass, are called "striations". He recalls learning this 50 years ago.
A Crack in Mandelbrot Space?
Mr D.I. Brett sent in some interesting prints from his Archimedes that appeared to show magnifications of "dull" areas way outside the main set, which when magnified enough, showed dots which expanded into new weird images. True to form, these images included miniature Mandelbrots. I sent them to Dr Ian Entwistle, who also has an Archimedes, but his initial reaction was that it was probably due to a precision error in the program.
Fractals: An Animated Discussion
This video has been mentioned before as being available from Germany for about DM100, but it is now available in the UK from W.H. Freeman and Co, 20, Beaumont Street, Oxford OX1 2NQ, for �40.20 including tax and post. It runs for 63 minutes and includes interviews with Edward Lorenz and Dr Benoit Mandelbrot together with animated sequences and fractal music. Thanks are again due to Dr Entwistle for this item.
Sam Coupé Subgroup?
Dr Derek Burn eulogised over Ettrick Thomson's article including a Sam Coupé program in issue 12. Dr Burn is a relative newcomer to programming, and finds it difficult to convert other BASICs to Sam BASIC.
He asks whether any Fractal Report reader has converted some of the programs given into Sam BASIC, and whether anyone has some hints on translating to Sam BASIC.
Obviously this would be of interest to Sam Coupé users only, so is there anyone out there interested in forming a sub group, with distribution of Sam programs or listings just to Sam Coupé owners?
Dr Burn also mentions that the Sam Coupé is flourishing, and the new company Sam Computers Ltd has also introduced a 1 megabyte memory expansion.
Amygdala Issue 21
The main article of this issue is Polar Coordinates and the Cardioid Body of M. It provides mathematical insight into the circular shape of the "head" of the Mandelbrot Set and the cardioid shape of the body. Other topics covered are Lissajous figures and trigonometric identities. All four of the slides were produced by Fractint 13.0. An advertisement flyer contains $30 rectangles many of which were filled with interesting offers, although some were somewhat expensive. One program originator wanted a whopping $20 to post the $79 disk and manual outside America. (Must be some manual!) [Address: Amygdala, Box 219, San Christobal, NM87564, USA.]
Chaotic Shops
Mr P.J. Mortimore kindly sent in a leaflet produced by Strange Attractions of 204, Kensington Park Road, London W11, whilst renewing his subscription. They provide a range of fractal artifacts from 35p to �120. There was an article about Mr Gregory Sams' store in The Evening Standard, undated. It concluded: It's weird, but its going to be big, very big. After all, Mr Sams has been responsible in the past for such word shaking concepts as the first macrobiotic restaurant, whole food shops, and the VegeBurger.
He also included an article from Microcomputer Mart 130 about Mr Jake Davis' operation Frachaos, which covers similar material. (Frachaos, Higher Trengrove, Constantine, Falmouth, Cornwall TR11 5QR now have a 27 page illustrated catalogue of programs, books, videos, tee shirts, music, prints and slides.)
Función: Generar paisajes fractales mediante latecnica de Desplazamiento de Medio Punto.
Autor: desconocido. Adaptado a Qbasic por José E. Murciano
DEFINT A-N: KEY OFF: SCREEN 9: pi = 3.141592: CLS
DIM d(130, 110)
zzz = TIMER: RANDOMIZE zzz
INPUT "Nivel de recursion ?"; le
CLS
ds = 2: FOR n = 1 TO le: ds = ds + 2 ^ (n - 1): NEXT n
mx = ds - 1: my = mx / 2: rh = pi * 30 / 180: vt = rh * 1.2
FOR n = 1 TO le: l = 10000 / 1.8 ^ n
LOCATE 2, 2: PRINT "Trabajando en el nivel "; n
ib = mx / 2 ^ n: sk = ib * 2
GOSUB 160: 'Altura a lo largo de x
GOSUB 230: 'Altura a lo largo de y
GOSUB 300: 'Altura en la diagonal
NEXT n
GOTO 650: 'Dibujo
'Altura en direccion x
160 FOR ye = 0 TO mx - 1 STEP sk
FOR xe = ib + ye TO mx STEP sk
ax = xe - ib: ay = ye: GOSUB 380: d1 = d: ax = xe + ib:
GOSUB 380: d2 = d
d = (d1 + d2) / 2 + RND(1) * l / 2 - l / 4: ax = xe:
ay= ye: GOSUB 430
NEXT xe
NEXT ye: RETURN
'Altura en el eje y
230 FOR xe = mx TO 1 STEP -sk
FOR ye = ib TO xe STEP sk
ax = xe: ay = ye + ib: GOSUB 380: d1 = d: ay = ye - ib:
GOSUB 380: d2 = d
d = (d1 + d2) / 2 + RND(1) * l / 2 - l / 4: ax = xe:
ay= ye: GOSUB 430
NEXT ye
NEXT xe: RETURN
'Altura en la diagonal
300 FOR xe = 0 TO mx - 1 STEP sk
FOR ye = ib TO mx - xe STEP sk
ax = xe + ye - ib: ay = ye - ib: GOSUB 380: d1 = d
ax = xe + ye + ib: ay = ye + ib: GOSUB 380: d2 = d
ax = xe + ye: ay = ye: d = (d1 + d2) / 2 + RND(1) * l /2 - l / 4: GOSUB 430
NEXT ye
NEXT xe: RETURN
'Obtencion de datos de la matriz
380 IF ay > my THEN 400
by = ay: bx = ax: GOTO 410
400 by = mx + 1 - ay: bx = mx - ax
410 d = d(bx, by): RETURN
'Escritura en la matriz
430 IF ay > my THEN 450
by = ay: bx = ax: GOTO 460
450 by = mx + 1 - ay: bx = mx - ax
460 d(bx, by) = d: RETURN
'Aqui se situa el nivel del mar
480 IF x0 <> -999 THEN 510
IF zz < 0 THEN GOSUB 1080: z2 = zz: zz = 0: GOTO 630
GOSUB 1100: GOTO 620
510 IF z2 > 0 AND zz > 0 THEN 620
IF z2 < 0 AND zz < 0 THEN z2 = zz: zz = 0: GOTO 630
w3 = zz / (zz - z2): x3 = (x2 - xx) * w3 + xx: y3 = (y2 - yy) * w3 + yy: z3 = 0
zt = zz: yt = yy: xt = xx
IF zz > 0 THEN 600
'Aqui va agua
zz = z3: yy = y3: xx = x3: GOSUB 960
GOSUB 1080: zz = 0: yy = yt: xx = xt: z2 = zt: GOTO 630
'Emerge del agua
600 zz = z3: yy = y3: xx = x3: GOSUB 960
GOSUB 1100: zz = zt: yy = yt: xx = xt
620 z2 = zz
630 x2 = xx: y2 = yy: RETURN
'Presentacion en pantalla
650 GOSUB 1120: 'Inicializa la pantalla
xs = .05: ys = .05: zs = .05: 'Factores de escala
FOR ax = 0 TO mx: x0 = -999: FOR ay = 0 TO ax
GOSUB 380: zz = d: yy = ay / mx * 10000: xx = ax / mx * 10000 -yy / 2
GOSUB 950: NEXT ay: NEXT ax
FOR ay = 0 TO mx: x0 = -999: FOR ax = ay TO mx
GOSUB 380: zz = d: yy = ay / mx * 10000: xx = ax / mx * 10000 - yy / 2
GOSUB 950: NEXT ax: NEXT ay
FOR ex = 0 TO mx: x0 = -999: FOR ey = 0 TO mx - ex
ax = ex + ey: ay = ey: GOSUB 380: zz = d: yy = ay / mx * 10000
xx = ax / mx * 10000 - yy / 2: GOSUB 950: NEXT ey: NEXT ex
GOTO 1140: 'Acaba y sale del bucle
'Rotar
780 IF xx <> 0 THEN 810
IF yy <= 0 THEN ra = -pi / 2: GOTO 830
ra = pi / 2: GOTO 830
810 ra = ATN(yy / xx)
IF xx < 0 THEN ra = ra + pi
830 r1 = ra + rh: rd = SQR(xx * xx + yy * yy)
xx = rd * COS(r1): yy = rd * SIN(r1)
RETURN
870 rd = SQR(zz * zz + xx * xx)
IF xx = 0 THEN ra = pi / 2: GOTO 910
ra = ATN(zz / xx)
IF xx < 0 THEN ra = ra + pi
910 r1 = ra - vt
xx = rd * COS(r1) + xx: zz = rd * SIN(r1)
RETURN
'Moverse a (xp,yp)
950 GOSUB 480
960 xx = xx * xs: yy = yy * ys: zz = zz * zs
GOSUB 780: 'Rotar
GOSUB 870
IF x0 = -999 THEN pr$ = "M" ELSE pr$ = "D"
xp = INT(yy) + cx: yp = INT(zz)
GOSUB 1040
RETURN
'Dibujar
1040 xp = xp * 1.1: yp = yp + 260: IF pr$ = "M" OR f1 = 1 THEN x8 = xp: y8 = yp
PSET (x8, 350 - y8), f1: LINE -(xp, 350 - yp), f1: x8 = xp: y8 = yp: x0 = xp
RETURN
'Color
1080 f1 = 9: RETURN
'Color de la tierra
1100 f1 = 6: RETURN
'Iinicializa pantalla o plotter
1120 CLS : RETURN
'Salida
1140 a$ = INKEY$: WHILE LEN(a$) = 0: a$ = INKEY$: WEND
STOP