The individual characters are designed in a solid style. For reasons of efficiency each of the characters is made up of triangles, rectangles and parallelograms. Each of these shapes can be uniformly shaded by means of a vector family command and in this way the characters are built up as a series of vector families. A single character of unit size (in region 0 in SMOG using the FR80) occupies a 400 raster square. The design allows a 100-raster gap at the right side of the square, thus each character is initially in a 3 by 4 rectangle.
The main purpose of these characters is to allow users to produce titles for their output simply and efficiently without having to use the single line characters of the standard fonts. In Appendix is an example program and the output it has produced.
The system is designed to be available to both SMOG and SPROGS users. It is mainly aimed at the FR80 and should only be used when device coordinates have been selected (region 0 in SMOG).
The initial system requires the addition of two parameters to the parameter list for SMOG or SPROGS and they are:
LIB:FILM.ROTTE SEMI:FILM.BDATSEMI
There are three user routines available at present:
Currently,the letters A to Z and the number 8 have been defined and implemented. If any other character is included as part of a text string a space is inserted instead.
The routines all use the FR80 raster coordinates at the present but if an efficient way of allowing user coordinates can be proposed then these may be implemented. Some points to remember are: that each camera photographs a different area of the tube face and different film types will require a change in the individual line spacing to provide a reasonable wash (this is not yet implemented and a default of 10 rasters is used).
Each character at present has a minimum size of about 200 rasters on average (for more details see the author) but the maximum size is governed by the output medium and a users aesthetic judgement. The ability to rotate the text has been implemented and if the necessity arises a new routine may also be included to allow a pseudo italic font.
The example chosen is one to show how the shape of the characters as well as the size can vary. The angle at which the text is plotted is chosen so that the six words form a circle. This is done by plotting each string so that its base is centred on the same point (8000.0,12500.0). Each word is rotated sixty degrees further than the previous one (about (8000.0,8000.0)) so as to form a circle.
The main problem with preparing this example is the calculation of the x coordinate for each word. To do this requires a bit of mental arithmetic or a pencil and paper. The method is as follows:
(1) Find length of string. This is done by multiplying the XFAC value by 400* the number of characters in the string.
(2) Subtract half of this from the string's centre coordinate to arrive at the x coordinate for the start of the string.
For example, the x coordinate of "SIZE" was calculated as follows:
(1) 2.0 * (400.0 * 4.0) = 3200.0
(2) 8000.0 - (3200.0/2) = 6400.0
which is the correct value as can be seen from the fourth number in the XH data statement.
The program and its output follow:
0 LIST 1 MASTER EXAMPLE 2 C SET UP THE VARIABLE DATA 3 DIMENSION XFAC(6),YFAC(6),XH(6),TEXT(6),N(6) 4 DATA XFAC/2.75,2.5,2.25,2.0,1.5,1.0/ 5 1YFAC/5.0,4.0,3.5,2.5,2.0,1.0/ 6 DATA TEXT/'CHARS','VRY','IN','SIZE','AND','ANGLE'/ 7 1N/5,4,2,4,3,5/ 8 DATA XH/5250.0,6000.0,7100.0,6400.0,7100.0,7000.0/ 9 C SELECT HARDCOPY AND RASTER COORDINATES. 10 CALL FRHCS 11 CALL REGION (0,0) 12 C OUTPUT THE TEXT STRINGS IN A CIRCLE 13 C PRAY THAT THE SUMS WERE CORRECT! 14 DO 1 I=1,6 15 ANG=60.0*(I-1) 16 CALL WANGLE (8000.0,8000.0,ANG) 17 CALL WCHFAC (XFAC(I),YFAC(I) 18 CALL WRIGHT (XH(I),12500.0,TEXT(I),N(I)) 19 1 CONTINUE 20 CALL ENDSPR 21 STOP 22 END