Patents.com Logo
Choose Language:
 

Title:  Method and apparatus for rendering graphical components on a display utilizing geometric constraints
Patent ID: US5825368
Issue Date:  October 20, 1998
Abstract:

A method and apparatus for rendering statistical graphics which utilizes geometric constraints and bounding boxes to compute coordinate transformations at the time a graphical object is rendered. The invention transforms coordinates in an intrinsic coordinate system of a drawing element into coordinates in an absolute coordinate system of a computer display device. The geometric constraints tie the drawing elements together and define linear equality constraints between the initially unknown parameters while allowing computation of rotation and reflection parameters in advance and independently of the remaining initially unknown parameters. Rendering bounding boxes are used to define linear inequality constraints that require the rendering bounding boxes to be completely confined within a display bounding box of known size. Using the linear equality constraints, the linear inequality constraints and a cost function, the values of the remaining initially unknown parameters are computable such that both the linear equality constraints and the linear inequality constraints are simultaneously satisfied.

 

 






Translations
Inventor(s): 
Wilks;  Allan R.  (Scotch Plains,  NJ,  US) Email and Contact Information
Assignee:  Lucent Technologies Inc.;  (Murray Hill,  NJ,  US)
Application No.:  579498
Filing Date:  December 27, 1995
Primary Class:  345/440
Other Classes:  345/441  345/622  345/644 
Field of Search:  395/140
Intern'l Class:  G06T 17/00 (20060101) 
Primary Examiner:Zimmerman; Mark K.
Assistant Examiner:Choi; Jai-Hee
US Patent Document(s):
  4800510    Vinberg et al.    January 01, 1989
  5249265    Liang    September 01, 1993
  5307451    Clark    April 01, 1994
  5371845    Newell et al.    December 01, 1994
  5452411    Hidaka    September 01, 1995
  5475803    Stearns et al.    December 01, 1995
  5544301    Orton et al.    August 01, 1996
  5611035    Hall    March 01, 1997
Foreign Reference(s):
Other References:Hearn et al., Computer Graphics, Prentice Hall, Inc., pp. 184-209 1994. .
Foley et al., Computer Graphics Principles and Practice, Addison-Wesley Publishing Company, pp. 208-210, 656-663, 1993..



Claim(s):

I claim:

1. A method for rendering graphical components on a computing display device having an absolute coordinate system, wherein said graphical components have intrinsic coordinate systems,said method comprising the steps of:

determining a set of geometric constraints for relating said intrinsic coordinate systems of said graphical components to said absolute coordinate system, said intrinsic coordinate systems having initially unknown transformation parameters andsaid absolute coordinate system having predetermined transformation parameters, wherein said initially unknown transformation parameters and said predetermined transformation parameters include rotation, reflection, scale and translation parameters;

performing a non-shear coordinate transformation for mapping intrinsic coordinates in said intrinsic coordinate systems to absolute coordinates in said absolute coordinate system, wherein said non-shear coordinate transformation enables saidinitially unknown transformation parameters of said intrinsic coordinate systems to be calculated at a time of rendering said graphical components;

said step of performing a non-shear coordinate transformation includes the steps of:

determining said rotation and reflection parameters of said intrinsic coordinate systems using said geometric constraints and said predetermined transformation parameters of said absolute coordinate system, said geometric constraints includingone or more linear equality constraints for defining relationships between said initially unknown transformation parameters of said intrinsic coordinate system and said predetermined transformation parameters of said absolute coordinate system involvedin said geometric constraints, said linear equality constraints allowing independent computation of said rotation and reflection parameters of said intrinsic coordinate systems in advance of said scale and translation parameters of said intrinsiccoordinate systems;

defining said scale and translation parameters of said intrinsic coordinate systems using said geometric constraints, said predetermined transformation parameters of said absolute coordinate systems and said rotation and reflection parameters ofsaid intrinsic coordinate systems such that all said linear equality constraints are simultaneously satisfied;

said step of performing said non-shear coordinate transformation further includes the step of:

transforming intrinsic coordinates (x.sup.i, y.sup.i) in said intrinsic coordinate systems i for said graphical components denoted by i=1 . . . , N into absolute coordinates (x.sup.0, y.sup.0) in said absolute coordinate system according to thecorresponding equations

where .theta. corresponds to said rotation parameter, .sigma..sub.x and .sigma..sub.y are said scale parameters, .rho..sub.x and .rho..sub.y are said reflection parameters, and .tau..sub.x and .tau..sub.y are said translation parameters, andsaid reflection parameters having either a +1 or -1 value, said scale parameters being positive values;

said step of transforming said intrinsic coordinates further includes the step of:

determining said rotation parameter of said intrinsic coordinate systems using said geometric constraints and a predetermined rotation parameter for said display, said geometric constraints including one or more linear equality constraints fordefining relationships between said parameters of coordinate systems involved in said geometric constraints, said linear equality constraints allowing computation of said rotation parameter of said intrinsic coordinate systems in advance andindependently of said reflection, scale and translation parameters of said intrinsic coordinate systems, wherein said linear equality constraints include rotation equations having forms .theta..sup.i =.alpha. or .theta..sup.i =.theta..sup.j +.PHI.,where j=0, . . . , N denotes a coordinate system other than said intrinsic coordinate system i to which said parameter belongs, a corresponds to a known value and .PHI. represents either 0 or .+-.TT/2; and

displaying said graphical components on said computing display device.

2. A method for rendering graphical components on a computing display device having an absolute coordinate system, wherein said graphical components have intrinsic coordinate systems, said method comprising the steps of:

determining a set of geometric constraints for relating said intrinsic coordinate systems of said graphical components to said absolute coordinate system, said intrinsic coordinate systems having initially unknown transformation parameters andsaid absolute coordinate system having predetermined transformation parameters, wherein said initially unknown transformation parameters and said predetermined transformation parameters include rotation, reflection, scale and translation parameters;

performing a non-shear coordinate transformation for mapping intrinsic coordinates in said intrinsic coordinate systems to absolute coordinates in said absolute coordinate system, wherein said non-shear coordinate transformation enables saidinitially unknown transformation parameters of said intrinsic coordinate systems to be calculated at a time of rendering said graphical components;

said step of performing a non-shear coordinate transformation includes the steps of:

determining said rotation and reflection parameters of said intrinsic coordinate systems using said geometric constraints and said predetermined transformation parameters of said absolute coordinate system, said geometric constraints includingone or more linear equality constraints for defining relationships between said initially unknown transformation parameters of said intrinsic coordinate system and said predetermined transformation parameters of said absolute coordinate system involvedin said geometric constraints, said linear equality constraints allowing independent computation of said rotation and reflection parameters of said intrinsic coordinate systems in advance of said scale and translation parameters of said intrinsiccoordinate systems;

defining said scale and translation parameters of said intrinsic coordinate systems using said geometric constraints, said predetermined transformation parameters of said absolute coordinate system, and said rotation and reflection parameters ofsaid intrinsic coordinate systems such that all said linear equality constraints are simultaneously satisfied;

said step of performing said non-shear coordinate transformation further includes the step of:

transforming intrinsic coordinates (x.sup.i, y.sup.i) in said intrinsic coordinate systems i for said graphical components denoted by i=1, . . . , N into absolute coordinates (x.sup.0, y.sub.0) in said absolute coordinate system according to thecorresponding equations

where .theta. corresponds to said rotation parameter, .sigma..sub.x and .sigma..sub.y are said scale parameters, .rho..sub.x and .rho..sub.y are said reflection parameters, and .tau..sub.x and .tau..sub.y are said translation parameters, andsaid reflection parameters having either a +1 or -1 value, said scale parameters being positive values;

said step of transforming said intrinsic coordinates further includes the step of;

determining said reflection parameters of said intrinsic coordinate systems using predetermined reflection parameters for said display and said geometric constraints, said geometric constraints including one or more linear equality constraintsfor defining relationships between said parameters of coordinate systems involved in said geometric constraints, said linear equality constraints allowing independent computation of said reflection parameters of said intrinsic coordinate systems inadvance of said rotation, scale and translation parameters of said intrinsic coordinate systems, wherein said linear equality constraints include reflection equations having forms .rho..sub.x.sup.i =.+-..rho..sub.x.sup.j, .rho..sub.y.sup.i=.+-..rho..sub.y.sup.j, .rho..sub.x.sup.i =.+-..rho..sub.y.sup.j, .rho..sub.y.sup.i =.+-..rho..sub.x.sup.j, .rho..sub.x.sup.i =.+-.1 or .rho..sub.y.sup.i =.+-.1, where j=0, . . . , N denotes a coordinate system other than said intrinsic coordinatesystem i to which said parameter belongs; and displaying said graphical components on said computing display device.

3. A method for rendering graphical components on a computing display device having an absolute coordinate system, wherein said graphical components have intrinsic coordinate systems, said method comprising the steps of:

determining a set of geometric constraints for relating said intrinsic coordinate systems of said graphical components to said absolute coordinate system, said intrinsic coordinate systems having initially unknown transformation parameters andsaid absolute coordinate system having predetermined transformation parameters, wherein said initially unknown transformation parameters and said predetermined transformation parameters include rotation, reflection, scale and translation parameters;

performing a non-shear coordinate transformation for mapping intrinsic coordinates in said intrinsic coordinate systems to absolute coordinates in said absolute coordinate system, wherein said non-shear coordinate transformation enables saidinitially unknown transformation parameters of said intrinsic coordinate systems to be calculated at a time of rendering said graphical components;

said step of performing a non-shear coordinate transformation includes the steps of:

determining said rotation and reflection parameters of said intrinsic coordinate systems using said geometric constraints and said predetermined transformation parameters of said absolute coordinate system, said geometric constraints includingone or more linear equality constraints for defining relationships between said initially unknown transformation parameters of said intrinsic coordinate system and said predetermined transformation parameters of said absolute coordinate system involvedin said geometric constraints, said linear equality constraints allowing independent computation of said rotation and reflection parameters of said intrinsic coordinate systems in advance of said scale and translation parameters of said intrinsiccoordinate systems;

defining said scale and translation parameters of said intrinsic coordinate systems using said geometric constraints, said predetermined transformation parameters of said absolute coordinate system, and said rotation and reflection parameters ofsaid intrinsic coordinate systems such that all said linear equality constraints are simultaneously satisfied;

said step of performing said non-shear coordinate transformation further includes the step of:

transforming intrinsic coordinates (x.sup.i, y.sup.i) in said intrinsic coordinate systems i for said graphical components denoted by i=1, . . . , N into absolute coordinates (x.sup.0, y.sup.0) in said absolute coordinate system according to thecorresponding equations

where .theta. corresponds to said rotation parameter, .sigma..sub.x and .sigma..sub.y are said scale parameters, .rho..sub.x and .rho..sub.y are said reflection parameters, and .tau..sub.x and .tau..sub.y are said translation parameters, andsaid reflection parameters having either a +1 or -1 value, said scale parameters being positive values, wherein said graphical components have items z; where z=1, . . . M,;

determining rendered width and height information for said items z of said graphical components i using rendering data, wherein said coordinate systems have x- and y-axes with positive and negative directions;

determining items z of said graphical components i that extend furthermost in said negative and positive directions of said x- and y-axes in said absolute coordinate system using said rendered width and height information for said items z; and

displaying said graphical components on said computing display device.

4. The method of claim 3 wherein the step of determining said items z of said drawing elements i that extend furthermost in said negative and positive directions of said x- and y-axes in said absolute coordinate system further includes the steps of: determining said items z that potentially minimize .sigma..sub.x.sup.i x.sup.iz .rho..sub.x.sup.i cos.sup.i -.sigma..sub.y.sup.i y.sup.iz .rho..sub.y.sup.i sin.theta..sup.i +.tau..sub.x.sup.i -1.sup.iz, where 1.sup.iz is a quantity said item z extends along said negative direction of said x-axis from coordinate x.sup.iz when rendered in said absolute coordinate system; determining said items z that potentially maximize x.sup.iz .sigma..sub.x.sup.i .rho..sub.x.sup.i cos.theta..sup.i -y.sup.iz .sigma..sub.y.sup.i .rho..sub.y.sup.i sin.theta..sup.i +.tau..sub.x.sup.i +r.sup.iz, where r.sup.iz is a quantity said item z extends along said positive direction of said x-axis from coordinate x.sup.iz when rendered in said absolute coordinate system; determining said items z that potentially minimize x.sup.iz .sigma..sub.x.sup.i .rho..sub.x.sup.i sin.theta..sup.i +y.sup.iz .sigma..sub.y.sup.i .rho..sub.y.sup.i cos.theta..sup.i +.tau..sub.y.sup.i -b.sup.iz, where b.sup.iz is a quantity said item z extends along said negative direction of said y-axis from coordinate y.sup.iz when rendered in said absolute coordinate system; and determining said items z that potentially maximize x.sup.iz .sigma..sub.x.sup.i .rho..sub.x.sup.i sin.theta..sup.i +y.sup.iz .sigma..sub.y.sup.i .rho..sub.y.sup.i cos.theta..sup.i +.tau..sub.y.sup.i +t.sup.iz, where t.sup.iz is a quantity said item z extends along said positive direction of said y-axis from coordinate y.sup.iz when rendered in said absolute coordinate system. 5. The method of claim 3 wherein the step of determining items z of said graphical components i that extend most in said negative and positive directions of said x- and y-axes in said absolute coordinate system further includes the step of: determining said items z of said graphical components i that are least extreme points, said least extreme point being a vertex on any least face of a convex hull boundary.



Description:

BACKGROUND OFTHE INVENTION

1. Field of the Invention

The present invention relates generally to computer-based drawing systems, and more particularly to a statistical graphics drawing system utilizing geometric constraints in the rendering of graphical objects.

2. Background

In order to produce drawings on a display device, such as a video terminal or printer, computer-based drawing systems typically perform coordinate transformations from a first coordinate system of a graphical object to be displayed to a secondcoordinate system of the display device. In order to perform the coordinate transformations, certain parameters that define the coordinate transformations need to be determined, such as size and position of the drawing relative to the display. Statistical graphics drawing systems of the prior art simplify the determination of these parameters by reserving areas of the display where various component pieces of a plot will be generated. In other words, these prior art statistical graphicssystems generally predetermine the size and position of the plot in order to facilitate the coordinate transformations.

Predetermining the size and position of the plot, however, has a major drawback in that it makes the plot inflexible to changes. Once areas of the display are reserved by the prior art statistical graphics systems, any modification to the sizeand position of the reserved areas involves determining the drawing parameters and performing coordinate transformations once again.

As would be understood, a goal for most users of statistical graphics systems is to maximize the utilization of display area on a given display device when rendering a statistical graph. As mentioned, conventional systems for statisticalgraphics will automatically set aside areas on the display for various components of the statistical graph. For example, in an exemplary statistical graph, one area of the display may be set aside for points of a graph and another for axes, labels andtitles. If, however, no axes, labels and titles are requested by the user, large amounts of space are left unused around the edge of the plot. Such a result is generally considered undesirable. Any re-manipulation of the plot, however, will againrequire the drawing parameters and coordinate transformations to be calculated, tending to inconvenience the user. Accordingly, there is a need for a more flexible methodology used in the creation of statistical graphics that does not requirepre-specification of areas in order to produce a graphical display while maximizing utilization of display area.

SUMMARY OF THE INVENTION

The present invention discloses a method and apparatus for rendering graphical components on a display by using geometric constraints. The present invention renders the graphical components by determining a set of geometric constraints forrelating intrinsic coordinate systems of graphical components to an absolute coordinate system of the display, wherein the intrinsic coordinate systems have initially unknown transformation parameters, and the absolute coordinate system has predeterminedtransformation parameters. A non-shear coordinate transformation is then performed for mapping intrinsic coordinates in the intrinsic coordinate systems to absolute coordinates in the absolute coordinate system. The geometric constraints of the presentinvention include one or more linear equality constraints that define the relationships between the transformation parameters, such as rotation, scale, reflection and translation, of the coordinate systems involved in the geometric constraints.

Advantageously, the non-shear coordinate transformation enables the initially unknown transformation parameters of the intrinsic coordinate systems to be calculated when the graphical components are being rendered. Specifically, the linearequality constraints allow computation of the rotation and reflection parameters of the intrinsic coordinate systems in advance and independently of the scale and translation parameters of the intrinsic coordinate systems using the predeterminedtransformation parameters of the absolute coordinate system. Subsequently, the scale and translation parameters are determined by the present invention using the geometric constraints, predetermined transformation parameters of the absolute coordinatesystem, and possibly the rotation and reflection parameters such that the linear equality constraints are simultaneously satisfied.

The present invention also defines bounding boxes for the graphical components using rendered width and height information determined from rendering data. The rendering bounding boxes include linear inequality constraints that relate thegraphical components to the display. Preferably, the rendering bounding boxes are confined within a display bounding box such that the geometric constraints are satisfied while maximizing utilization of the display.

BRIEF DESCRIPTION OF THEDRAWINGS

For a better understanding of the present invention, reference may be had to the following description of exemplary embodiments thereof, considered in conjunction with the accompanying drawings, in which:

FIG. 1 depicts a sample graphical object for illustrating the present invention;

FIG. 1A shows an exemplary representation of a computing device for a computer graphics drawing system and which may be utilized in connection with the present invention;

FIG. 2 depicts an exemplary hierarchical representation of a graphical object structure for the sample graphical object in FIG. 1;

FIG. 3 depicts an "X" mark plotted at coordinate (1, 1) in a absolute coordinate system of a display; and

FIGS. 4-4c depicts an exemplary flowchart for computing the coordinate transformations T.sub.i.

DETAILED DESCRIPTION

The present invention discloses a novel method for the efficient rendering of graphical objects on a computer display device. Graphical objects, such as statistical graphs or plots, are described using geometric constraints to relate componentpieces of the graphical object to one another. Referring to FIG. 1, there is shown an exemplary graphical object depicting a plot of a bar chart 30. As can be seen, the bar chart 30 includes an x-axis 32, y-axis 34 and bars 36. The present inventionwill be described with regard to the bar chart 30 of FIG. 1, however, this should not be construed to limit the present invention in any manner to only bar charts or statistical graphs.

Referring to FIG. 1A, there is shown an exemplary representation of a computing device 400, in connection with which the present invention may be practiced. As shown, the computing device includes a processing unit 410, display device 420, forexample, but not limited to, a video display terminal screen or printer, and an input device 430, for example, a keyboard, mouse, etc. As would be understood, the processing unit includes among other things one or more processors 440 and associatedmemory 450. The computer executes commands based on software instructions stored, for example, in memory 450. Based on input from a user, the computing device in connection with associated software, is operable to generate a specific set of signalsdesired by the user, which may include, for example, the preparation and rendering of drawings on a display device. As would be understood the computing device may take the form of a personal computer or other like device, and may be a stand-aloneworkstation or part of a networked or centralized computer system. Additionally, as would be understood, the present invention may take the form of a software program for such a computing device. In a preferred embodiment, the present inventionoperates in conjunction with the well-known UNIX operating system.

The present invention method breaks down each component piece of a graphical object into successively more refined pieces thereby defining a hierarchal structure. Referring to FIG. 2, there is shown an exemplary hierarchical representation of agraphical object structure 40 for the bar chart 30 in FIG. 1. The graphical object structure 40 comprises a plurality of nodes connected by branches, wherein each node represents a component piece of the graphical object. A top node 10 represents theentire bar chart 30. Initially, the bar chart 30 can be described as comprising three main component pieces: bars 36, y-axis 34 and x-axis 32. These component pieces are represented in a second level of the graphical object structure 40 by nodes 3, 2,and 1, respectively. The y-axis 34 and x-axis 32 of FIG. 1 can be further described as including axis lines, ticks and labels, which are represented in a third level of the graphical object structure 40 as axis line nodes 7, 4, tick nodes 8, 5 and labelnodes 9, 6, respectively. The component pieces (or nodes) are tied together by geometric constraints as will be explained.

The bottom-most nodes of each set of branches of the graphical object structure 40, e.g., label nodes 9, 6, are called leaves. These nodes represent the most basic component pieces of the graphical object. Each leaf is a drawing elementcontaining a set of drawing instructions. The set of drawing instructions specifies the object to be drawn, a location to draw the object and possibly how to draw or present the object. Table I in Appendix A illustrates an exemplary set of drawinginstructions for some of those drawing elements or leaves depicted in FIG. 2. Note that each leaf may contain several items to render, for example, the bar leaf will have three bars to draw on the display.

TABLE I ______________________________________ Axis LEAF Bars Line Labels Ticks ______________________________________ DRAWING Rectangles Seg- Text Segments PRIMITIVE ments GEO- (x.sup.1,y.sup.1), (x.sup.1`,y.sup.1`) (x.sup.1,y.sup.1), (x.sup.1,y.sup.1,s.sup.1) (x.sup.1,y.sup.1), (x.sup.1`,y.sup.1`) 9 METRIC (x.sup.2,y.sup.2), (x.sup.2`,y.sup.2`) (x.sup.1`,y.sup.1`) (x.sup.2,y.sup.2,s.sup.2) (x.sup.2,y.sup.2), (x.sup.2`,y.sup.2`) 1 INFORMA- (x.sup.3,y.sup.3),(x.sup.3`,y.sup.3`) . . . . . . TION . . . . . . (x.sup.n,y.sup.n,s.sup.n) (x.sup.n,y.sup.n), (x.sup.n,y.sup.n) RENDER- linewidth line- pointsize, marksize, ING width textadjust, markrotation INFORMA- text- TION rotation, font ______________________________________

Note that the superscripts do not denote a power factor. Rather the superscripts denote item z of the leaf (or drawing element), where z=1, . . . , n. The appended superscript ' denotes other coordinate pairs necessary to render the drawingprimitive.

Drawing instructions in each leaf relate to drawing primitives, geometric data and possibly rendering data. A drawing primitive, generally, is a function for drawing an object on the display device. In the present invention, a drawing primitivedoes not merely describe a single object, but rather collections of similar objects, such as polylines, arcs, text and marks. An exemplary list of drawing primitives used in connection with the present invention method are shown in Table II of AppendixB. As would be understood, other drawing primitives, such as curves, hexagons, triangles, etc., may also be included.

TABLE II ______________________________________ DRAWING PRIMITIVE DESCRIPTION ______________________________________ polyline: (x.sup.z,y.sup.z) - (x.sup.z`,y.sup.z`) A polylines is a linear spline; a sequence z = 1, . . . , n of pointsconnected by line segments. The input data is the sequence of points. polygons: (x.sup.z,y.sup.z), (x.sup.z`,y.sup.z`) A polygon is a polyline with the last point z = 1, . . . , n connected to the first. The input data is the sequence of points. segments: (x.sup.z,y.sup.z), (x.sup.z`,y.sup.z`) A segment is a line segment with both z = 1, . . . , n endpoints specified. rectangles: (x.sup.z,y.sup.z), (x.sup.z`,y.sup.z`) A rectangle is a polygon where the two z = 1, . . . , n points for eachrectangle are the coordi- nates of two opposite corners. arcs: (c.sup.xz,c.sup.yz), r.sup.z, (a.sup.s,a.sup.z) An arc is a circular arc. The zth arc is the z = 1, . . . , n part of the circle that is centered at (c.sup.xz,c.sup.yz) with a radiusr.sup.z that starts at angle a.sup.z degrees, proceeds counter-clockwise, and ends at angle a.sup.z degrees. text: (x.sup.z,y.sup.z), s.sup.z Text allows text string s.sup.z to be plotted at z = 1, . . . , n position (x.sup.z,y.sup.z). marks:(x.sup.z,y.sup.z), A mark is a symbol. The mark is plotted at z = 1, . . . , n the specified position. ______________________________________

Note that the superscripts do not denote a power factor. Rather the superscripts denote item z of the leaf (or drawing element), where z=1, . . . , n. The appended superscript ' denotes other coordinate pairs necessary to render the drawingprimitive.

Each leaf of the graphical object structure 40 has one associated drawing primitive. The present invention uses the drawing primitives of Table II to draw the bar, axis line, label and tick component pieces of the plot 30 shown in FIG. 1 on adisplay. For example, rectangle drawing primitives are used to draw the bar component pieces of the plot 30.

Geometric data, another form of data found in the drawing instructions, is information that specifies how to position and possibly size the drawing primitives in a coordinate system intrinsic to the drawing element. Specifically, geometric dataconsists of sets of one or more coordinate pairs, such as endpoints, arc centers, corners, etc. Each item of the leaf has a corresponding set of geometric data. Some drawing primitives, such as text, need only one coordinate pair to position the drawingprimitive. Other drawing primitives need more than one coordinate pair, such as rectangles and segments.

Rendering data, which may also be included in the drawing instructions, gives specific instructions for presenting the drawing primitive, such as how thick to draw lines, what point size to use for text, how many degrees to rotate text, etc. Therendering data controls how every item in a leaf is drawn on the display device.

All nodes of the graphical object that are not leaves, for example, the x-axis and y-axis nodes 1, 2 of the second level in FIG. 2 are called interior nodes. Unlike leaves, interior nodes have no drawing primitives associated with them. In asimilar fashion to leaves, however, interior nodes may contain rendering data. Any rendering data applies recursively to all descendant nodes of an interior node, unless overridden by rendering data in a lower interior node or leaf.

COORDINATE TRANSFORMATIONS

As mentioned previously, each leaf of the graphical object structure has geometric data that exists in an intrinsic coordinate system i specific to the drawing element of that leaf, where i=1, . . . , N. In order to render a graphical objectonto a display, it is necessary to relate each intrinsic coordinate system i to that of an absolute coordinate system 0 of the display. The absolute coordinate system will be fixed and known in advance. For example, a typical choice would be to put (0,0) at the lower left corner of the display and to specify that x increases from left to right, y increases from bottom to top and one unit in both the x and y directions is, say, one inch. Relating each intrinsic coordinate system i gives intrinsiccoordinates meaning as absolute coordinates thereby allowing the component pieces to be properly generated on the display with respect to each other and the display. This mapping from intrinsic coordinate system i to the absolute coordinate system is acoordinate transformation T.sub.i performed for each leaf of the graphical object structure.

The present invention allows only affine or parallel-like coordinate transformations. That is, if (x.sup.i, y.sup.i) is a coordinate pair in intrinsic coordinate system i and (x.sup.0, y.sup.0) is a corresponding coordinate pair in the absolutecoordinate system, then the coordinate transformation between these pairs are related as follows:

where a.sup.i, b.sup.i, c.sup.i, d.sup.i, .tau..sub.x.sup.i and .tau..sub.y.sup.i represent initially unknown transformation parameters for intrinsic coordinate system i. Thus, it is necessary to determine the transformation parameters before thecoordinate transformations can be performed.

The process of determining the unknown transformation parameters in a coordinate transformation T.sub.i amounts to solving an optimization problem. This problem is difficult to solve because it is not linear. That is, to accomplish thetransformation, a pair of arbitrary, affinely-related coordinate systems are generically rotated with respect to each other and this leads to non-linear constraints. Generally, a non-linear transformation results in a shear, i.e., non-orthogonal,transformation which is undesirable because it does not permit formulation of the problem in a linear programming setting.

In accordance with the present invention, a simplifying assumption is made which allows the problem to be formulated in a linear programming setting. The assumption is that there be a non-shear, i.e., orthogonal, transformation such that allvectors in an intrinsic coordinate system i be rotated the same amount. This gives the non-shear condition a.sup.i b.sup.i +c.sup.i d.sup.i =0, as would be understood by a person skilled in the art. Under this condition, it is possible to determine aunique angle .theta. through which all vectors are rotated, such that the transformation equations (1) and (2) may be rewritten as:

where .theta..sup.i is an unknown rotation of the intrinsic coordinate system i with respect to the absolute coordinate system 0, .sigma..sub.x.sup.i and .sigma..sub.y.sup.i are unknown positive scale factors, .tau..sub.x.sup.i and.tau..sub.y.sup.i are unknown translation parameters, and .sigma..sub.x.sup.i and .sigma..sub.y.sup.i are unknown reflection factors having either 1 or -1 values.

GEOMETRIC CONSTRAINTS

The coordinate systems of the leaves in the graphical object structure 40 are linked, directly or indirectly, to each other and to the display through a set of geometric constraints assigned to the component pieces by a user. Each geometricconstraint has associated a set of algebraic relationships between parameters that define each of the non-shear coordinate transformations. The geometric constraints exist between two nodes of the graphical object, or between a node and the display. Note that if a geometric constraint involves an interior node, it carries with it an implication that all descendants of that interior node share the same geometric constraint.

Appendix C lists an exemplary set of geometric constraints utilized by the present invention. Each geometric constraint shown in Table III takes the form of "type, from-node, to-node, parameters" where type is the name of the geometricconstraint, from-node and to-node are integers between 0 and N indicating the coordinate systems to which the geometric constraint applies, and parameters are data for the geometric constraints. Each type of geometric constraint gives rise to a specificrelationship between the from-node and to-node coordinate systems, which in turn has precise algebraic relationships (also referred to herein as "constraint equations") that translate the geometric constraints into statements about unknown transformationparameters of the indicated coordinate transformation. The geometric constraints shown in Appendix C are briefly described below.

TABLE III ______________________________________ LINEAR GEOMETRIC CONSTRAINT TYPE EQUALITY CONSTRAINTS ______________________________________ exact i j .theta..sup.i = .theta..sup.j .sigma..sup.i.sub.x = .sigma..sup.j.sub.x .sigma..sup.i.sub.y = .sigma..sup.j.sub.y .rho..sup.i.sub.x = .rho..sup.j.sub.x .rho..sup.i.sub.y = .rho..sup.j.sub.y .tau..sup.i.sub.x = .tau..sup.j.sub.x .tau..sup.i.sub.y = .tau..sup.j.sub.y scale i j .alpha. .beta. .gamma. o .sigma..sup.i.sub.x.rho..sup.i.sub.x .alpha.cos.theta.. sup.i - .sigma..sup.i.sub.y .rho..sup.i.sub.y .beta.sin. theta..sup.i = .sigma..sup.j.sub.x .rho..sup.j.sub.x .gamma.cos.theta.. sup.j - .sigma..sup.j.sub.y .rho..sup.j.sub.y osin.theta ..sup.j .sigma..sup.i.sub.x .rho..sup.i.sub.x .alpha.sin.theta.. sup.i + .sigma..sup.i.sub.y .rho..sup.i.sub.y .beta.cos. theta..sup.i = .sigma..sup.j.sub.x .rho..sup.j.sub.x .gamma.sin.theta.. sup.j + .sigma..sup.j.sub.y .rho..sup.j.sub.y ocos.theta ..sup.j match i j .alpha. .beta. .gamma. o .sigma..sup.i.sub.x .rho..sup.i.sub.x .alpha.cos.theta.. sup.i - .sigma..sup.i.sub.y .rho..sup.i.sub.y .beta.sin. theta..sup.i + .tau..sup.i.sub.x = .sigma..sup.j.sub.x .rho..sup.j.sub.x .gamma.cos.theta.. sup.j - .sigma..sup.j.sub.y .rho..sup.j.sub.y osin.theta ..sup.j + .tau..sup.j.sub.x .sigma..sup.i.sub.x .rho..sup.i.sub.x .alpha.sin.theta.. sup.i + .sigma..sup.i.sub.y .rho..sup.j.sub.y .beta.cos. theta..sup.j + .tau..sup.i.sub.x = .sigma..sup.j.sub.x .rho..sup.j.sub.x .gamma.sin.theta.. sup.j + .sigma..sup.j.sub.y .rho..sup.j.sub.y cos.theta. .sup.j + .tau..sup.j.sub.x xexact i j .theta..sup.i = .theta..sup.j .sigma..sup.i.sub.x = .sigma..sup.j.sup.x .rho..sup.i.sub.x =.rho..sup.j.sup.x .tau..sup.i.sub.x = .tau..sup.j.sup.x xscale i j .alpha. .beta. .theta..sup.i = .theta..sup.j .sigma..sup.i.sub.x .vertline..alpha..vertline. = .alpha..sup.j.sub.x .vertline..beta..vertline. .rho..sup.i.sub.x sgn .alpha. =.rho..sup.j.sub.x sgn .beta. xmatch i j .alpha. .beta. .theta..sup.i = .theta..sup.j .sigma..sup.i.sub.x .rho..sup.i.sub.x .alpha. + .tau..sup.i.sub.x cos.theta..sup.i + .tau..sup.i.sub.x sin.theta..sup.i = .sigma..sup.j.sub.x .rho..sup.j.sub.x.beta. + .tau..sup .j.sub.x cos.theta..sup.j + .tau..sup.j.sub.x sin.theta. .sup.j yexact i j .theta..sup.i = .theta..sup.j .sigma..sup.i.sub.y = .sigma..sup.j.sub.y .rho..sup.i.sub.y = .rho..sup.j.sub.y .tau..sup.i.sub.y = .tau..sup.j.sub.y yscale i j .alpha. .beta. .theta..sup.i = .theta..sup.j .sigma..sup.i.sub.y .vertline..alpha..vertline. = .alpha..sup.j.sub.y .vertline..beta..vertline. .rho..sup.i.sub.y sgn .alpha. = .rho..sup.j.sub.y sgn .beta. ymatch i j .alpha. .beta. .theta..sup.i = .theta..sup.j .sigma..sup.i.sub.y .rho..sup.i.sub.y .alpha. - .tau..sup.i.sub.x sin.theta..sup.i + .tau..sup.i.sub.y cos.theta..sup.i = .sigma..sup.j.sub.y .rho..sup.j.sub.y .beta. - .tau..sup .j.sub.x sin.theta..sup.j +.tau..sup.j.sub.y cos.theta..sup.j xyexact i j .theta..sup.i = .PI./2 = .theta..sup.j .sigma..sup.i.sub.x = .sigma..sup.j.sub.y .rho..sup.i.sub.x = .rho..sup.j.sub.y .tau..sup.i.sub.x = .tau..sup.j.sub.y xyscale i j .alpha. .beta. .theta..sup.i -.PI./2 = .theta..sup.j .sigma..sup.i.sub.x .vertline..alpha..vertline. = .alpha..sup.j.sub.y .vertline..beta..vertline. .rho..sup.i.sub.x sgn .alpha. = .rho..sup.j.sub.y sgn .beta. xymatch i j .alpha. .beta. .theta..sup.i - .PI./2 = .theta..sup.j .sigma..sup.i.sub.x .rho..sup.i.sub.x .alpha. + .tau..sup.i.sub.x cos.theta..sup.i + .tau..sup.i.sub.y sin.theta..sup.i = .sigma..sup.j.sub.y .rho..sup.j.sub.y .beta. - .tau..sup .j.sub.y sin.theta..sup.j + .tau..sup.j.sub.y cos.theta..sup.j yxexact i j .theta..sup.i + .PI./2 = .theta..sup.j .theta..sup.i.sub.y = .sigma..sup.j.sub.x .rho..sup.i.sub.y = .rho..sup.j.sub.x .tau..sup.i.sub.y = .tau..sup.j.sub.x yxscale i j .alpha. .beta. .theta..sup.i + .PI./2 = .theta..sup.j .sigma..sup.i.sub.y .vertline..alpha..vertline. = .alpha..sup.j.sub.x .vertline..beta..vertline. .rho..sup.i.sub.y sgn .alpha. = .rho..sup.i.sub.x sgn .beta. yxmatch i j .alpha. .beta. .theta..sup.i + .PI./2 = .theta..sup.j .sigma..sup.i.sub.x.rho..sup.i.sub.x .alpha. - .tau..sup.i.sub.x sin.theta..sup.i + .tau..sup.i.sub.y cos.theta..sup.i = .sigma..sup.j.sub.y .rho..sup.j.sub.y .beta. + .tau..sup .j.sub.y cos.theta..sup.j + .tau..sup.j.sub.y sin.theta..sup.j aspect i j .alpha. .beta. .sigma..sup.i.sub.x .rho..sup.i.sub.x .beta.cos.theta..s up.i - .sigma..sup.i.sub.y .rho..sup.i.sub.y .beta. = for j = 0 only .sigma..sup.j.sub.x .rho..sup.j.sub.x sin.theta..sup.j + .sigma..sup.j.sub.y .rho..sup.j.sub.y .alpha. cos.theta..sup.j rotate i j .alpha. .theta..sup.i + .alpha. = .theta..sup.j (mod ______________________________________ .PI.)

Geometric constraints of the present invention can be derived in such a way as to allow all rotation and reflection parameters, .theta..sup.i, .rho..sub.x.sup.i and .rho..sub.y.sup.i, to be solved first using known transformation parameters forthe absolute coordinate system 0 of the display. In a preferred embodiment of the present invention, the transformation parameters for the display device are as follow:

Once the transformation parameters .theta..sup.i, .rho..sub.x.sup.i and .rho..sub.y.sup.i are solved, the remaining transformation parameters can be solved in a linear programming setting. Solving a linear programming problem generally involveslinear equalities, linear inequalities and a cost function. The following describes the set up of the linear programming problem to enable calculation of the remaining transformation parameters and coordinate transformations.

EXACT, SCALE, MATCH AND RELATED CONSTRAINTS

A first geometric constraint given in Appendix C is referred to as the exact constraint. When the coordinate systems of two nodes are identical, this condition is expressed through an exact constraint. Equations for the constraint indicate thateach parameter associated with an intrinsic coordinate system i is equal to the corresponding parameter for a coordinate system j. Thus, the rotation, scale, reflection and translation parameters are set equal for both coordinate systems i and j by thefollowing constraint equations for exact:

The exact constraint has a significant role in constraint resolution. As mentioned earlier, an interior node and its descendants share the same coordinate system whenever the interior node is involved in at least one geometric constraint. Inother words, an exact constraint can be said to exist among the descendants. It necessarily follows that if interior node i is related to another i interior node (or leaf) j by some geometric constraint C, all descendants of interior node i will also berelated to the interior node (or leaf) j by the same geometric constraint C. Additionally, all descendants of interior node j will also be related to all descendants of interior node i by the geometric constraint C. The net result is that the geometricconstraint C exists only between leaves or between a leaf and the display without the user specifying the same geometric constraint C for each descendant. This point can be illustrated using the graphical object structure 40 depicted in FIG. 2. Forexample, a user assigns a geometric constraint C between interior nodes 1 and 2. Applying the above principle, descendant nodes 4, 5 and 6 and descendants 7, 8 and 9 can be said to share the same coordinate systems as interior nodes 1 and 2,respectively. Therefore, descendants 4, 5 and 6 are related to descendants 7, 8 and 9 by the same geometric constraint C. This can be simplified by saying that nodes 4 and 7 are related by constraint C, and that each node pair 4 and 5, 4 and 6, 7 and 8,7 and 9, is related by an "equal" constraint.

A general scaling between two coordinate systems can be specified with a geometric constraint in the form of scale i j .alpha. .beta. .gamma. .delta.. This constraint indicates that .alpha. horizontal run of .alpha. and a vertical rise of.beta. in intrinsic coordinate system i corresponds to a horizontal run .gamma. and vertical rise .delta. in coordinate system j. The following constraint equations for scale relate units of length along the x- and y-axes in intrinsic coordinatesystem i to equal units of length along the x- and y-axes, respectively, in coordinate system j:

Note that this geometric constraint may only be realized in the context of the non-shear condition.

The coordinates of a single position in two coordinate systems can be established with a geometric constraint in the form of match i j .alpha. .beta. .gamma. .delta.. This means that a point (.alpha., .beta.) in intrinsic coordinate system iis the same spot in the absolute coordinate system as a point (.gamma.,.delta.) in coordinate system j. This condition may be expressed by the following constraint equations:

Other related constraints, the xexact, xscale and xmatch constraints, are analogous to the exact, scale and match constraints. The difference is that the former set of geometric constraints only apply in the horizontal direction in the twocoordinates systems. This implies that the x-axis in the two systems are parallel, and because of the non-shear condition, are rotated by the same amount from the horizontal direction of the display, i.e., .theta..sup.i =.theta..sup.j.

The xexact constraint describes the two x-axes in the i and j coordinate systems not only to be parallel, but also exactly coincident. This means that the two x-axes have the same origin, same unit size and same positive direction. Thus, theconstraint equations state that the rotation, scale, reflection and translation are the same only along the x-axis for coordinate systems i and j.

The xscale constraint only demands that an interval of length .alpha. along the x-axis in intrinsic coordinate system i is the same as an interval of length .beta. along the x-axis in coordinate system j. The xmatch constraint matches the point.alpha. along the x-axis in intrinsic coordinate system i to point .beta. along the x-axis in coordinate system j.

The yexact, yscale and ymatch constraints are exactly analogous to the xexact, xscale and xmatch constraints except that the former set of geometric constraints operates on the y-axis of the two coordinate systems instead of the x-axis.

When the x-axis of intrinsic coordinate system i is parallel to the y-axis of coordinate system j, then the coordinate systems need to be rotated .pi./2 with respect to each other such that the x-axis and y-axis in intrinsic coordinate system iare parallel to the x-axis and y-axis in coordinate system j, respectively. The geometric constraints xyexact, xyscale and xymatch are designed to do just such. The convention made here is that intrinsic coordinate system i is rotated .pi./2 more thancoordinate system j.

Conversely, the geometric constraints yxexact, yxscale and yxmatch rotate intrinsic coordinate system i .pi./2 less than coordinate system j.

ASPECT CONSTRAINT

An important control in statistical graphics is the aspect ratio. The aspect ratio is the proportion of the height to the width of a certain box or, equivalently, the slope of a certain line segment, such as the diagonal of the box beginning atthe lower left corner and ending at the point (1, 1). The aspect constraint states that a line segment of slope .alpha. in intrinsic coordinate system i and a line segment of slope .beta. in coordinate system j must have the same actual slope inabsolute coordinates when drawn. However, this constraint is often too general and leads to equations that are non-linear in the unknown parameters. Therefore, coordinate system j is restricted to be the absolute coordinate system, i.e., j=0. Theconstraint equation for aspect (for j =0) is as follows:

ROTATE CONSTRAINT

A final geometric constraint in Appendix C is the rotate constraint. This geometric constraint states that intrinsic coordinate system i must be rotated by an angle .alpha. more than coordinate system j. Note that the non-shear condition isneeded in order for this constraint to be applicable. The constraint equation for rotate is as follows:

Using the constraint equations and the known transformation parameters .theta..sup.0, .rho..sub.x.sup.0 and .rho..sub.y.sup.0 for the display, the values for the transformation parameters .theta..sup.i, .rho..sub.x.sup.i and .rho..sub.y.sup.i maybe determined in advance and independently of the remaining unknown transformation parameters. Additionally, the constraint equations provide the linear equalities for solving the remaining unknown transformation parameters .sigma..sub.x.sup.i,.sigma..sub.y.sup.i, .tau..sub.x.sup.i, .tau..sub.y.sup.i in a linear programming setting.

BOUNDING BOXES

In some cases, the constraint equations provided by the geometric constraints are enough to solve the linear programming problem to compute all of the initially unknown transformation parameters and specify where every component piece is placedon the display. In other cases, this is not enough and, at the very least, an overall scaling is missing. In the latter cases, bounding boxes are used to define linear inequality constraints for solving the linear programming problem. Each leaf of thegraphical object structure has a rendering bounding box associated with it. The rendering bounding box is the smallest rectangular box oriented with the axes of the absolute coordinate system enclosing the rendered object, which includes all the inkaround the geometric points. The left edge of the rendering bounding box is the edge that extends farthest in the negative x-axis direction. Likewise, the right edge, top edge and bottom edge of the rendering bounding box are the edges that extendfarthest in the positive x-axis direction, positive y-axis direction and negative y-axis direction, respectively.

Referring to FIG. 3, there is illustrated a plot of a mark 80 positioned at coordinate (1, 1) in the absolute coordinate system of the display. The mark 80 extends a width of 1.sup.iz units to the left of coordinate (1, 1), where 1.sup.izrepresents the absolute units that the rendered item z=1, . . . , M of drawing element i that extends in the negative x-axis direction from the coordinate point. The width 1.sup.iz depends on the rendering data, such as point size, font, text rotationand text adjust. The manner in which 1.sup.iz is determined is well known in the art. Noting that 1.sup.iz is expressed in absolute units, wherein the geometric data must be also be expressed as absolute coordinates and using equation (3), the leftedge of the rendering bounding box for any item z can be expressed in terms of a point along the x-axis as:

The display also has a bounding box in which all rendering bounding boxes must fit. The left edge of the display bounding box is X.sub.min, i.e., most negative point along the x-axis. X.sub.min is usually equal to zero, corresponding to theleft edge of the display, but margins are allowable such that X.sub.min,>0. Since the rendering bounding boxes must fit within the display bounding box, then the left edge of the rendering bounding box must be greater or equal to the left edge of thedisplay bounding box. This relationship can be expressed by the following linear inequality:

Likewise, the right, bottom and top edges of the rendering bounding box must fit within the right, bottom and top edges of the display bounding box and are expressed by the following linear inequalities, respectively:

where r.sup.iz, b.sup.iz and t.sup.iz represent the absolute units the rendered item z of the drawing element i extends in the positive x-axis direction, negative y-axis direction and positive y-axis direction, respectively, from thecorresponding coordinate points. X.sub.max, Y.sub.min and Y.sub.max represent the right, bottom and top edge of the display bounding box, respectively. Thus, each rendered drawing element has associated, at least, a set of four values (x.sup.iz,y.sup.iz, 1.sup.iz), (x.sup.iz, y.sup.iz, r.sup.iz), (x.sup.iz, y.sup.iz, b.sup.iz) and (x.sup.iz, y.sup.iz, t.sup.iz), referred to as triples. These specific sets of triples are collectively referred to herein as a set of four (x.sup.iz, y.sup.iz,w.sup.iz) triples, where w.sup.iz corresponds to rendered width and height information, i.e., 1.sup.iz, r.sup.iz, b.sup.iz and t.sup.iz. There is a set of four (x.sup.iz, y.sup.iz, w.sup.iz) triples for each item z in the intrinsic coordinate system iof a leaf. An important thing to note is that the data for all these linear inequalities implicitly defines the rendering bounding box without actually computing the coordinate transformation T.sub.i.

REDUCTION OF LINEAR INEQUALITIES

The number of linear inequalities that arise from the above example and are described with respect to FIG. 3 is potentially quite large. Consider, for example, a leaf that consists of 1,000 marks being plotted, i.e., there are 1,000 items z. Therendering bounding box for this leaf consists of 4,000 (x.sup.iz, y.sup.iz, w.sup.iz) triples giving rise to 4,000 linear inequalities. There is, however, a way to reduce the number of (x.sup.iz, y.sup.iz, w.sup.iz) triples and linear inequalities byapplying the concept of convex hull, which is well-known to a person of ordinary skill in the art.

Consider reducing the number of (x.sup.iz, y.sup.iz, w.sup.iz) triples corresponding to the left edge of the rendering bounding box. Using equation (6) and letting f.sup.iz =x.sup.iz .rho..sub.x.sup.i cos.theta..sup.i, g.sup.iz =-y.sup.iz.rho..sub.y.sup.i sin.theta..sup.i and h.sup.iz =-w.sup.iz, the following equation is obtained:

Note that f.sup.iz, g.sup.iz and h.sup.iz (also collectively referred to herein as "(f, g, h) triples") comprise transformation parameters, which are solvable in advance and independently of the remaining unknown transformation parameters. Forgiven values of .sigma..sub.x.sup.i, .sigma..sub.y.sup.i and .tau..sub.x.sup.i, a left edge of the rendering bounding box will be determined by the item z that potentially minimizes the equation .sigma..sub.x.sup.i f.sup.iz +.sigma..sub.y.sup.i g.sup.iz+h.sup.iz 30 .tau..sub.x.sup.i for the intrinsic coordinate system i of a leaf. This indicates that the plane with normal (.sigma..sub.x.sup.i, .sigma..sub.y.sup.i, 1) passing through (f.sup.i, g.sup.i, h.sup.i) has all the (f , g, h) triples on or toone side of it, which implies that (f.sup.i, g.sup.i, h.sup.i) is an extreme point or on the boundary of the convex hull of the (f, g, h) triples.

Since .sigma..sub.x.sup.i and .sigma..sub.y.sup.i are constrained to be positive, this is a special kind of extreme point called a "least extreme point", that is, a vertex of a "least face" of the boundary of the convex hull of the (f, g, h)triples or a face whose outward pointing normal has all non-positive components. The convex hull for determining the items z of the drawing elements i that potentially minimize .sigma..sub.x.sup.i x.sup.iz .rho..sub.x.sup.i cos.theta..sup.i-.sigma..sub.y.sup.i y.sup.iz .rho..sub.y.sup.i sin.theta..sup.i -.tau..sub.x.sup.i -1.sup.iz (i.e., left edge of the rendering bounding box) has the points (x.sup.iz .rho..sub.x.sup.i cos.theta..sup.i, -y.sup.iz .rho..sub.y.sup.i sin.theta..sup.i,-1.sup.iz). Similarly, the convex hull for determining the items z of the drawing elements i that: potentially maximize x.sup.iz .sigma..sub.x.sup.i .rho..sub.x.sup.i cos.theta..sup.i -y.sup.iz .sigma..sub.y.sup.i .rho..sub.y.sup.i sin.theta..sup.i+.tau..sub.x.sup.i +r.sup.iz (i.e., right edge of the rendering bounding box) has the points (-x.sup.iz .rho..sub.x.sup.i cos.theta..sup.i, y.sup.iz .sigma..sub.y.sup.i .rho..sub.y.sup.i sin.theta..sup.i, -r.sup.iz); potentially minimize x.sup.iz.sigma..sub.x.sup.i .rho..sub.x.sup.i sin.theta..sup.i +y.sup.iz .sigma..sub.y.sup.i .rho..sub.y.sup.i cos.theta..sup.i +.tau..sub.y.sup.i -b.sup.iz (i.e., bottom edge of the rendering bounding box) has the points (x.sup.iz .rho..sub.x.sup.isin.theta..sup.i, y.sup.iz .rho..sub.y.sup.i cos.theta..sup.i, -b.sup.iz); and potentially maximize x.sup.iz .sigma..sub.x.sup.i .rho..sub.x.sup.i sin.theta..sup.i +y.sup.iz .sigma..sub.y.sup.i .rho..sub.y.sup.i cos.theta..sup.i +.tau..sub.y.sup.i+t.sup.iz (i.e., top edge of the rendering bounding box) has the points (-x.sup.iz .rho..sub.x.sup.i sin.theta..sup.i, -y.sup.iz .rho..sub.y.sup.i cos.theta..sup.i, -t.sup.iz).

Applying the concept of the convex hull reduces any set of (x.sup.iz, y.sup.iz, w.sup.iz) triples to a smaller, equivalent set by selecting only those points for which the corresponding (f.sup.i, g.sup.i, h.sup.i) triple is a least extreme pointof all the (f, g, h) triples. It will usually be the case that the reduction is quite dramatic. A common example is when .theta..sup.i =0 and all the w.sup.iz are equal. The original sets of four (x.sup.iz, y.sup.iz, w.sup.iz) triples are reduced tojust one set of four (x.sup.iz, y.sup.iz, w.sup.iz) triple, thus leaf i will only have four linear inequalities.

SOLVING FOR REMAINING TRANSFORMATION PARAMETERS

Using the above-described geometric constraints and linear inequalities, the linear programming problem described previously is now solvable. Applying a cost function and using the solved values for the .theta..sup.i, .rho..sub.x.sup.i and.rho..sub.y.sup.i parameters, the linear equalities from the geometric constraints and the linear inequalities defining the rendering bounding boxes, a linear programming solver, such as that described in section 10.8 of "Numerical Recipes in C" byPress, et. al., published by Cambridge University Press in 1988, can compute the remaining unknown transformation parameters .sigma..sub.x.sup.i, .sigma..sub.y.sup.i, .tau..sub.x.sup.i and .tau..sub.y.sup.i, such that all the transformation parametersare simultaneously satisfied. A goal of the present invention is to make the pieces of the graphical object as large as possible on the display while satisfying all the constraints. A cost function meeting these requirements simply maximizes the sum ofthe widths and heights of the rendering bounding boxes.

Once the coordinate transformations for each drawing element of an intrinsic coordinate system i are computed, the graphical object can be rendered onto a display device. The manner in which graphical objects are rendered is well known in theart. See, for example, "Computer Graphics: Principles and Practice, Second Edition" by Foley and Van Dam, published by Addison Wesley in 1990.

EXEMPLARY IMPLEMENTATION

Referring to FIGS. 4-4c, an exemplary flow diagram is shown for computing coordinate transformations according to the present invention. For illustration purposes, the execution of the coordinate transformations will be described with respect tothe bar graph 30 of FIG. 1.

A first step 100 in carrying out the present invention method is to initialize the linear programming problem. Before step 100 can be performed, a user must first relate the component pieces of the bar chart 30 using the geometric constraints. From FIGS. 1 and 2, it can be seen that the x-axes for node 1 (i.e., x-axis) and node 3 (i.e., bars) are exactly the same. The constraint "xexact 1 3" is assigned to describe this relationship between the nodes 1 and 3. However, the y-axes of leaf 1and leaf 3 are not the same, rather a point 0 along the y-axis of node 1 matches a point 10 along the y-axis of node 3. Thus, "ymatch 1 3 0 10" is assigned. Similarly, other constraints are assigned as follows to describe the remainder of the plot:"yexact 2 3"; "yscale 1 0 1 12/72"; "xmatch 2 3 0 0"; and "xscale 2 0 1 12/72".

From these six geometric constraints, eighteen linear constraint equations are produced. Thus, these six geometric constraints relate the coordinate systems of each leaf directly or indirectly to the absolute coordinate system of the display. Note that, in this example, leaves 4-9 did not need to be specifically assigned geometric constraints. This is because their ancestor interior nodes have constraints which tied them to other leaves in the graphical object structure. Once the geometricconstraints have been assigned, the coordinate transformation can now be computed. Advantageously, unlike the prior art techniques, the present invention does not require the user to specify where each component piece or leaf will be plotted on thedisplay in order to compute the transformation parameters necessary to perform the coordinate transformation T.sub.i.

Once the component pieces of the bar chart 30 are related using the geometric constraints, the initialization of step 100 can be executed. In step 100, the present invention is initialized. Specifically, initialization of the present inventionmethod is accomplished by reading in data for, e.g., the six assigned geometric constraints (and eighteen associated constraint equations), drawing instructions associated with each leaf and the known values for the display. Generally, for each leaf, acoordinate transformation T.sub.i is required. Each coordinate transformation T.sub.i of the present invention has seven initially unknown transformation parameters: .sigma..sub.x.sup.i , .sigma..sub.y.sup.i, .rho..sub.x.sup.i, .rho..sub.y.sup.i,.tau..sub.x.sup.i, .tau..sub.y.sup.i and .theta..sup.i. Since there are seven leaves in this example, i.e., leaves 3-9, a total of forty-nine initially unknown transformation parameters need to be solved such that the corresponding constraint equationsand linear inequalities are simultaneously satisfied. Upon solving for the transformation parameters, the coordinate transformations T.sub.i can be performed.

In steps 120-160, the number of initially unknown transformation parameters are reduced by simplifying the geometric constraints. In step 120, all the leaves and all interior nodes involved in geometric constraints are marked or noted, thusleaves 3-9 and interior nodes 1 and 2 are marked. Note that although leaves 4-9 were not assigned geometric constraints, they are involved in geometric constraints as a result of their relationship to ancestor nodes. In step 130, descendants of markedinterior nodes are unmarked leaving only leaf 3 and interior nodes 1 and 2 marked. In step 140 the coordinate transformations for the marked nodes U.sub.j are labeled, where the subscript j=1, . . . , M represent the marked node, thus nodes 1, 2 and 3are marked U.sub.1, U.sub.2 and U.sub.3, respectively.

In step 150, the closest marked ancestor j of leaf i is found and the leaf coordinate transformation T.sub.i are set equal to U.sub.j. This step applies the principle that the existence of a geometric constraint involving an interior node alsomeans that all descendants of that interior node share the same coordinate system as the interior node. It necessarily follows that all descendants share the same coordinate transformation as the interior node. Therefore, coordinate transformationsT.sub.4, T.sub.5 and T.sub.6 (for leaves 4, 5 and 6, respectively) are set equal to U.sub.1 and T.sub.7, T.sub.8 and T.sub.9 (for leaves 7, 8 and 9, respectively) are set equal to U.sub.2. Since the closest marked ancestor for leaf 3 is itself, thenT.sub.3 is set equal to U.sub.3. The number of coordinate transformations T.sub.i have been reduced from seven (number of leaves) to three (number of marked nodes). Thus, the number of initially unknown parameters have been reduced from forty-nine totwenty-one.

In order to be consistent with step 150, all geometric constraints involving unmarked nodes must be replaced with marked nodes. Specifically, the from-node and to-node parts of each geometric constraint are changed in step 160 by replacingfrom-node and to-node with the node number of its closest marked ancestor or itself if it is already marked. In the example using FIGS. 1 and 2, there are no unmarked nodes specified in any of the geometric constraints. If there were, such as xexact 53, then step 6 would have replaced all mention of unmarked node 5 with its closest marked ancestor interior node 1, thus xexact 5 3 becomes xexact 1 3.

The constraint equations used for solving rotations .theta..sup.i and .theta..sup.j (hereinafter referred to as "rotation equations") take one of two forms: (i) .theta..sup.i =.alpha. or (ii) .theta..sup.i =.theta..sup.j +.PHI., where .alpha. is a known value and .PHI. is either 0 or .+-..pi./2. Using the known rotation .theta..sup.0 for the absolute coordinate system (i.e., .theta..sup.0 =0) and the rotation equations from step 100, the rotations .theta..sup.1, .theta..sup.2 and.theta..sup.3 can be computed in advance and independently of the remaining unknown parameters. In step 170, each type (i) rotation equation is processed by substituting .alpha. with its known value. Subsequently, in step 180 each type (ii) rotationequation is processed by substituting .theta..sup.i and .theta..sup.j with values of .theta..sup.i and .theta..sup.j solved by the previous step(s). In step 180a, it is determined whether all .theta..sup.i and .theta..sup.j have been computed. If not,steps 170 and 180 are repeated until all .theta..sup.i and .theta..sup.j have been solved. Otherwise, the present invention proceeds to step 190. Applying these steps to the example results in the following: .theta..sup.1 =.theta..sup.2 =.theta..sup.3=0.

The constraint equations involving reflections .rho..sub.x.sup.i and .rho..sub.y.sup.i (hereinafter referred to as "reflection equations") take one of three forms: (i) .rho..sub.x.sup.i =.+-..rho..sub.x.sup.j (or .rho..sub.y.sup.i=.+-..rho..sub.y.sup.j); (ii) .rho..sub.x.sup.i =.+-..rho..sub.y.sup.j (.rho..sub.y.sup.i =.+-..rho..sub.x.sup.j); or (iii) .rho..sub.x.sup.i =.+-.1 (or .rho..sub.y.sup.i =.+-.1). Using the rotation equations defined by the geometric constraints appliedin this example, along with the knowledge that .rho..sub.x.sup.0 =.rho..sub.y.sup.0 =0, each .rho..sub.x.sup.i, .rho..sub.x.sup.j, .rho..sub.y.sup.i and .rho..sub.y.sup.i are solved in steps 190, 200 and 200a in a method analogous to solving for.theta..sup.i and .theta..sup.j in steps 170, 180 and 180a. Specifically, in step 190, each type (i) and (ii) rotation equation is processed by substituting for .rho..sub.x.sup.i, .rho..sub.x.sup.j, .rho..sub.y.sup.i and .rho..sub.y.sup.j with the valueobtained from the type (iii) rotation equation. Subsequently, in step 200, each type (i) and type (ii) rotation equation is processed by substituting .rho..sub.x.sup.i, .rho..sub.x.sup.j, .rho..sub.y.sup.i and .rho..sub.y.sup.j with values of.rho..sub.x.sup.i, .rho..sub.x.sup.j, .rho..sub.y.sup.i and .rho..sub.y.sup.j solved by the previous step(s). In step 200a, a check is performed to determine whether all .rho..sub.x.sup.i, .rho..sub.x.sup.j, .rho..sub.y.sup.i and .rho..sub.y.sup.jparameters have been computed. If not, steps 190 and 200 are repeated until all .rho..sub.x.sup.i, .rho..sub.x.sup.j, .rho..sub.y.sup.i and .rho..sub.y.sup.j parameters have been solved. Otherwise, the present invention proceeds to step 210. Applyingsteps 190, 200 and 200a to the example result in the following: .rho..sub.x.sup.1 =.rho..sub.x.sup.3 =.rho..sub.y.sup.2 =.rho..sub.y.sup.3 =1 and .rho..sub.x.sup.2 =.rho..sub.y.sup.1 =-1.

At this point in the example, nine of the twenty-one initially unknown parameters have been solved. Thus, twelve unknown parameters remain: .sigma..sub.x.sup.1, .sigma..sub.y.sup.1, .tau..sub.x.sup.1, .tau..sub.y.sup.1, .sigma..sub.x.sup.2,.sigma..sub.y.sup.2, .tau..sub.x.sup.2, .tau..sub.y.sup.2, .sigma..sub.x.sup.3, .sigma..sub.y.sup.3, .tau..sub.x.sup.3 and .tau..sub.y.sup.3. However, there are now only eight constraint equations remaining, not including the rotation and reflectionequations. These constraint equations now become the linear equalities in a linear programming problem for the twelve remaining unknown parameters.

In steps 210-220, the linear inequalities needed to solve the linear programming problem are defined. As mentioned earlier, the rendering bounding boxes of leaf i should fit within the display to allow the entire plot to be generated on thedisplay. There is a fixed bounding box in the display coordinate system with the lower left corner (X.sub.min, Y.sub.min) and the upper right corner (X.sub.max, Y.sub.max). This is intended to represent the visible display area. If the renderingbounding box for each leaf i is written in absolute coordinates, then the following must be satisfied:

However, when there are z items in a leaf i, it is not always clear which item z extends farthest to the left, right, top or bottom. Therefore, in step 210 the (x.sup.iz, y.sub.iz, w.sup.iz) triples for each item z in leaf i must be determinedusing the geometric and rendering data contained in the drawing instructions. Upon completion of step 210, step 220 is performed to find the (x.sup.iz, y.sup.iz, w.sup.iz) triples that are least extreme points on the boundary of the convex hull, as iswell known in the art, thus reducing the number of candidates. From each leaf i, at least four linear inequalities are produced defining the relationship between the rendering box for the leaf and the display bounding box.

The consequence of steps 100-220 is that there are now a set of linear equalities and inequalities in the remaining unknown transformation parameters .sigma..sub.x.sup.i, .sigma..sub.y.sup.i, .tau..sub.x.sup.i and .tau..sub.y.sup.i =1, . . . ,M. These linear equalities and inequalities are solved simultaneously while maximizing the cost function, i.e., .sigma..sub.x.sup.1 +.sigma..sub.y.sup.1 +.sigma..sub.x.sup.2 +.sigma..sub.y.sup.2 +. . .+.sigma..sub.x.sup.N +.sigma..sub.Y.sup.N, in step230. Maximizing the cost function allows the transformation parameters to be solved such that no visible area of the display is unused. The problem is now a typical linear programming problem which can be solved using any of well-known linearprogramming solver. Unlike the techniques of the prior art, the transformation parameters and coordinate transformations are not solved until the graphical object is ready to be rendered by the present invention, thereby providing a more flexiblemethodology used in the creation of graphical objects without requiring pre-specification of display area while maximizing its utilization.

Although the present invention has been described in considerable detail with reference to certain preferred embodiments, other embodiments are also applicable. Therefore, the spirit and scope of the appended claims should not be limited to thedescription of the preferred embodiments contained herein.

* * * * *

US Patent:  5825368