Contact us Heritage collections Image license terms
HOME ACL Associates Technology Literature Applications Society Software revisited
Further reading □ Contents1. Regions2. Output3. Null files4. Film routines5. High level routines6. SPROGS macro7. Miscellaneous
ACD C&A INF CCD CISD Archives Contact us Heritage archives Image license terms

Search

   
ACLLiteratureICL 1906A manualsSPROGS supplement
ACLLiteratureICL 1906A manualsSPROGS supplement
ACL ACD C&A INF CCD CISD Archives
Further reading

Contents
1. Regions
2. Output
3. Null files
4. Film routines
5. High level routines
6. SPROGS macro
7. Miscellaneous

4. FILM ROUTINES

Various routines have been provided to allow film producers to add extra effects.

4.1 FAIRDS

      FAIRDS (XIND,FS,FNO,TYP)

This is display routine number 90. If an object is to be moved from one part of a scene to another in a number of frames, and if the amount of movement is the same on each frame, then the object will appear to jerk into motion at the start and jerk to a stop at the end. It is possible to ease-in, at the start by making the first motions very small and steadily increasing the amount of movement. Similarly, it is possible to reverse the process, to ease-out, at the end. This is known as fairing.

FAIRDS will set a fairing value, as a fraction between 0.0 and 1.0, into index variable XIND, given the total number of frames for the fair, FS, and the current frame number FNO. If TYP=0.0, incremental fairing values are calculated, such that the total sum of all values calculated over the given number of frames is 1.0. If TYP=1.0, the value calculated is relative to the start point, so the final value for the last frame would be 1.0.

Example

It is required to move an object a distance d, starting from rest and reaching full speed at the end, in n frames.

Then:

      FAIRDS (XIND, n,m,0.0)

will calculate a value such that, for frame m, the object will need to move a distance:

      XIND * d

from its position in frame m-1.

      FAIRDS(XIND,n,m,1.0)

will calculate a value such that, for frame m, the object will need to be a distance:

      XIND * d 

from its start point.

4.2 FAIR

For users wishing to obtain the fairing value without using index variables, the FORTRAN function:

      FAIR(FS,FNO,TYP)

will return the required value. The arguments of FAIR are the same as the corresponding arguments in FAIRDS.

4.3 GETHI

The following set of routines make use of predefined files saved on a system library. The routine:

      GETHI

will load these into store and must be used before any of this set is called. The files all have four-character names ending with :, and use index variables which have the same naming convention. These names should therefore be avoided by the user. This set of routines can only be called from within a file and all assume that the specified region is rectangular and linear. Each routine causes display routines to be saved in the file, which will produce the required effect when obeyed. The example at the end of this section shows how to use them in practice.

4.4 ZOOM

      ZOOM(R,X,Y,FACT,FR,FAIR)

This provides a zoom, that is, the picture appears to move towards or away from the viewer. The zoom will take place about point (X,Y) in region R, lasting for FR frames. FACT gives the final enlargement factor required (<1,0 for zoom cut). The zoom will be faired if FAIR =1.0.

4.5 SPIN

      SPIN(R,FR)

Region R will be rotated through 180 degrees about a vertical axis through the region centre, in FR frames.

4.6 FLIP

      FLIP(R,FR) 

The same as SPIN, except that a horizontal axis is used.

4.7 PAN

      PAN (R,D,FR,FAIR)

Region R will be moved a distance D from left to right in FR frames (negative D gives right to left motion). FAIR = 1.0 will cause the motion to be faired.

4.8 TILT

      TILT(R,D,FR,FAIR)

The same as PAN, except that motion is upwards (negative D gives downwards).

4.9 SQUASH

      SQUASH(R,FACT,FR,FAIR)

Region R is changed in the Y direction by a factor FACT (>1.0 for expansion).

4.10 SQUEEZE

      SQUEZE(R,FACT,FR,FAIR)

The same as SQUASH, except that the X direction is changed. In a given sequence, none of the above routines may be used more than once, but any combination can be used together.

The next two routines provide a means of replacing one whole picture by another.

4.11 WIPE

      WIPE(R,F1,FN01,F2,FN02,FR,TYP)

will replace picture file F1, number FN01, by picture file F2, number FN02, in FR frames. Neither F1 nor F2 may contain ADVFLM orders. WIPE can be used outside a file, and will invoke the sequence list (*9) itself. If used within a file, however, both F1 and F2 should select region R internally. In this case, no other part of the sequence will be affected by the replacement.

TYP indicates the type of replacement required:
TYP = 1.0 Right to left, on top of the old
      2.0 Left to right, on top of the old
      3.0 Top to bottom, on top of the old
      4.0 Right to left, pushing the old
      5.0 Left to right, pushing the old
      6.0 Square out from centre, on top of the old
      7.0 Horizontal band out from centre, on top of the old
      8.0 Vertical band out from centre, on top of the old
      9.0 From top left corner, on top of the old
     10.0 Circle out from centre, on top of the old

4.12 MVWIPE

      MVWIPE(F1,FN01,F2,FN02,FR,TYP)

will produce a WIPE between two film files Fl and F2, (files containing ADVFLM), by adding files F1, F2 and two system files to the sequence list. The sequence list will not be started by this routine. Only TYP values 1.0 to 4.0 are available at present. MVWIPE makes use of the current region.

Example

The following produces a box in region 2.0, and then provides a simultaneous zoom and spin in 48 frames.

      BOX = ANAME('BGX') 
      STDF(BOX) 
      REGION(2.0) 
      SETXY(10.0,10.0) 
      BOXR(40.0,30.0) 
      ADVFLM 
      REPEAT 
      FIDF(1.0)
      SPINN = ANAME('SPIN') 
      STDF(SPINN) 
      SPIN(2.0,48.0) 
      FIDF(1.0)
      ZOOMM = ANAME('ZOOM')
      STDF(ZOOMM)
      ZOOM (2.0,25.0,20.0,4.0,48.0,1.0)
      STOPSQ
      FIDF(1.0)
      ADSQLG(BOX,0.0,0.0) 
      ADSQLL(SPINN,0.0,0.0) 
      DRAW(ZOOMM)
⇑ Top of page
© Chilton Computing and UKRI Science and Technology Facilities Council webmaster@chilton-computing.org.uk
Our thanks to UKRI Science and Technology Facilities Council for hosting this site