home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frozen Fish 1: Amiga
/
FrozenFish-Apr94.iso
/
bbs
/
alib
/
d5xx
/
d554
/
ifsgen.lha
/
IFSgen
/
ifsgen.doc
< prev
next >
Wrap
Text File
|
1991-10-28
|
38KB
|
827 lines
IFSGEN v1.0 (c) January 1991
Written with AMOS (c) 1990 Mandarin/Jawx
By Andrew Kreibich
SEE END OF FILE FOR ADDITIONAL DOCS/CHANGES FOR LATER VERSIONS
This file refers to IFSgen and IFSgenDEM. The DEM version is identical
to the real thing except that all saves have been disabled. You can
save yourself a lot of time (and your pictures) by registering. See
DISTRIBUTION, below.
Note: To toggle Wbench screen use left-Amiga-A (Alt-N and M will not work)
To quit without using the quit menu press Ctrl-C.
#########################
MEMORY REQUIREMENTS
#########################
My machine is an A500 with 1 meg of ram. I forked out a lot of hard earned
cash for the extra half meg and I intend getting some use out of it!
Therefore when I write programmes I usually use up plenty of memory in
order to get more speed where possible. I have not tried this programme
on a 512k machine, so I don't know if it would run. It will almost
certainly not run on a 512k machine if workbench is loaded and may still
cause some problems when you have generated a lot of triangles or when
the programme tries to open the palette tool.
################
DISTRIBUTION
################
THIS PROGRAMME IS SHAREWARE!
This means that my wallet would appreciate a little feedback for all my
efforts!
You may distribute the DEM version of this software to anyone providing you
observe the following conditions.
YOU MAY NOT DISTRIBUTE THE FULL VERSION OF IFSgen TO ANYONE ELSE WHO HAS
NOT REGISTERED WITH ME. (give them the DEM version instead!)
(a) You don't make any money from it (apart from a nominal copying fee)
without my prior written permission.
(b) You may not include any part of it in any commercial release
(including SHAREWARE or one of its variations) without my prior
written permission.
(c) You give me credit for any of my routines in your doc. files
and/or the programme you use them in. (FEED MY EGO!)
(d) You distribute this entire doc. file with the programme and
also the .IFS and .IFF files in the drawer.
(e) You write back and let me know what you think of it along with a
SHAREWARE donation (min $20 Australian)
To Andrew Kreibich
Box 333
Wantirna South
Victoria
Australia. 3152
If you register and send $20 (Australian dollars please, our banks charge
a fortune to convert), I will try and make any changes you
suggest and I will send you the latest upgrade (with all features
enabled), the AMOS source and some other AMOS routines and games I am
working on.
AMOS programmers can also get a copy of the palette procedure which this
programme uses. This can be inserted into your own programmes with minimum
of fuss. Let me know if you want it. FREE to anyone who registers!
Naturally if you think I have done a really fantastic job on this
and you cannot help but show your appreciation by sending more
than $20 (Australian Dollars!) etc. then I will happily
accept it!
If you have the full version and you have registered: Thanks!
If you have the full version and you have not registered: Then someone
gave it to you illegally! Please register and do something anatomically
unpleasant to the pirate who gave (sold?) it to you!
WHAT IS IFSGEN?
***************
Ifsgen is a programme to generate and display iterated function systems.
(IFS's). These are a type of fractal which exploit the self-similar
nature of some shapes to produce a code (the IFS code) which can be used
to regenerate the image. One advantage of this is that a typical IFS code
is about 1/500th the size of the original image's code.
An example of a self-similar shape is a fern frond. Each 'branch' of the
frond is a smaller copy of the entire frond.
What is an IFS code?
*********************
(You can skip this bit if you wish)
The ifs code is a set of numbers which describes how each part of the
fern (or any other image) can be derived from the main shape. It does
this by defining a matrix which describes the mathematical transformation
for getting from the main image to the smaller image.
See the Fern example in the programme for this.
In order for the programme to calculate the matrix you must specify
3 points on the main image and the corresponding 3 points on each of
the 'parts' or transformations. When the programme knows the coordinates
of each of these points it can work out the IFS code.
I have labelled the main image A and subsequent transformations B,C,D
etc. The three points on each image are labelled A1,A2,A3. It is
important to make sure that the points B1,B2,B3 correspond to these
same points on the original image.
The IFS code is a set of 6 numbers for each transformation which I
have labelled A,B,C,D,E and F. These ARE NOT THE SAME as the A,B,C etc
which I labelled the points with. Sorry if this is a bit confusing
but you don't need to worry about the actual IFS code to use the
programme.
To plot the picture the programme picks a point on the screen and then
chooses one of the transformations at random and applies this to the
point which is then plotted. The new point is then subjected to the same
procedure, and this process continues until the user selects stop.
Mathematically
Xn = A*X + B*Y + E
Yn = C*X + D+Y + F
Where Xn = new point's X coordinate
Yn = new point's Y coordinate
X = last point's X coordinate
Y = last point's Y coordinate
A,B,C,D,E and F are the IFS code for the randomly selected transformation.
This method of generating the image is sometimes known as The Chaos Game.
For further information consult any good book on Fractals.
The two that I used were
"Fractals Everywhere" By Michael Barnsley (Academic Press)
and
"The Science of Fractal Images" Edited by H.O.Peitgen and D.Saupe
(Springer-Verlag)
INSTRUCTIONS and EXPLANATION OF MENU ITEMS:
******************************************
GETTING STARTED. (A quick tutorial)
When you first start IFSGEN you will probably be presented with a
blank screen (unless I have got around to making a fancy title screen
or something like that!).
I did, so you can ignore the last sentence. Incidentally all of the
pictures on this screen were generated with this programme. You should
find their associated IFS files with this programme.
There are 4 menus which you can use.
You can start a picture in one of 3 ways.
1. Load IFS from the PROJECT menu.
2. Add Triangle from the TRANSFORMATION menu
3. Select one of the 4 examples from the EXAMPLE menu.
First time users will probably find it easiest to select one of the
examples. Spiral is the simplest one.
When you have selected this you will see three triangles drawn on the
screen. The corners of these triangles are labelled A1,A2,A3 (main
triangle) and B1,B2,B3 and C1,C2,C3 (The two smaller triangles which
are used to generate the transformations from the main one). Some of
these will be difficult to see because they are obscured by some of
the others.
Next select GENERATE from the PICTURE menu.
The screen will clear and you will slowly see the spiral generated in
two colours (Green and Blue unless you have already discovered the
Palette!). This will take a few minutes to generate.
Notice that the small green part of the image is really a copy of the
whole image. (In other words it is self-similar, and the green spiral
is known as an affine transformation of the whole image). Similarly,
the blue section is also a copy of the whole image.
When the image has 'developed' to your satisfaction select stop from
the PICTURE menu, and then select Show Triangles from the TRANSFORMATION
menu. This will draw the three triangles on top of your image, so you
can see how the picture is constructed from these.
Now select 'Change Triang B' from the TRANSFORMATION menu and
you will see triangle B drawn in a different colour and a line leading
to the mouse. You now have to redraw the triangle using the mouse.
Place point 1 first. This time put it in the same place as it originally
was (On the left corner of the big triangle A) by clicking the left mouse
button over this point. Next place corner B2 (put it over the original
B2 this time) and finally place corner B3, put it fairly near the
original B3 but not in quite the same spot.
Now select GENERATE again and see how the shape has changed.
NOTE: The shape is VERY SENSITIVE to small changes in the positions
of the triangles.
You may also like to look at the other examples.
SIERPINSKI constructs a Sierpinski triangle. This one is fairly easy
to understand. Each of the three small triangles is a smaller copy of the
big one and each small one contains three smaller ones and so on.
FERN draws a fern (surprise surprise!)
This consists of the main triangle and FOUR transformations. The fourth
(Triangle E) is a bit hard to see. It is a very thin copy of the fern
and is used to generate the stem. You will see the stem in red when
you generate it. If you wish to change some of the points on this do it
carefully. In particular it is very important to keep the small triangles
in the right place with respect to the others. I.E. if A2 and B2 are
not in the same place you will get a very strange fern!
So if you move A2 make sure that you move B2 to the same place!
The same goes for the following points.
A1 and E1
A3 and C2
B1 and E2
Also if E3 is not on a straight line between E1 and E2 you will end up
with very fat stems!
(You will not do any harm if you don't follow these rules but you will
probably end up with something that looks nothing like a fern!)
SMALL variations to these triangles can produce a variety of ferns and
trees. To make a tree just move C3 close to the line between C1 and C2,
and move D3 close to the line between D1 and D3. You could also try
moving A3 and C2 and D3 to the left.
IFS! generates the letters IFS! Each letter is made up of smaller
copies of IFS! and each small copy is made up of even smaller copies.
When you get good at manipulating these you might like to try a few
words of your own.
Also LOAD some of the IFS files which I have provided and see how these
are generated.
In particular you could look at some of the galaxy ifs's which are in
the drawer. These are all variations of the initial spiral shape with
a few extra triangles added to make the other 3 spiral arms. Making small
changes to triangle G will greatly change the spacing of the arms and the
overall density of the galaxy. You can also change the density of the
pictures by stopping the generation earlier or later.
Look at the IFF picture 'Galaxies' This was made by combining various
galaxy ifs's on the same picture. To do this you should use load iff to
load a picture, then add your IFS and use Continue (not Generate) when you
think you have the triangles in the right position. Keep adding other IFS
codes and use the continue option to draw them on your picture. Finally
save the picture with save iff. If you haven't guessed it already, this
is how the title screen was generated.
By the way if you want your galaxies to look like galaxies instead of
multicoloured blobs, then you will have to change the palette to various
shades of white and grey. If you want to see the colours I used then load
one of the IFF pictures and then call up the palette tool.
In this version the IFS file does not save colour information but IFF files
do.
If you think you are getting the hang of things try the other menu items
or find a picture which displays self-similarity and try to generate it!
(this can be quite hard at first so start with something simple)
Alternatively just put a few triangles on the screen and see what happens!
EXPLANATION OF MENU ITEMS
*************************
PROJECT MENU:
ABOUT: Try it and see!
NEW: clears everything!
LOAD IFS and SAVE IFS: Load and save the IFS code for the images but
not the actual pictures. (Use LOAD IFF and SAVE IFF in the PICTURE
menu for this.) SAVE IS DISABLED IN THE DEM VERSION
INSTRUCTIONS: Try it!
QUIT: Do I really need to say it?
TRANSFORMATION MENU:
This allows you to define and manipulate the various transformations
(triangles) which make up the image. You will need to select Generate
to see the effect of any changes on your image.
ADD TRIANG: This adds another triangle to the image. You should also
use this to start an image definition from scratch.
Clicking this will result in a line being drawn from the current
mouse position to somewhere else on the screen (it doesn't matter
where the other end is, as it is the position of the mouse which
is important). If this is the first triangle (Triangle A) then
the first point wil be A1. Move the mouse to the position you want
A1 and click the left mouse button. Next place A2 and A3.
You should then add at least 2 more triangles. You cannot GENERATE
an image until you have at least 3 triangles (including A) defined.
If you make any of the others larger than A the image will probably be
much larger than the screen.
(This isn't a fatal problem but you should remember that triangle A is
used to define the position of the whole shape, while the others are
used to define the position of SMALLER parts of the shape, so if you
are trying to produce something in particular keep this in mind. If
not then feel free to experiment!)
You can have a maximum of 26 triangles because I ran out of letters
in the alphabet, maybe next time I should programme in Chinese? Apart
from this there is no reason why this could not be increased.
CHANGE TRIANGLE: allows you to reposition a triangle. Unfortunately
you must place all three corners, although the original position is
displayed until you have finished so that you can see where it was!
Maybe in version 2 I will fix this so that you can just reposition
one corner? (If you want this then write and let me know!)
DELETE TRIANGLE: Fairly obvious!
But there are two things which you should be aware of.
1. All other triangles will be relabelled so that you still
have a complete alphabetical sequence. I.E. if you delete B
then C will become B, D will become C etc.
2. You cannot delete triangle A. All others use this as a reference.
If this did not exist the programme could not calculate the IFS
code.
Sorry, 3 things!
3. At this stage there is no check to ask if you are sure. Maybe
Version 2?
MOVE: this is to allow you to resize and reposition the image on
the screen. This is done by manipulating the IFS code, not the
image, so you will have to Generate again after selecting this.
ZOOM IN: allows you to define a rectangular box with the mouse
Click left mouse button on where you want the top left
corner of the box and drag it to the place you want the
bottom right corner. Let go and the area inside the box
will be enlarged to fill the screen.
ZOOM OUT: works in a similar way to zoom in but this time the
area displayed on the screen will be shrunk to fit inside
the box. This will allow you to see any areas of image
which have gone off the screen.
NOTE: The zoom functions were intended to allow fairly small
resizing of the image. Excessive use of these will result
in large rounding off errors. You should be able to ZOOM
IN by a factor of about 1000 and ZOOM OUT by a factor of
about 1,000,000 without any trouble. If you go too far your
picture will not be very accurate but the programme should
still run.
CENTRE: This allows you to recentre the picture. Place the
crosshair where you want the new centre to be. The
triangles will be moved so that this point will now
be at the centre of the screen
ROT 90, 180, 270: Rotate the image 90, 180 and 270 degrees
respectively in an anticlockwise direction.
FLIP X: Flips the picture from left to right.
FLIP Y: Flips the picture from top to bottom.
FINE TUNE: Allows you to display and change the position and/or
the IFS code of any point or triangle respectively.
(see "What is an IFS code?" above.) This brings up a
window with the letters A to Z at the top. These are
for the triangles which you have defined. Any triangle
which has not been defined SHOULD be displayed in a
different colour and cannot be selected. Select the
triangle you wish to fine tune (or just view) by clicking
on its letter with the mouse. This will display the
coordinates of the corner points of your triangle
together with the associated IFS code. Click the mouse
on any box you wish to change and retype it. Press return
when done. (There are a couple of 'slightly undesirable
features' in this which might appear from time to time,
just make sure that the number in the box is right before
you quit. These will take any number between 1E-14 and
1E+15 (I hope!), but be aware that if you position one of
your points at a screen coordinate of 1E+15 you will find
that the programme takes a very long time to draw the
triangles!
To change another triangle just click on the letter.
When you have done select quit.
NOTES: You cannot change the IFS code for triangle A (this will
always be displayed as zero).
There is no way of getting your original settings back
after you have pressed return, unless you have written
them down somewhere or you have used the SAVE IFS option
in the PROJECT menu. Something else for Vers. 2?
HIDE/SHOW triangles: Fairly self explanatory!
PICTURE MENU:
GENERATE: This clears the screen and starts the picture generating.
This will also disable the TRANSFORMATION and EXAMPLE
menus together with the New, load ifs and save ifs from
the project menu. You cannot generate until you have
defined at least three triangles.
STOP: Stops the picture from generating and allows you to use
all of the other menus.
CONTINUE: This does exactly the same as Generate except that the
screen is not cleared first. This can be used to either
continue generating a picture after it has been stopped
or for generating an image on top of another image or
an iff screen which you have loaded.
PALETTE: This brings up a palette requester which I wrote called
Gumbypal. This is an AMOS procedure which you can inlcude
in your own AMOS programmes.
This procedure currently supports the following features.
DRAGBAR:
This is the message (Gumby's Palette) at the top of the screen.
Hold left mouse button down while you are over this and drag the
palette screen up and down your screen.
ABOUT:
Work this out for yourself!
RGB sliders: These work in the usual way, just click on the slider
with the left mouse button and drag it along, or just click on the
spot you want it to go to.
Up to 32 colours are displayed in little boxes on the right of the
screen. You can select two of these at any time.
Left mouse button selects the CURRENT colour. This will be changed
by moving the slider bars.
Right mouse button selects the TO colour. This is used by COPY,
SPREAD and CYCLE, to copy, spread or cycle from the current colour
to the TO colour, and also by SWAP to swap the current colour with
the TO colour.
The TO and CURRENT colours are outlined in different colours so that
you can see them. It is possible that the colours used by these
outlines are hard to see because they are the same or similar
to the colour of the background around the colour boxes.
COLOUR Buttons:
There are 6 of these, GET, COPY, SWAP, CYCLE, SPREAD and SKIP.
These are selected with the left (and sometimes right) mouse button.
COPY and SWAP are explained above.
CYCLE. Press Left mouse button to cycle forward and right mouse
button to cycle backwards.
SPREAD spreads the colour from the current colour to the TO colour
and works in conjunction with the SKIP button.
If SKIP is 1 then the spread will skip 1 colour in between each
one it spreads. Best way is to try it! I put this in because I
thought it might be useful in a Mandelbrot type programme.
SKIP can be any number you like providing it is between 0 and 9.
I don't think it would be a very good idea to set it to a number
greater than the number of colours between the two colours you are
spreading between. This could cause some unpredictable results.
Usually you will leave this set to zero.
GET brings up a window with a number of preset colours.
You can pick any colour to be changed into one of the preset
colours. Pick your CURRENT GET colour by clicking it with the
Left mouse button. This will not disturb your CURRENT and TO
settings although the outlines on these boxes may disappear
while the get window is open. (They will return when you close
this window.)
When you open this window the CURRENT GET colour will be set to
colour number 2 (third from the left on the top row). If you don't
want to change this colour then select a different one.
The up and down arrows on the left move the list of colours up
and down.
P picks the colour in the middle of the box and changes your CURRENT
GET colour to this.
R assigns a random colour to your CURRENT GET colour.
Cancel CURRENT returns your CURRENT GET colour to what it was
before you opened the GET window.
Cancel ALL returns all of the colours to what they were before
you opened the GET window.
QUIT quits the GET window.
SPRITE performs a Get Sprite Palette when you click it.
DEFAULT Left mouse
returns all colours to the programme's default colours
DEFAULT Right mouse
selects the AMOS default palette.
Exit CANCEL cancels all changes and returns you to your programme.
Exit ACCEPT keeps all changes and returns you to your programme.
END OF PALETTE DOCS.
SAVE IFF and LOAD IFF: save and load an IFF screen.
THIS DOES NOT SAVE OR LOAD THE IFS CODE NEEDED TO
GENERATE THE TRIANGLES! (Use load and save IFS in the
project menu for this.)
SAVE IS DISABLED IN THE DEM VERSION
MONO/MULTI COLOUR. Allows image generation in a single colour
(which is faster) or plots each transformation in a
different colour (which can be useful if you want to see
what each triangle is doing)
EXAMPLE MENU: contains 4 examples. Select them and then GENERATE.
See the tutorial 'getting started' above.
WARNING!
Many functions are irreversible. (eg. NEW, DELETE etc.) There are no
'idiot proof' boxes asking you 'are you sure' in this version.
(Something else for V2!)
BUGS
****
This code has been thoroughly tested by an expert bug finder
(Perry Rosenboom) who has the incredible ability to run a programme
for the first time and find bugs that happen once in a blue moon!
(I never did manage to reproduce the one which turned the screen
white, although I have made sure? that it can't happen again!)
My code no longer contains any bugs. It may contain a few Slightly
Undesirable Features (SUFs). If you find any SUFs in it please write
back and let me know.
If you are running this programme from RAMOS (the AMOS runtime system)
please be aware that RAMOS needs access to your boot disk while it is
loading. Single drive owners will be asked to insert the boot disk.
Do this, but don't be surprised when not much happens!
When you have put the boot disk in and waited for the drive to stop,
replace the boot disk with the disk which has RAMOS on it. Then try and
run the programme again and it should work.
Alternatively boot from the disk with RAMOS on. This is a SUF of RAMOS,
not IFSgen!
This does not apply to the compiled versions although it may need to access
your boot disk when it is loading. Just follow the system prompts.
It is possible that you will produce a set of triangles for which it is
impossible to solve the set of simultaneous equations which are used to
find the IFS code. This is NOT a bug! (you are trying to do something
which is mathematically impossible!)
This would result in a divide by zero error.
I have put in a routine to trap this, but if you come up with any
other divide by zero errors please send details.
If you try to generate an 'impossible' ifs code (this will usually
only happen if you put all three corners of one triangle in the same
spot, or if you zoom in too far, thereby making a triangle of zero size)
then a message will appear on the screen asking you to redefine your
triangles. Press the space bar to continue.
Unfortunately due to a minor SUF, sometimes the message will flash up
once for each triangle and you will have to keep pressing the space bar
until it goes away. It will go eventually!
When this message screen is displayed it may cause you to run out of
memory and the programme will stop. (see 'memory requirements' above.)
So if the programme stops when you have just placed a triangle it is
almost certainly due to lack of memory. I'm working on it!
AMOS PROGRAMMERS NOTES
**********************
If you have registered and have the source!
If you are trying to figure out what I have done, good luck! I had to
restructure a large part of it and the result is a hybrid between two
control systems. I might fix it up one day, but at the moment it works
so I'm happy!
You will also notice that I'm not very good at putting in the REMs!
There are 3 general procedures which you may find useful
1. GUMBYPAL:
My palette procedure. Full details of this can be found in
gumbypal.doc. This has been modified slightly by the addition
of a few lines at the end to handle the dummy screen which is
used by ifsgen to assist in hiding/showing the triangles.
2. GPBUTTONS:
A procedure for drawing fancy buttons around a zone of text.
See gumbypal.doc for details.
3. SIMEQNS:
A simultaneous equation solver. This should be fairly self
explanatory. The coefficients of the variables are fed into
an array, SIMA# and the answers are returned in the array SIMX#
These must be made global. (If only Francois had allowed us to
pass an array as a parameter!)
Sorry, 4 things. Amongst the procedures which you may find useful are.....
4. STRINGGET:
This is used in the fine tune window to display and change
various strings. This has been modified a few times and is
realy due for a complete rewrite to make it a bit more logical
and capable of selecting numbers and/or letters. If anyone
gets around to doing this before I do please send it back!
The last parameter is used to allow or disallow changes to
the displayed string.
The above 4 routines were written in a way which made them as general as
I could possibly make them so that they could easily be used in other
programmes.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
I hope you find this programme useful and/or interesting and that you
bother to take the time to write back. If you have written anything
that you would like to send me, please feel free to do so.
BUT PLEASE DON'T SEND ANY SILLY SCROLLY DEMOS, MEGADEMOS, ULTRADEMOS,
ULTRAMEGADEMOS, MEGAULTRADEMOS, ULTRACOSMICDEMOS, ALPHAGAMMAOMEGADEMOS,
ZAPHODEFFINGBEEBLEBROXDEMOS OR ANYTHING ELSE VAGUELY RESEMBLING A DEMO!
AMOS IS A BRILLIANT LANGUAGE SO HOW ABOUT USING IT TO WRITE SOMETHING
REALLY USEFUL?
Happy (real) programming.
Andrew.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
V2.0 docs
*********
Rewrote some of the code to make procedure calls more consistent and
to remove a problem which sometimes caused a recursive procedure call
which eventually resulted in an out of memory error. (I admit that
this just about rates as a bug! Shock!! Horror!!! Shutup Perry!)
Added a close editor line to conserve memory when running from AMOS
Repositioned the mouse pointer so that it didn't cover up the centre
of the cross hairs when you are defining your triangles.
Removed the limits to the position of the mouse so that you can put it
anywhere on your screen. NTSC users probably didn't find this a
problem but PAL users would have had trouble using the bottom of the
screen until after they had selected zoom.
Colour palette is now saved with the ifs codes. You have the option
of loading this or ignoring it when you load an ifs file.
V1.0 ifs files are compatible with v2.0 but v2.0 files will not load
into v1.0! So get rid of v1.0 now!
Added idiot boxes for some functions
Added ability to adjust single corners of triangles when using CHANGE.
To use CHANGE now, just select the triangle you want to change from
menu, then click left mouse button near the corner you want to change.
Change other corners the same way. When you have finished just click
left mouse button somewhere not very near to one of the corners.
I have deliberately left the original triangle visible until you have
finished your adjustments. I found it more useful this way.
Trapped errors. These are reported by their AMOS error numbers.
Out of memory and divide by zero will also generate a message.
If you have problems, please describe what you were doing and
quote the error number.
NEW MENU ITEMS
##############
CLOSE WORKBENCH. (in PROJECT menu)
**********************************
This saves about 40k of memory.
PROBABILITY. (in TRANSFORMATION menu)
*************************************
You cannot use this until you have at least 3 triangles defined
(including A).
This allows users to adjust the probability of any particular
transformation being plotted. The higher the probability the more
likely this particular triangle will be chosen when each point is
plotted.
To change these just click on the relevant box and retype the
correct value (just the same as the way the FINETUNE boxes work).
If you don't adjust this then the probability is proportional to the
area of the triangle.
AREAS BUTTON
This returns the probabilities to their default condition which is
proportional to the area of the triangle.
NORMALISE BUTTON
All probabilities should add up to 1. I have provided a NORMALISE
button which will recalculate all of your probabilities so that the
total is 1. This is so you can enter relative weights without worrying
about the total. Eg. if you have two transformations (triangles B and
C) and you want B to be twice as likely as C then enter 2 in the space
for B and 1 in the space for C. Then click NORMALISE and the
programme will recalculate the probabilities giving B = 0.6667 and
C = 0.3333.
You cannot adjust the probability of triangle A because this is not
actually plotted!
Click on QUIT when finished. The programme will automatically
readjust the probabilities so that they add up to one if you haven't
already done so (see NORMALISE BUTTON above).
ROTATE ANY. (in TRANSFORMATION:- MOVE menu)
*******************************************
Allows you to rotate at any angle or fraction of an angle.
Just type in the angle (in degrees) that you wish to rotate at
and press return.
Positive angles rotate clockwise, negative angles rotate anticlockwise.
(Any mathematicians who winced at the last sentence should stop and
think! It is the crazy backwards coordinate system of this computer
- fancy making positive y values go down! - that results in this
apparent heresy. Stick the y axis back the right way and all is fine!)
MONO/MULTI colour
*****************
You now have a choice of colour when using MONO. This might make it
easier to combine 2 or more IFF files into the same picture.
You also have a choice of starting colours with MULTI. In each case
you will be presented with a number of colour boxes after you
select the menu item. Just click on the one you want.
CENTRE
******
Made the centre tool a bit easier to use. Just drag the triangles
to wherever you want them. Sorry about the flicker but it would
use up too much memory to stop it.
VERSION 2.1
***********
Compiled version. At last!
This allows non-Amos users to run it without messing about
with Ramos, and it also increases the speed of the programme.
Further in the future. (maybe!)
*******************************
* 3D? If I can work out a way of displaying this so that you can see
what is going on. 3D images require 4 points to calculate each
transformation and I am a bit worried that this will create so many
lines on the screen that you will not be able to see anything
clearly.
* Generate 3d code which can be used with amos 3D? I haven't seen
Amos 3D yet so I don't know if this is feasible.
#############################
# #
# ADVERTS #
# #
#############################
This programme is not the only thing which I have written in AMOS!
The following are available from the above address, providing you
send me some blank disks and/or money.
AMASTERMIND.
A version of mastermind written in AMOS.
Features 4 to 8 holes to fill on each row, choice of 6 to 10
colours, sound, and an introduction screen. All controlled by
mouse, including pull down menus. This was my first AMOS
programme.
Y12RESULTS.
Written to provide a tool to analyse a set of year 12 results
from the old Victorian Higher School Certificate. This sets up
a data base of students' subjects and results and then sorts
the results to produce class lists of marks, works out averages,
numbers of A's, B's etc. and pass/fail rates. Would not be of
much use to most people as it stands but many of the routines
could be useful for anyone thinking of writing a database/analysis
tool for some other application.
YOU MAY ALSO WISH TO CHECK OUT SOME OF THE GAMES WRITTEN BY
PERRY ROSENBOOM (who can also be contacted at the above address).
He has written a great game of logic and a bit of luck called
LANDMINE in which you have to negotiate a minefield.
He is also working on a submarine game in which you try to
destroy enemy ships. Funny how everything blows up in his games,
he doesn't strike me as the violent type, but this destructive
element is a bit of a worry!
SOME OF MY STUFF WHICH IS UNDER DEVELOPMENT OR JUST A TWINKLE IN
AGNES' EYE.
SCENERY GENERATOR.
A fractal scenery generator with rivers, haze-fog-clouds,
user-variable snow, tree and water levels, and maybe even different
types of rock and vegetation?
V1.1 is now ready, you can get a (compiled) DEMO version (with saves
disabled) if you send me a blank disk and enough to cover postage, or
free when you register for IFSgen. (let me know if you want it)
Alternatively you can buy the full version for $20.
SIMULTANEOUS EQUATION SOLVER
This will be based on the simultaneous equation solving procedure
used in IFSGEN, but will have an interface which allows you to
type in the equations you want solved and then prints out the
results.