Contents
Zone Rings from Outer-Space V4.3

Legal Rubbish

Installation And Requirements

Don't bother reading any of these because they won't actually help you control Zonerings. Your best bet is to play with the controls and see what effect they have, until you get some nice pattern you like. Alternatively just delete the program now, 'cos it's a load of old cobblers anyway.

General Control

Aspect Control

Rotation Control

Shape Changing

Density Of Zonerings

Motion Control

Colour Control

Draw Style

Pause Mode

Load Save Settings

The About Box

Palettes

Acknowledgements

Remember - A Zonering is for life - not just for Christmas.


Legal Rubbish

Zonerings are Copyright me - ©John Biddiscombe August 1995.

Zonerings are free to a good home.

You may not sell them or in any other way make financial gain without my say so.

Distribute anywhere (and everywhere if you please).

You may upload Zonerings to BBS's or FTP sites but...

If you do distribute Zonerings - then please include all the files

Zonex_x.EXE   - the main executable file

Zonex_x.SAV   - the saved settings

              *.PAL   - the palette files

Zonex_x.HLP   - this help file

Zonex_x.BIT    - some data lookups used by the 3D about box

BWCC.DLL      - Borland Windows Custom Controls DLL - nice grey dialog boxes - goes in windows/system directory

Try to leave the original settings unaltered to give people an idea of how to set up different modes of operation.

If you wish to use Zonerings for projections etc (eg raves) then I graciously request a free invite.

All hail Discordia the Goddess of Chaos.


Installation And Requirements

Zonerings will live happily in any directory.

Copy all the files except BWCC.DLL into the same directory.

The file BWCC.DLL should be placed in windows\system directory, it contains the Borland Windows Custom Controls which give the grey style dialog boxes.

If you already have a copy of BWCC.DLL then keep the one with the most recent date stamp.

For best results I recommend at least 800x600 resolution, otherwise the main dialog box will not fit on the screen.

You also need to be in a 256 colour mode, the palette animation assumes a 256 colour system palette.  The About box will not work correctly in anything other than 256 colour mode.

Some of the presets take time to develop, be patient, and try pausing as well.

A 486 is recommended, a 386 is essential - there is a fair bit of 32bit code in Zonerings.

When Just vertices mode is on, or just one sided polygons are being displayed, the screen may be too dark - ideally you need the curtains closed, all the lights off, an LCD overhead projector a large blank wall , etc etc...

Pentium users may find that many of the settings included run too fast. Increase the max Zonerings scrollbar to slow them down. Conversely slow 486's and all 386's will need a smaller value. The presets included were all generated on a 486DX2-66 in 800/600 screen mode, they may need adjusting to look their best on another setup.

Zonerings does not use any Floating point operations in it's main loop, but some look-up tables are created on startup (when the hourglass cursor appears), people without a coprocessor may experience a significant delay initially, but once Zonerings is running it should be just fine.

Zonerings will disable the activation of your screensaver when it is running in it's main window (Zonerings does a fairly good job of screensaving as it is). When the dialog boxes are active your screensaver will operate as usual.

Zonerings is not intended to run as a background application. If you do use Alt+Tab to switch to something else, then that something else may well cause the colours of Zonerings to go off (especially when dotted lines are used, as opposed to solid lines - I don't know why this is).


General Control

The group of controls in the top left corner are

Max Zonerings

     The number of polygons drawn. The more you have, the slower the overall cycling will be.

Vanishing Point

     This controls the radius of the central zonering. A larger value gives a more tube-like appearance, but the effect is distorted by the perspective.

Perspective

     At exactly zero (middle), the zonerings should be equidistant from each other. As the perspective is increased in the positive direction, the zonerings furthest from the middle will be more spread out, conversely, increasingly negative values will spread the inner zonerings.

Combinations of perspective and vanishing point will give a large range of visual effects ranging from quite convincing 3D tubes to rather poor compressed blobby shapes.

Magnification

     The overall scale of the zonerings.

In/Out

     Normally the zonerings are drawn from the centre outwards, checking this box will reverse the direction. Note that the colour cycling will flip direction when In/Out is reversed.

Rub out

     Normally the zonerings are erased, checking this will disable erasing.

Hide cursor

     Normally a small cursor is displayed, checking this will hide it completely when zonerings are active.


Aspect Control

Sync All

     Checking this box causes all the zonerings to be distorted together. When unchecked each zonering has its own aspect ratio.

Amplitude x

     The Amplitude of the x axis distortion. As this value is decreased the aspect will change from 0-max to min-max where min is determined by the scrollbar value. This appears to be the wrong way round, but I couldn't decide how to improve it without adding more scrollbars, and I wanted to keep the dialog box tidy (I don't use the aspect control much anyway - so there).

Amplitude y

     The Amplitude of the y axis distortion

Frequency x

     The Frequency of the x axis distortion

Frequency y

     The Frequency of the y axis distortion

Note that if you leave both frequencies at zero (middle), then adjust the x,y amplitudes the zonerings can be made to appear as ellipses but without any changing.


Rotation Control

No rotation

     Amazingly enough, when this button is selected, the zonerings will not rotate at all.

Sinusoidal rotation pattern

     Amplitude    : Magnitude of oscillations.

     Frequency  : Speed of oscillations.

     Precession  : Overall bias clockwise or anticlockwise.

Random rotation pattern

     Max speed : self evident.

     Min speed  : ditto.

     The rotation a ring is given, will be a random value between min and max.

     Periodic     : Rotation will change periodically, adjust the scrollbar for more or less frequent changing.

     Random     : Rotation will change at random time intervals, the approximate frequency being determined by the scrollbar. A setting of zero will mean no rotation changing. Useful if you want no changing but a different value each time it is run.

The Zero all button sets all the values in the rotation group to their zero values, this saves fiddling with the precession trying to get it exactly on zero etc etc waffle waffle.

It is possible to synchronize the rotation, Motion (random jumps), and Shape Changing by selecting periodic on all three and making the frequency identical on each.


Shape Changing

Periodic

     The shape will change periodically with a frequency given by the frequency scrollbar.

Random

     The shape will change randomly, the frequency of changing being controlled by the scrollbar. If you select random mode and set the scrollbar to zero, there will be no shape changing.

The shape that is displayed is determined by the Density Of Zonerings scrollbars.

Note that sometimes the shape will change but the shape might be the same as the previous one, so you may not see any difference.

It is possible to overcome this if the Rotation Control is set to periodic and the Shape changing is also set to periodic, with exactly the same frequency. If a shape is picked that is the same as the previous one, then the rotation will most likely be different. Of course if Sinusoidal rotation is selected then this won't work. It is also possible to synchronize the Motion Control (random jumps) by selecting peiodic changing.


Motion Control

No motion

     The Zonerings are fixed in the centre of the screen.

Follow mouse

     Move the mouse around and the Zonerings will follow. For smoother control adjust the damping.

Random fluid motion

     Adjust the damping to control how wildly the Zonerings dart around the screen.

     Gaussian

           The Zonerings will stay mostly in the centre of the screen.

     Uniform

          The Zonerings will cover the whole screen.

Random periodic jumps

      The frequency of jumps is controlled by the scrollbar. To synchronize with Rotation and Shape Changing set all three to periodic and set the same frequency on each.

     Gaussian

          The Zonerings will stay mostly in the centre of the screen as for the fluid motion.

     Uniform

           The Zonerings will cover the whole screen.

Parametric motion

     the left hand controls affect the x-axis, the right the y-axis

     f - loosely the frequency of motion

     r - radius control

     s - overall scale.

     In fact the controls are plugged into an equation of the form

xcoord = xmiddle + Cos(f.t)*Cos(r.t)*s

ycoord = ymiddle + Sin(f.t)*Cos(r.t)*s

     If you want the motion to be circular - set fx=fy, sx=sy and rx=ry=0 which will effectively give you x=s.Cos(...) and y=s.Sin(...), the radius being controlled by s. If you then set rx=ry<>0 then you should get spiral motion. Other values will give periodic erratic motion (but with some pattern).


Draw Style

Solid lines

     The Zonerings are drawn with a solid pen.

Dotted lines

     A dotted pen is used to draw the Zonerings.

Just vertices.

     Only the vertices (corners) are drawn.


Pause Mode

Total freeze

     When you pause (right mouse button) - Nothing happens.

Continue colour cycling

     The colour cycling carries on but Zonerings stop moving etc. (I've put a small delay in to try to make the cycling continue at the same speed as before pausing - but it depends how many Zonerings are on the screen)

Mouse move colour cycling

     Move the mouse around to cause the colours to cycle.


Colour Control

Palettes are selected from the listbox. There is a broad range to choose from.

Palette cycling

     Controls how many steps forwards or backwards the palette is rotated.

Colour step size

     The amount of colour each Zonering differs from the one before it. When In/Out is checked the colour increases from the inner to outer Zonerings, but when unchecked the colour steps go from outer to inner.

Broadly speaking, for gradual colour changes, set the colour step size to a small +ve or -ve value and set colour cycling to whatever seems nice. For compressed bands of colour set a large value in the colour steps, and usually a smallish value on the cycling scrollbar. Setting both controls to large values will induce fits or something.


Palettes

See Acknowledgements for more on the palettes.

If you wish to define your own palettes simply create a text file with a .PAL extension and bung it in the Zonerings directory.

The first line should have the number of entries (236 is best and max allowed)

Subsequent lines should have RGB values

A typical palette might look like

5                        - this one has 5 entries

0      0     0         - Black

255 255 255      - White

255  0     0         - Red

0     255  0         - Green

0      0    255      - Blue

comments may be put in the file, at the end of any line except the first one, and make sure that there is at least one space character

eg.

236             Don't put comments on the first line.

255 127 63 Comment is allowed after one space.

255 127 63Comment is not allowed like this.

etc etc

If you make any palettes that look good - please send'em to me.


Acknowledgements

I would like to thank Giles Bryer for having a silly beard and testing Zonerings during it's creation, as well as providing inspiration and suggestions for improvements - and putting up with me waffling on about what he calls Zone Rantings.

Last minute note : Mr Bryer has shaved off his beard, It is a sad loss to everyone that used to enjoy taking the mickey out of it. Perhaps some equally outrageous act like growing an extra leg would be appropriate now...

This HELP file was created using the Freeware program Helpmake V1.02 by Quintin Willison. Saved me a lot of work, Thanks.

Thanks also to Rick Grehan from BYTE magazine for an article entitled 'The Software Stopwatch', (APR 95) which gives details on how to access windows' VTD (Virtual Timer Device) giving timing resolution of 840nS. Without this I'd never have been able to cut down some of the processing overheads and get the speed required to make The About Box look as smooth as it does (in my humble opinion). The BYTE article is in turn from a previous one by Byron Sheppard (JAN 87) - which I've not read.

The Palettes

I have shamelessly ripped off many (well nearly all actually) of the palettes which are supplied with Fractint/WinFract, The Fractint team have given their permission to do so. I have modified the palettes slightly, and the 256 colour tables have been re-sampled to 236 colours, as Zonerings uses a 236 colour (or less) palette cycling scheme.

To the best of my knowledge the credits for these palettes belong to

Blues          -  Daniel Egnor

Chroma      -  Todd Hedenstrom     - "Chromatic"

FireStrm     -  Mark Peterson           - "Fire Storm"

Gamma1     -  Lee Daniel Crocker - Modification of the Peterson/Vigneau Sequence

Neon          -  Daniel Egnor             -  Very nice indeed

Royal          -  Daniel Egnor             - "Royal purple"

Volcano     -  Daniel Egnor

Lyapunov -  From Fractint - unknown creator

Glasses2    -  From Fractint - unknown creator

My thanks and admiration to all the Fractint team.

Zonerings was written in Borland Pascal for Windows. A very nice programming environment, but sadly only 16bit code. All of the calculations performed by Zonerings use fixed point 32bit integer arithmetic, coded as inline assembler (32 bit code). When a 32bit pascal compiler appears, Zonerings may get faster. Nevertheless - Well done Borland. Pat yourselves on the back.

The author is a sad loser, he lives in a world of his own - in the only authentic upstairs cave known. (The Cave of Wonder).


Density Of Zonerings

The ten scrollbars control the relative amount of each N-sided polygon.

If you like Triangles then just select 3 sided and leave the rest at zero.

The Zero all button is provided for your convenience.

The distribution of Zonerings is effectively a Probability Density Function (PDF).


Load Save Settings

Load settings button

     Click here and select a setting from the listbox.

Save settings button

     Click here and save your settings into a slot. If you enter a new name you will be prompted to say whether you wish to overwrite the existing setting or to create a new slot with the name you have given. If you don't enter a new name, the settings will be overwritten and you've lost whatever was there before.


The About Box

The About box will appear in whichever palette is currently selected, If you can't read it properly, try HSV, Firestorm  or White, but you must select the palette then click OK to return to the main Zonerings window, this will realize the palette, then click again and go to the about box.

If you simply change palettes and go straight to the about box you will  not see the change.

Similarily - the colours the rotating text appear in are dependent upon the colour cycling, you may find that the bands of colour are such that the text at the front appears darker than the text at the back. If this is the case then switch back to the main window and let the colours cycle for a second or so (depending upon cycling rate) then switch back to the about box and the relative positions of the colours will have shifted making it easier to read the words.

The Frames/sec box will give you an indication of how fast your machine is capable of running. On my 486DX2-66 the speed is around 45-47 frames/sec (when nothing else is running). Moving the mouse around slows it to 43ish. Pentium users might get significantly more, and it might be too fast to read the text (use the turbo button provided on most PC's).

Last minute note : I've added some scrollbars to vary the speed a little. (Just couldn't resist it).

Top left         - Overall rotation of Zone sphere around y-axis (up/down axis)

Bottom left    - Speed of scrolling of text

Top right      - Speed of Sphere/Band morphing

Bottom right - Motion speed

There is no floating point arithmetic used, except to calculate the frames/sec (ironic smile).

The About box is hopefully the forerunner to another program which may well be called

"Zone Points from Outer-Space"

and will basically be lots of points moving in 3D and morphing from shape to shape.