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

On Transformations

I. Some Underlying Principles and Assumptions

(1) We accept the modelling (geometry) graphics categorization and consider our area to fall within modelling (geometry).

(2) We restrict transformations to 2-D and 3-D affine and clipping (windowing.) Note : Virtual viewports can be defined with affine transformations. A window or clipping region is defined as a set of points, e.g. the set of points inside (and on the boundary of) a square.

(3) We assume that pictures are structured hierarchically. We assume the following details of the structure:

  1. The hierarchy can be mapped into a tree.
  2. Each node n has a geometry (affine) transformation G and a clipping (windowing, region, ...) transformation W which denote the transformations in effect upon entering the node; G and W are determined (defined) by the parent node of n.
  3. Let G and W be the local concatenated transformations immediately before leaving node i for j.
       i   Gi   Wi
           G    W
       j   Gj   Wj
    

Then two possibilities exist

(a) Clip before transform:

   Gj = Gi O Gj         where O stands for composition
   Wj = Gi-1 (Wj) I Wi      where I stands for intersection

(b) Transform before clip:

   Gj = Gi O Gj         where O stands for composition
   Wj = Gi Wj I Wi  where I stands for intersection

Transformations premultiply pictures here

Case (a) has the advantage of not transforming points that will later be clipped; the disadvantage is that the inverse Gi-1m must be computed.

Case (b) does not involve inverse but must transform all points before clipping.

Conclusion (tentative) : both orders should be permissible; a particular system could select either order or both.

(4) The leaf nodes of the tree contain calls to virtual (world model) picture primitives. If p is a primitive, then the node:

    i:p  Gi  Wi

means either:

Draw virtual (Gi(p) within Wi) (case (b) above)

or

Draw virtual (Gi(p within Wi))(case (a) above)

Note : Therefore transformations on a picture = transformations on primitives)

Draw virtual constructs the world model picture and thus defines part of the interface to the Graphics component.

II. Functional specification of Transformations

1. Definition of Affine Transformations

  1. Separate definitions for 2-D or 3-D.
  2. Right handed coordinate system.
  3. Define your favourite geometric transformations (non-singular?)
  4. Core: Scale(s); Translate(dx, dy) ; Rotate(theta,axis), also 3-D

2. Definition of Clipping Transformations

  1. Separate 2-D and 3-D.
  2. Window (specifications); (Do we like the name "window"?}
  3. For rectangular windows, could define by (centre, width, height) or (lower-left, upper-right) or (lower-left, width, height)
  4. Should any of these should be "permissible"?
  5. For general polygons (convex only?): Region(specs):specs:vertex matrix.

3. Intra-level and hierarchic concatenation (composition).

See above for possibilities.

  1. Concatenate including parent transformations always.
  2. Compose local geometric transformations.
  3. Each window transformation in a node composed only with parent window.

4. Manipulation of transformations.

  1. Read current transformation (and its parameters).
  2. Invert a geometric transformation.
  3. Store a transformation.

5. Miscellaneous.

  1. Enable/disable clipping (for better performance).
  2. Enable/disable window concatenations in local nodes.
  3. Enable/disable geometric concatenations in local nodes.
  4. Begin transformation / End transformation type of functions to enter and leave a level.

Editors note: The report of this sub-group can best be understood with reference to the paper Concatenating Transformations in Hierarchic Graphics, W.R. Mallgren and A.C. Shaw, (Technical Report No. 76-02-2), January 1976, Department of Computer Science, Univ. of Washington, Seattle.

⇑ 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