Tools for zooming, scene merging, formatting of numerical data, rotating regions, text centering and justification, choosing character fonts and italicising them and other routines have been developed by the Polytechnic Institute of Brooklyn animation system programmers and combined with the shielding, saveit and vector language routines which were described at the last UAIDE meeting to form an integrated graphics software package for the SC4020. The package is written almost entirely in Fortran II to facilitate adopting it to different computer systems.
The POLYGRAPHICS package contains over 50 user callable routines to make easier the task of producing a movie on the S04020. !This paper provides a summary of some of the features of the package. Other routines were described in papers at the last UAIDE meeting. The items touched upon here include
Tne full package is available with user instructions from the UAIDE librarian.
Up to 11 individual plotting areas can be defined and separately scaled and manipulated. One of the 11 is the screen; the other ten are separately defineable regions. The grid of 1024 by 1024 raster points is called the screen. We may think of the assignment of any scale values we want to the screen as equivalent to placing the screen anywhere we want on an infinite x-y plane. Up to ten other rectangular areas or regions can be defined as plotting areas by executing
CALL REGION(X1,Y1,X2,Y2,NREG)
where (X1,Y1) and (X2,Y2) are the coordinates of the lower left and upper right corners respectively of the region to which the number NREG is assigned. Coordinates are with respect to the scaling of the screen. Any points which are drawn on parts of the ten regions which do not coincide with the screen will not be recorded by the viewing camera since they are off screen. Therefore, if a region is positioned initially off screen and then slowly moved to coincide with the screen, any display in the region will slowly come into view on the film.
The screen, unless specified otherwise by a call to the subroutine SCALE, is positioned on the x-y plane with the coordinates (0.,0.) and (1.0,1.0) for the lower left and upper right corners. Separate x-y planes are superimposed on each region defined to give them each a default scaling of 0. to 1. unless the user executes
CALL SCALE(XS1,YS1,XS2,YS2,NREG)
where (XS1,YS1) and (XS2,YS2) are new scale values assigned to the lower left and upper right corners of region NREG. The screen is assigned a region number of zero by the system so that it may be referred to in calls requiring a region number.
Any region and the screen may be defined to have the attribute of a window or a shield and to be active or inactive with the effect that no lines can be drawn in a region that is an active shield. The attributes of a region are specified by words which may be included in variable length option strings.
Most of the routines can be called with a variable number of arguments which allow the user a) to specify more explicitly how the routine is to operate, and b) to override default options built into the package. The terminal argument which may be included in a majority of the routines is a variable length option string. It is a sequence of words, separated by commas, terminated by a period and enclosed in apostrophes to invoke special operations by the subroutine. For instance, a region numbered 51 could be positioned in the upper right quarter of the screen which has been scaled by default and given the attribute of an active shield by executing
CALL REGION(.5,.5,1.0,1.0,51,'ACTIVE,SHIELD.')
If an array of x-y coordinates are provided for the line drawing routine DRAW, option words like CLOSE, CONTAIN, FRAME, PAPER, PLOT(c) could be included in the variable length option string. They would affect the operation of the line drawing routine as follows:
In text writing, additional option words may be included to control justification of text individually LEFT, RIGHT, UP or DOWN, or in combination, or all at once with the option FILL. Italicization at a default angle of +15 degrees may be obtained by including the option word ITALICS.
Different text letter sizes may be used for each of the ten regions and the screen. Italicization may be requested so that the letters tilt anywhere from -60 degrees to +60 degrees. In varying the text size, the user can specify the letter width, height, letter to letter spacing and line to line spacing. All of the above variations are possible with any of 8 character fonts which include a set of stick type capital letters' two weights of a baskerville type font for capital letters, two weights of the same font for lower case letters, sets of capital and lower case Greek letters and a set of special characters. All previous options concerning SHIELD, WINDOW and CONTAIN are observed in drawing text characters.
In addition to routines for obtaining orthographic perspective or stereo projections of pictures and for performing vector algebra operations and for drawing commonly desired circles, arcs and polygons, there are other routines for zooming, for merging different film sequences, for growing lines from one point to another over a specified number of frames, for formatting numerical data for use in text writing routines and for saving in core SC4020 instructions for constructing a display so that they may be transmitted to the output device over and over again without having to regenerate them.
Zooms may be carried out in a variety of ways by specifying one of the option words TRIANGLE, TRAPEZOID or EXPONENTIAL which specify the shape of the velocity curve followed in progressing from the pre-zoom scaling to the final zoom scaling. For instance the word TRIANGLE requests that the zoom rate increase at a constant rate until half way through the zoom. Then the speed at which the zoom takes place decreases at a constant rate to zero on the final frame of the zoom. Constant velocity or constant percentage change in area zooms may be specified. Or the user may specify the manner of the zoom desired by writing his own function to control the zoom rate. Any of the above zoom options may be requested for any of the ten regions and the screen so that different zooms or pans can be taking place simultaneously. The zoom is invoked by indicating in a call to ZOOM the starting and ending scale values of the region for which a zoom is to take place and the number of frames of film to take to effect the zoom. Every subsequent call to advance a frame then keys the system to make an incremental change in the scale according to the type of zoom requested.
In the same way, the user may specify different picture drawing subroutines for inclusion on a list by executing a cal1 to a routine called BFRAME, viz.
CALL BFRAME(PICTA,NFRAMES)
where NFRAMES is the number of frame advances for which the routine is to be maintained on the list. For every subsequent frame advance executed, the system routines execute calls to the picture drawing routines inserted on the BFRAME list. The routines are removed from the BFRAME list when they have been executed the number of times indicated in the call to BFRAME which put them on the list.
The very talented group responsible for the software includes Jack Burness, Joseph Fischetti, Henry Maurer and Leonard Elekman.