December 1990       Spiral_4d v. 1.2  © Bruce Thomson



  This is Shareware.  Donations of $US10 to the address below.



This  program makes spring-like objects for Sculpt-4D. You have 
control over many aspects of shape and colouring.

  It makes a climbing spiral which has a copy connected below it 
giving the object some solidity.  The radius of the spiral can 
change dynamically.  It can be coloured by checkers that 
alternate from a list you supply or the colouring can be given as 
spreads of colours such as in the DPaint palette.  You can get 
very smooth colour patterning this way by needing to enter only 
the start and end colour.  This can be done is several blocks 
covering different parts of the spiral.



This program runs from Workbench and CLI.  You will need 
'req.library' in your LIBS: directory.



Some values must be entered to define the spiral.

 To help describe them picture a spring sitting on the ground, 
upright.  Imagine the coils as being made from paper tape.



  "Radius at base? & Radius at top?"  

  Radius will move smoothly between the two as goes from bottom 
up.  If the two values are different then the spring will become 
more tightly or loosely coiled along its length.  E.g. To get a 
pointed shape make the base, say 100 wide and the top 5 wide.  
These values can have a fractional component.



  "Rise per rotation? & Edge offset?"

  Every coil of the spring will be "rise per rotation" above the 
one below.  This value determines how stretched the spring looks.  
"Edge offset" is the width of the paper tape, or thickness of the 
coils.  This is the distance between the top and bottom of the 
paper tape.  This value works together with "rise per rot." to 
control the compactness of the spring.  If the value is slightly 
less than "rise per rot." then the spring will be quite 
substantial and compact.  If the value is only a fraction of 
"rise per rot." then the spring will look more like it is made of 
wire.  If this is too high it will overlap onto the coil below, 
or push up into the one above.  Both values need not be integers.



  "Multiplication factor for copy?"

  This value can be used for extra effects.  Your spring need not 
just be made of paper tape.  The lower edge of the tape need not 
just hang straight below the upper.  This value can push it 
further out or move it closer towards the axis of rotation.  If 
the value is less than one then the radius of the copy will be 
less than the radius of the original spiral at all points.  If 
the value equals one then it will hang straight below.  If 
greater than one it will be pushed out further.  Your spring can 
thus be made to have some horizontal thickness.  This value can 
be fractional.



  "Number of rotations? & Number of points?"

  The number of coils the spring will have, and the total number 
of points, or segments, along the whole of the spring.  These 
values work together to control how smooth the spring looks.  
E.g. with 2 rotations and 50 points you would have 25 points for 
each circle.  With 10 rotations and 40 points your spring would 
have four sides rising up through ten coils.  The number of 
rotations can be fractional but number of points must be an 
integer.



  "X translation? & Y translation?"

  As well as spiralling upwards the whole spring can lean in one 
direction or another.  These values determine the position of the 
axis of rotation at the end relative to the original position. It 
is a shear, not a rotation.  E.g. if you want it to lean 
forwards-right.  Make X positive and Y negative.  Good for 
movement in anims.  Both values can be fractional.



  "Colouring type?  Checkers or Spreads"

  Checkers: Alternating colours from a series you enter.  You 
will need to enter how many checkers there are then enter the 
colours for each one.  This is made easy as you only need to 
adjust the highlighted colour in the colour requester.  Do this 
and click on OK for each check.

  Spreads:  Your will be coloured with smooth ranges of colours.  
The number of points you entered earlier is the number of 
segments your spring is made of.  Each one can be coloured 
individually but the easiest way is to enter the start and end 
point and then the colours you would like to spread between.  
Enter the start and end segment.  A colour requester will pop up 
and this is where you select the colours.  Adjust the highlighted 
colour and then the one to its right and then click on OK.  The 
colours between will be spread amongst the segments in the range 
you specified.  Cancel the 'start point?' requester to finish 
entering spread data.  To help you enter the numbers for the 
ranges the program gives as default values ranges made of equal 
steps based on your previous entries.  Ensure you colour the 
whole of the spring or some will be left black.  The segments 
range from number zero to the maximum points.



  Finally you will be prompted for a filename to write the object 
off to.



Note:  All measurements are in the same units.





  EXAMPLES:



   Smooth tube shape:

    Radius bottom = 50

    Radius at top = 50

    Edge offset = 150

    Rise per rotation = 0

    Multiplier = 1

    Number of rotations = 1

    Number of points = 50



   Skinny, stretched out spring, small at bottom, wide at top.

   Has a   square profile:

    Radius bottom = 20

    R at top = 100

    Edge offset = 5

    Multiplier = 1

    Rise per rot = 20

    Number of rots = 6

    Number of points = 24 /*gives 24/6=4 points per circle */



   Flat disk with a hole in the middle:

    Radius at bottom = 10

    Radius at top = 10

    Edge offset = 0

    Rise per rotation = 0

    Multiplier = 4

    Number of rots = 1

    Number of points = 40





  Author: 

   Bruce Thomson

   PO Box 33116

   Takapuna

   Auckland

   NEW ZEALAND

