Contact us Heritage collections Image license terms
HOME ACL Associates Technology Literature Applications Society Software revisited
Further reading □ Contents1. Introduction2. Definition of regions3. Line drawing4. Character typing and plotting5. Control procedures7. Extended facilities10. References
ACD C&A INF CCD CISD Archives Contact us Heritage archives Image license terms

Search

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

Contents
1. Introduction
2. Definition of regions
3. Line drawing
4. Character typing and plotting
5. Control procedures
7. Extended facilities
10. References

Chapter 3: LINE DRAWING

All line drawing in the GROATS package is eventually accomplished by calling the procedure:

vector(x1, y1, x2, y2) ;

which defines a line joining the points (x1,y1) and (x2,y2). If the selected region is 'contained' (see Section 2.2) then only the part of the line appearing inside the selected region is drawn. If the selected region is 'extended' then the complete line is drawn assuming that it is within the boundaries of the passive region (see Section 2.3). It is important to remember that all output on the SC4020, apart from the generation of the hardware characters, is achieved by line drawing so that this section applies equally well to curve drawing and software character generation as well as line drawing.

The standard settings controlling the procedure 'vector' will mean that the line is drawn once unbroken. Unless the line is horizontal or vertical, this will be achieved by a set of calls of the SC4020 DRAW VECTOR operation. Horizontal and vertical lines are produced more efficiently on the SC4020 by the special axes generating instructions and these will be used wherever possible. The SC4020 at the Atlas Laboratory has been set up so that the axes generating operations produce lines slightly fainter than the lines produced by the DRAW VECTOR operation. This may be useful when producing vertical and horizontal grid lines but, in standard line drawing, it may cause unevenness in plotting intensity. To force all lines in the selected region to be produced by DRAW VECTOR operations, the procedure:

use vectors;

should be called. This increases the number of instructions generated for the SC4020 (for a line across the complete plotting area, 16 instructions would be required instead of 1) and should therefore be used sparingly. To return the selected region to using the axes generating operations, call:

use axes;

Darker lines on the SC4020 can be obtained by repeating the drawing of the line several times. The standard setting is to draw the line once only. By calling the procedure:

dark (I);

all subsequent line drawing in the selected region will consist of each line drawn I times. Lines tend to become too dark if I is greater than 5. If I = 0 then the line will not be drawn at all.

Thicker lines can be produced by calling the procedure:

thick (I);

After calling this procedure, all lines in the selected region will consist of the original line together with I-1 lines on either side of the original line. These additional lines are drawn parallel to the original line and touching it. For example, if I = 2, 3 lines will be drawn touching each other. If I is less than 1 no lines will be drawn. This facility can be quite useful in film work. Single lines tend to appear rather thin on microfilm and it is desirable to have I set to 2 or more.

Broken lines can be produced by calling the procedure:

broken (I);

The standard setting is I = 0 which will draw the line unbroken. The parameter I can be set between 1 and 63. It causes the line to be broken up into visible and invisible segments approximately .007in × I in length on the hard copy output. This distance does vary depending on the angle of the line with the horizontal. This is not ideal as far as the user is concerned but it does help to produce SC4020 output as efficiently as possible. Short broken lines will cause the SC4020 to work very inefficiently and they should be used sparingly.

Small reproductions of large drawings having considerable detail can become indistinct due to a large number of lines being truncated to a vector of zero length. Such vectors appear on the SC4020 as a dot. The drawing of these dots can be inhibited by calling:

zero invisible;

All zero length lines will not be drawn in the selected region once this procedure has been called. The drawing of zero length lines can be reinstated by calling:

zero seen;

It is hoped that this suppression of zero length lines may be useful when zooming in on a complex scene. Features will remain invisible until they become at least one raster unit in length.

When constructing line drawings, it quite often happens that several lines are required in succession with the end-point of one line being the starting point of the next. To avoid unnecessary repetition of the common point, the user may call:

vector(x1, y1, x2, y2) ;
to point(x3, y3) ;

instead of:

vector(x1, y1, x2, y2) ;
vector(x2, y2, x3, y3) ;

The procedure 'to point' takes its initial point from the end-point of the previous line drawn. The end-point saved after each line is drawn is not local to a particular region. Consequently,it is wise always to start a set of line drawing commands by a call of 'vector'.

When drawing curves, it is sometimes useful to shade the area above or below the curve in order to make the difference between the two regions stand out. It is possible to do this in the GROATS package by calling the procedure:

shadow (I);

before drawing the curve. The area which is shaded depends on the value of I.

I=1
The area to the left of the curve is shaded
I=2
The area to the right of the curve is shaded
I=3
The area below the curve is shaded
I=4
The area above the curve is shaded

The shading is produced by drawing an axis, originating from the start of each vector drawn, to the edge of the selected region.

To delimit the plotting areas being produced, it is useful to surround them with a border. Two procedures are provided for this purpose. A call of:

border;

will draw a straight line border around the edge of the selected region. A call of:

box (xmin,ymin,xmax,ymax);

will draw a rectangle where the minimum and maximum points are (xmin,ymin) and (xmax,ymax) respectively.

⇑ 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