Contact us Heritage collections Image license terms
HOME ACL ACD ICF SUS DCS G&A STARLINK Literature
Further reading □ ForewordContentsPrefacePrologueAcknowledgementsParticipants1. IntroductionA. GuedjB. HopgoodC. CrestinD. WarmanE. SabinF. EncarnacaoG. DunnH. BonoI. NewellJ. FoleyK. FoleyL. SanchaM. SanchaN. Sancha2. Working documentsCurrent positionGraphics primitivesCoreAttributesStructureMethodology: StructureDesignInputTransformationsFormal SpecificationConceptual FrameworkIFIP ReportRecommendationsFuture
C&A INF CCD CISD Archives Contact us Heritage archives Image license terms

Search

   
ACDLiteratureBooksMethodology in Computer Graphics
ACDLiteratureBooksMethodology in Computer Graphics
ACL ACD C&A INF CCD CISD Archives
Further reading

ForewordContentsPrefacePrologueAcknowledgementsParticipants1. IntroductionA. GuedjB. HopgoodC. CrestinD. WarmanE. SabinF. EncarnacaoG. DunnH. BonoI. NewellJ. FoleyK. FoleyL. SanchaM. SanchaN. Sancha2. Working documentsCurrent positionGraphics primitivesCoreAttributesStructureMethodology: StructureDesignInputTransformationsFormal SpecificationConceptual FrameworkIFIP ReportRecommendationsFuture

Preliminary Proposals for Graphics Functions

T.L. Sancha

1. Introduction

These notes outline the functions that might be covered by a proposal produced by the workshop. They do not attempt to fully define a package/interface/etc., but are intended to set the scene for more detailed discussions. Although no representation has been defined, the functions apply equally well to a set of subroutines, a code-generator interface, a protocol or a stored picture format.

The structure of graphics systems is not covered by these notes but An approach to graphics system design Newell & Sproull, Proc. IEEE, April 1974, provides a suitable background.

2. Scope

As suggested in the paper setting out guidelines, these proposals only cover 2-D line drawing with software generated text for drawing annotation.

3. Device Control

3.1. Initialize Device (N)

A table of devices and device parameters (speeds, channel numbers, paper size, buffer location, etc.) is to be supplied externally (e.g. on an input stream) and this call selects and initializes device N from that table.

3.2. Clear

This clears all display files, pictures, etc. to provide a clean sheet/screen for drawing on.

3.3. Release

This closes down the device, releases the channel etc. in a clean way.

4. Coordinate Control

4.1. Device Limits (XMIN, YMIN, XMAX, YMAX)

Sets the units which will be used to address the drawing areas. (XMIN, YMIN) is the bottom left-hand corner and {XMAX, YMAX) is put as near the top right-hand corner as it can be without changing the aspect ratio (default of (0, 0, 1, 1) if this function is not specified).

4.2. View Port ( XMIN, YMIN, XMAX, YMAX)

Specifies a rectangular area within which the drawing is to appear (default to device limits).

4.3. Window (XMIN, YMIN, XMAX, YMAX)

Sets the units which will be used to draw with. Similarly to Device Limits these coordinates are mapped as nearly onto the VIEWPORT as is possible without applying differential scaling (default to viewport limits).

5. Picture Control

5.1. Begin Segment (N)

Opens a new segment, and if an old one of the same number already exists deletes the old one.

5.2. End Segment

5.3. Extend Segment (N)

Re-opens an old segment for further elements to be added to it.

5.4. Segment Status (N, status)

Set status of segment N to highlight/refreshed/stored/off.

5.5. Delete Segment (N)

5.6. Update

Ensure that all operations specified so far have been executed.

6. Drawing Primitives

6.1. Move(X, Y)

Move the drawing implement to the point (X, Y) without drawing. These coordinates are absolute and in terms of the window coordinates.

6.2. Line (X, Y)

Draw a string of characters held in an array using the ISO code. This uses software characters only.

7. Drawing Styles

7.1. Line Style (N)

A table defining line styles (width, intensity, colour, dottedness, dashedness, etc.) will have been set up externally. This function selects the N'th style.

7.2. Font (N)

Selects the N'th font for characters - again these will be defined externally.

7.3. Character Size (WIDTH, HEIGHT, SHEAR)

This sets the character size in terms of the units set by Device Limits.

7.4. Character Orientation (ANGLE)

This sets the angle between the baseline for characters and the horizontal (X) axis, to ANGLE radians.

8. Fault Handling

If an error, fault or exception of any sort occurs, a fault condition is set. This may be examined and cleared.

8.1. Getfault(ARRAY)

Data indicating whether a fault exists and if so defining it is put into the array and the fault is cleared.

8.2. Setfault {ARRAY)

Generates a fault condition that will return the values in ARRAY when interrogated by Getfault. If an attempt is made to execute any graphical function while an uncleared fault condition exists then the function is ignored and a suitable monitor executed.

9. Syntax of Graphical Functions

The following transition networks define the syntax for the functions defined above. The networks are read from left to right and top to bottom unless otherwise indicated by an arrow. Uppercase words denote the functions - with parameters omitted - and lower case letters denote nested transition networks. (The networks define an interpreter rather than a generator).

graphics INITIALIZE DEVICE DEVICE LIMITS fault update VIEWPORT WINDOW update fault DELETE SEGMENT segment INITIALIZE DEVICE RELEASE INITIALIZE DEVICE fault GETFAULT SETFAULT update CLEAR UPDATE segment BEGINSEGMENT EXTENDSEGMENT draw draw style fault SEGMENT STATUS END SEGMENT implied begin or extend dustbin segment implied end segment draw MOVE LINE TEXT style LINESTYLE FONT CHARACTER SIZE CHARACTER ORIENTATION

Transition networks

Editor's note

At a meeting of the organizing committee in Bellinglise, January 1976, it was decided to have an exhaustive look at computer graphics systems. A method of achieving this was thought to be by establishing a matrix spreading graphics systems functions on one side and graphics systems representations on the other side. This led to several quite different presentations. The discussion that started at the SEILLAC workshop from these presentations became very involved. Thus, it was clear that this scheme could not be carried on any further, due to a lack of understanding of the conceptual differences between representational division and functional division. At this point the workshop left the conventional track and, throwing the agenda aside, embarked on what has proved to be a very creative and fruitful course. A decision was made to create a list of what was considered to be the important divisions. The importance of these divisions were then revealed by each person indicating which division he would devote his time to during the workshop, Thus, sub-groups were established to study what was considered to be, at that time, the issues which would help us understand the essential concepts.

It was the intention of the committee that the content of the divisions - at the functional and the representational levels - would provoke action that could clarify many of the ambiguous concepts.

We have included only one of the presentations to give a flavour of the kinds of Matrices that were under discussion.

Functional Division:

  1. Device Control
  2. Picture Control
  3. Drawing Elements
  4. Text Output
  5. Drawing Styles
  6. Administrative
  7. Discrete Input
  8. Continuous input
  9. Environmental Engineers
  10. Transformation and Windowing

Representational Division:

Discussion

Newman:
We do need codes of practice.
van Dam:
Let's not get bogged down in formal definitions.
Newman:
Disagreements produce progress, we discover our disagreements by discussing.
van Dam:
Appealed for a FORTRAN II of graphics to get us started on the long painful road to better graphic languages.
Newman:
GPGS and GINO have already done for graphics the job FORTRAN II did for programming languages.
Dunn:
A residual penalty from FORTRAN II remains.
Hopgood:
We can do better than FORTRAN.

It was proposed that for a short period we could endorse a particular graphics package and help to distribute it.

Sancha:
This would be too costly.
Newman:
We must address the needs of users even though we may not meet them. There are some bad existing practices with which we should conflict.

Editor's note: It was decided that we should discuss the following points, contrary to Sancha1s paper:

The discussion then concentrated on the advantages of the bottom-up, functional approach proposed by van Dam versus the top-down approach favoured by Newell. It appeared for a while in each case that the end-goals were the same, but then the bubble burst and two quite different approaches appeared:

Approach A:- at the level of primitives, transformations, attributes, etc.

Approach B:- at the level of program structures for various system configurations - (use structures to deduce general needs of graphics packages).

The following (Chapter II) roughly edited documents are the results of the two approaches.

Approach A:

Approach B:

We have gathered as a third set, under Miscellaneous, the working documents which could not be directly related to approach A or B.

⇑ 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