Patent Publication Number: US-6339433-B1

Title: Creating a blend of color and opacity between arbitrary edges

Description:
FIELD OF THE INVENTION 
     The present invention relates generally to the provision of “blends” from a first data value to a second data value and, in particular, to methods and apparatuses for the creation of complex blends within images in computer graphic imaging systems. 
     BACKGROUND ART 
     In modern computer graphic imaging systems, it is often necessary to create blends of color or opacity. The color or opacity data at a first data point takes on a first value and at a second data point takes on a second value, with the data points between the first data value and the second data value having an aesthetically pleasing monotonically increasing or decreasing series between the first data value and second data value. 
     With the increasing levels of computer power available to the general public in the form of desk top workstations and personal computers, there has come an increasing level of complexity in the application programs available for the creation of complex computer graphical images. Hence, products such as Adobe&#39;s Photo shop and Illustrator (trade mark) and Quark&#39;s Express (trade mark), allow, through a process of interactive editing, the creation of complex images. These images can be of great complexity and can comprise a number of overlapping layers with differing layers possibly having various degrees of transparency. 
     With the need to create complex and striking images, there is also the need to create such images rapidly and inexpensively. Further, there is a general need to be able to create complex computer graphical objects having slowly varying blends of an extremely complex nature. 
     SUMMARY OF THE INVENTION 
     It is an object of the present invention to provide a method and apparatus for the creation of complex blends of data. 
     In accordance with a first aspect of the present invention, there is provided a method of creating a blend from one arbitrary edge to a second arbitrary edge in a computer graphic image creation system, the method comprising the steps of: 
     determining a color along each of the edges; 
     forming a parametric equation for a color of each pixel within the area bounded by the edges; and 
     solving the parametric equation to derive a color for each of the pixels. 
     In accordance with a second aspect of the present invention, there is provided a method of creating a blend from a first arbitrary edge to a second arbitrary edge in a computer graphic image creation system, the method comprising the steps of: 
     determining a color along each of the edges; 
     vectorising each of the edges into corresponding line segments; 
     matching pairs of the line segments from each of the edges so as to form polygons having a defined color at their vertices; and 
     determining a color for each pixel of the polygon from the defined color of the vertices. 
     Preferably, the matching step further comprises matching pairs of line segments in accordance with their relative distance along each of the edges. Alternatively, the matching step further comprises matching pairs of line segments in accordance with their parametric distance along each of the edges. 
     In accordance with a third aspect of the present invention there is provided an apparatus for creating a blend from one arbitrary edge to a second arbitrary edge in a computer graphic image creation system, the apparatus comprising: 
     edge color determination means for determining a color along each of the edges; 
     parametric determination means for forming a parametric equation for a color of each pixel within the area bounded by the edges coupled to the edge determination means; and 
     pixel color deriving means for solving the parametric equation to derive a color for each of the pixels coupled to the parametric determination means. 
     In accordance with a fourth aspect of the present invention there is provided an apparatus for creating a blend from a first arbitrary edge to a second arbitrary edge in a computer graphic image creation system, the apparatus comprising: 
     edge color determination means for determining a color along each of the edges; 
     edge vectorising means for vectorising each of the edges into corresponding line segments coupled to the edge color determination means; 
     segment pair matching means for matching pairs of the line segments from each of the edges so as to form polygons having a defined color at their vertices coupled to the edge vectorising means; and 
     pixel color determination means for determining a color for each pixel of the polygon from the defined color of the vertices coupled to the segment pair matching means. 
     In accordance with a fifth aspect of the present invention there is provided a method of constructing computer graphical objects, the method comprising the steps of: 
     providing a plurality of interactively editable splines; 
     defining each of the splines to have a corresponding spline color; 
     creating a blend between pairs of the splines, the blend being substantially from the spline color of a first member of the pair to the spline color of a second member of the pair. 
     In accordance with a sixth aspect of the present invention there is provided a method of constructing computer graphical objects, the method comprising the steps of: 
     providing a plurality of interactively editable splines; 
     defining each of the splines to have a corresponding spline color; and 
     creating a blend between pairs of the splines further comprising the steps of: 
     determining a color along each of the splines; 
     forming a parametric equation for a color of each pixel within the area bounded by the splines; and 
     solving the parametric equation to derive a color for each of the pixels. 
     Typically, the spline color includes an associated opacity and the degree of opacity can take on values from fully opaque to fully transparent. Preferably the associated opacity includes a blend of degree of opacity being substantially from the opacity associated with the spline color of the first member of the pair to the opacity associated with the spline color of the second member of said pair. 
     In accordance with a seventh aspect of the present invention there is provided a method of constructing computer graphical objects, the method comprising the steps of: 
     providing a plurality of interactively editable splines; 
     defining each of the splines to have a corresponding spline color; and 
     creating a blend between pairs of the splines further comprising the steps of: 
     determining the color along each of the splines; 
     vectorising each of the splines into corresponding line segments; 
     matching pairs of the line segments from each of the splines so as to form polygons having a defined color at their vertices; and 
     determining a color for each of the polygon from the defined color of the vertices. 
     In accordance with a eighth aspect of the present invention there is provided an apparatus for constructing computer graphical objects comprising: 
     interactive editable spline generation means for providing a plurality of interactively editable splines; 
     spline color defining means for defining each of the splines to have a corresponding spline color coupled to the interactive editable spline generation means; and 
     spline pair blend creation means for creating a blend between pairs of the splines coupled to the spline color defining means, wherein a blend is created being substantially from the spline color of a first member of the pair to the spline color of a second member of the pair. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     Embodiments of the present invention will now be described with reference to the accompanying drawings, in which: 
     FIGS. 1 to  3  illustrate different forms of complex blends; 
     FIG. 4 illustrates the parametric form of a pixel within two edges; 
     FIG. 5 illustrates the process of vectorisation of spline edges; 
     FIG. 6 illustrates the process of matching a first series of vectorised edges; 
     FIG. 7 illustrates forming quadrilaterals from vectorised spline edges; 
     FIG. 8 illustrates dividing a quadrilateral into a series of areas of constant color; 
     FIG. 9 illustrates a process for the determining of a color of a quadrilateral; 
     FIG. 10 is a flow diagram illustrating a method of creating complex blends within images according to the preferred embodiment; 
     FIG. 11 is a flow diagram illustrating a method of creating complex blends within images according to further embodiment of the invention; 
     FIG. 12 is a block diagram illustrating a general purpose computer; 
     FIG. 13 is a block diagram illustrating an apparatus for creating complex blends within images implemented in accordance with the method of the preferred embodiment; 
     FIG. 14 is a block diagram illustrating another apparatus for creating complex blends within images implemented in accordance with the method of the further embodiment; 
     FIG. 15 illustrates an example of a complex object to be created in accordance with a still further embodiment of the invention; 
     FIG. 16 illustrates the format of splines utilised to construct the object of FIG. 15; 
     FIGS. 17 and 18 illustrate the process of construction of the object of FIG. 15; 
     FIGS. 19 and 20 illustrate extensions of yet another embodiment of the invention to other forms of splines; 
     FIG. 21 is a flow diagram of the method of constructing computer graphical objects according to the still further embodiment; 
     FIG. 22 is a block diagram illustrating an apparatus for constructing computer graphical objects in accordance with the method of FIG. 21; and 
     FIG. 23 illustrates an extension of the embodiment in respect of FIGS.  19  and  20 . 
    
    
     DETAILED DESCRIPTION 
     A series of complex blends are illustrated in FIGS. 1 to  3 . An object  1  is shown in FIG. 1 having an outer boundary  2  and an inner boundary  3 . It is desired that, for example, the outer boundary  2  is red in color and the inner boundary  3  is yellow; the colors intermediate of the two boundaries take on an aesthetically pleasing gradient from one edge to the next. For example, if boundary  3  is yellow, then when moving outwardly towards boundary  2 , a series of orange-yellow pixels is encountered first, followed by a series of orange pixels, followed by a series of red-orange pixels, before arriving at the boundary which is defined to be red. A series of gradient lines  4 , 5  are provided to show the color contours between the two edges; the contour lines  4 , 5  are of constant color. 
     A second example  7  is shown in FIG. 2 of a required gradient between edges  8  and  9 . In this example, it is desired to derive a transparency or opacity gradient, whereby the edge  8  is fully opaque and the edge  9  is fully transparent; the pixels in between take on a blend from fully opaque to fully transparent. Contour lines  10 , 11  are again provided to indicate pixels of constant opacity. 
     A third example  14  is shown in FIG. 3 of the blending process. The object  14  has a first edge  15  and a second edge that has degenerated to a single point  16 . Again, it is desired that the pixels in between take on a gradient between the two values at edges  15  and  16 . For example, the contour lines  17  and  18  form lines of constant color. 
     System Overview 
     A first method of implementation will now be described with reference to FIG.  4 . Two splines  20 ,  21  are shown in FIG. 4 that are of an arbitrary nature. It is assumed, for purposes of discussion of the preferred embodiment, that graphical objects are stored within a computer system in the form of splines. Hence, it is desired to form a blend between two arbitrary splines  20 ,  21 . In the first method, to determine a color at an arbitrary point (x,y) in the area between splines  20 ,  21 , the splines  20 ,  21  are parametrically defined in a conventional manner to take on (x,y) values comprising (p x (t), p y (t)) and (q x (t), q y (t)); the parametric form of the spline takes the standard form of a cubic in t, with t ranging from 0 to 1. Any point (x,y)  23  in the area between the two splines  20 ,  21  can then be parametrically defined to be equivalent to a point (u,t), with u ranging from 0 to 1, according to the following equations: 
     
       
           x ( u,t )= p   x ( t )+( q   x ( t )−p x ( t )) u,   (1) 
       
     
     and 
     
       
           y ( u,t )= p   y ( t )+( q   y ( t )− p   y ( t )) u.   (2) 
       
     
     If the splines  20 ,  21  are defined to each be of a constant color, the color at any point (x,y) is solely dependent on u. Thus, it is necessary to solve Equations (1) and (2) for u given values of x and y. However, the solution of Equations (1) and (2), which involve cubic parametric equations, is difficult for any other than linear functions of p and q. Further, the color solution obtained is defined in terms of ‘t’ which is merely an artefact of the spline representation utilised to represent the edges rather then any representation of the visual appearance of the area between the edges. 
     In the preferred embodiment, in order to simplify the calculation of a color at each point between the splines  20 ,  21 , both of the spline edges  20 ,  21  are first vectorised into straight-line segments. The process of vectorising a spline into straight-line segments is known to those skilled in the art of programming for computer graphics. For example, two methods are described in the text  Computer Graphics. Principles and Practice  written by Foley et al, Second Edition, and published in 1990 by Addison-Wesley Publishing Company Inc., Reading, Mass. A first method, described at pages 487-488 of the Foley text, divides the spline into parametrically equally-spaced portions which results in an approximation of the spline by short-line segments. A second method of vectorising a spline is described at pages 511-514 of the Foley text, and includes recursive sub-division of portions of a spline. The sub-division results in a series of line segments. 
     In an exaggerated format, the vectorisation of the splines  20 ,  21  into a series of line segments  31 ,  32  is shown in FIG. 5, for example. Once the two splines  20 ,  21  have been vectorised into corresponding line segments  31 ,  32 , the ends of each line segment of each spline  20 ,  21  are matched with one another. A number of methods can be utilised in matching the ends of line segments. A first method is to parametrically match the endpoints of each line segment  31 ,  32  along the two splines  20 ,  21 , such that, the point (p x (t), p y (t)), which corresponds to a given value t, at the end of one line segment on the vectorisation of one edge  20  is matched with the point (q x (t), q y (t)) on the other edge  21 . A similar process is then carried out for the endpoints of each line segment of the vectorisation of edge  21 . However, this approach utilises a function defined in ‘t’, which is merely an artefact of the spline representation used to represent the edges, rather than the visual appearance of the area between the edges. 
     The preferred method of matching edges is by means of relative lengths along the line segments of each edge  20 ,  21 . The length of the line segments of each of the edges  20 ,  21  shown in FIG. 6 are first calculated. Starting with edge  20 , each end  33 , for example, of each line segment  31  is examined, and a relative distance along the line segments approximating edge  20  is calculated. Subsequently, a corresponding point  34 , which has the same relative distance along the line segments representing edge  21 , is calculated and the points  33  and  34  are matched. This process is then repeated for each line segment of edge  21 . 
     The same process is repeated for the edge  21  in FIG. 7 resulting in the conversion of the area between the two edges into a series of quadrilaterals  26 . Therefore, the vectorisation of both edges and the subsequent matching of points along the vectorisation reduces the problem from a cubic parametric one to a collection of adjacent quadrilaterals  26 . In each of the quadrilaterals  26 , Equations (1) and (2) hold independently, and the parametric functions of p and q have been reduced to piecewise linear functions in ‘t’. The quadrilaterals  26  are hereinafter referred to using the term “slivers”. Once the area between two splines has been converted to a series of slivers (assuming it is desired to render the area between the two splines), two methods can be practised. 
     The preferred form of rendering a ‘sliver’  29  into a corresponding pixel form is shown in FIG.  8 . As the color value at each of the corner points of sliver  29  is known, areas of constant color  40  to  43  can be determined by dividing each side  45 ,  46  of the sliver  29  into a number of equal intervals. The number of intervals depends on the difference in color between the two edges  47 ,  48 . Each area  40  to  43  consists of a region of constant color and can be independently scan converted using conventional techniques. Where the final image is to be rendered by means of multiple-color passes in a full color imaging system, the above process may be carried out using the separate color components of each edge, which will often result in substantially larger areas  40  to  43  of constant color. 
     An alternative form of rendering each sliver shown in FIG. 9 is to determine which slivers  29 , for example, intersect a current scan line  27  and the pixels between the edges  28 , 25  of the sliver  26 . The color of each pixel between the edges  28 , 25  is then determined by interpolation. The single sliver  29  has vertex coordinates as shown in FIG.  9 . The constants a x , a y  and b x  and b y  are determined from the vectorisation of the spline into line segments and subsequent formation of slivers. In order to test whether a pixel scan line intersects a sliver, it is only necessary to determine the minimum and maximum x coordinates of the four points defining each sliver  29  and to test whether or not a scan line  27  lies within the sliver  29 . 
     Given a pixel  30 , having co-ordinates (x,y), the value of u on which the pixel&#39;s color depends is the solution of the following quadratic equation: 
     
       
         [( x   2   −x   1 )( b   y   −a   y )−( y   2   −y   1 )( b   x   −a   x )] u   2   +   
       
     
     
       
         [a y ( x   2   −x   1 )− a   x ( y   2   −y   1 )−( b   y   −a   y )( x−x   1 )+ 
       
     
     
       
         ( b   x   −a   x )( y−y   1 )] u+[a   x ( y−y   1 )+ a   y ( x−x   1 )]=0.  (3) 
       
     
     Equation (3) need not be calculated for each pixel as it is possible to use the solution for u(x,y) as an initial estimate for deriving the color for the next pixel u(x+1,y) using Newton&#39;s method, which is likely to converge after one or two iterations. The formula for Newton&#39;s method is as follows: 
     
       
           Au   2   +Bu+C= 0 =&gt;u   i+1 =( Au   i   2   −C )/(2 Au   i   +B ),  (4) 
       
     
     where A, B and C are the usual corresponding portions of the quadratic equation set out in Equation (3). However, it should be noted that with Equation (4), the denominator may approach zero such that the error produced by Newton&#39;s method would be unsatisfactory. In this case, a separate check can be implemented to determine the value of the denominator, and the value of pixel (x,y+1) can be determined from first principles by solving Equation (3). 
     While the foregoing embodiments have been described with reference to blending colors, it will be apparent to a person skilled in the art that color can include opacity and therefore the methods can be practised using opacity, or in combination with blends of color as well, at any point in the area between two splines. Likewise, the following embodiments are generally described with reference to color values to simplify description of the invention. However, it will be apparent to a person skilled in the art that the embodiments of the invention are equally applicable to opacity without departing from the scope and spirit of the invention. 
     The methods and apparatuses according to the embodiments of the invention can be practiced using a general purpose computer  1202  (ie., a personal computer) shown in FIG. 12, for example. As is well known in the art, such a computer  1202  typically comprises a central processing unit  1210  coupled to a memory device for storing data and instructions to operate the central processing unit  1210 . For example, general purpose computers commonly include random access memory (RAM) for temporarily storing data and instructions, as well as secondary storage devices (e.g., hard disc drives HDD and floppy disc drives FDD) for storing data and instructions either temporarily or permanently. 
     As shown in FIG. 12, the processing unit  1210  is coupled to a bus  1222 , which is well known in the art. Such a bus  1222  typically includes an address bus, data bus, control signals, and the like. In turn, random access memory  1212 , read only memory  1214 , hard disc drive/floppy disc drive (HDD/FDD)  1216 , video interface  1218 , and Input/Output (I/O) interface  1220  are coupled to the bus  1222 . The video interface  1218  provides output to display/monitor  1204 . Likewise, I/O interface  1220  is connected to a reproduction device  1206 . Reproduction device  1206  may include laser beam printers, plotters, dot matrix printers, and the like. Accordingly, methods and apparatuses for creating complex blends and images according to the embodiments of the invention, as will be described, can be implemented using such a general purpose computer. 
     A flowchart of a method for creating a blend of color and/or opacity from one arbitrary edge to a second arbitrary edge in a computer graphic image creation system according to the preferred embodiment is shown in FIG.  10 . The method comprises the following steps. In step  1002 , the color along each of the edges is determined. In step  1004 , a parametric equation is formed for a color (an opacity) of each pixel within the area bounded by the edges. In step  1006 , the parametric equation is solved to derive a color (opacity) for each of the pixels. 
     An apparatus  1320  for creating a blend from one arbitrary edge to a second arbitrary edge and a computer graphic image creation system is illustrated in FIG.  13 . The apparatus  1320  receives input  1302  consisting of a number of edges. The input  1302  is provided to edge color (opacity) determination means  1304  for determining a color (opacity) along each of the edges. The output of edge color (opacity) determination means  1304  is provided to parametric determination means  1306  which form a parametric equation for a color (opacity) of each pixel within the area bounded by the edges. The output of parametric determination means  1306  is provided to pixel color (opacity) deriving means  1308 . Pixel color deriving means  1308  solves the parametric equation provided by parametric determination means  1306  to derive a color (opacity) for each of the pixels and produces the output image  1310 . 
     A flowchart of a method for creating a blend color and/or opacity from a first arbitrary edge to a second arbitrary edge in a computer graphic image creation system according to a second embodiment is shown in FIG.  11 . The method comprises the following steps. In step  1102 , a color along each of the edges is determined. In step  1104 , each of the edges is vectorised into corresponding line segments. In step  1106 , pairs of the line segments from each of the edges are matched so as to form polygons having a defined color at their vertices. In step  1108 , a color for each pixel of the polygon is determined from the defined color of the vertices. 
     Preferably, step  1106  further comprises matching pairs of line segments in accordance with their relative distance along each of the edges. 
     Preferably, step  1106  further comprises matching pairs of line segments in accordance with their parametric distance along each of the edges. 
     Preferably, step  1108  comprises dividing the polygon into regions of constant color and rendering each region of constant color. 
     An apparatus  1420  for creating a blend from a first arbitrary edge to a second arbitrary edge in a computer graphic image creation system is illustrated in FIG.  14 . The apparatus  1420  receives input  1402  consisting of a number of arbitrary edges. The input data  1402  is provided to edge color determination means  1404 . Edge color determination means  1404  determines a color along each of the edges and its output is provided to edge vectorising means  1406 . Edge vectorising means  1406  vectorises each of the edges to corresponding line segments. The output of edge vectorising means  1406  is provided to segment pair matching means  1408 . Segment pair matching means  1408  matches pairs of the line segments from each of the edges to form polygons having a defined color at their vertices. The output of segment pair means  1408  is provided to pixel color determination means  1410 . Pixel color determination means  1410  determines a color for each pixel of the polygon from the defined color of the vertices. The output of pixel color determination means  1410  is provided as the output image  1412 . 
     Preferably, segment pair matching means  1408  matches pairs of line segments in accordance with their relative distance along each of the edges. Alternatively, segment pair matching means  1408  matches pairs of line segments in accordance with their parametric distance along each of the edges. 
     Preferably, pixel color determination means  1410  divides the polygon into regions of constant color and renders each region of constant color. 
     Multiple Edges 
     Further embodiments of the invention provide a system for creating a complex blend of an object using interactive input devices, such as a computer mouse and keyboard in conjunction with a video display unit on a standard computer system such as a personal computer running the Microsoft Windows 3.1 (trade mark) or latter or other standard graphical user interface operating systems known to those skilled in the art of creating complex computer graphics application packages. 
     Referring now to FIG. 15, there is shown a simple example of a computer graphical object  1501  created utilising the preferred embodiment. The simple example of computer object  1501  consists of two border areas  1502 ,  1503  having a white or near white color, and a central area  1504  having a darker color. It will be readily apparent to those skilled in the art that the lighter and darker colors are arbitrarily chosen and could be any colors able to be created by a computer graphics application package. Further, it will be apparent to a person skilled in the art that the following embodiments of the invention are equally applicable to opacity. The actual colors used depends on the type of device utilised, with common computer systems allowing for 24-bit color, which allows the display of over  16  million separate colors. Further, a color can also have transparency components as is known in the art. 
     The first step in creating such a complex object  1501 , in accordance with this further embodiment, is to create an outline format consisting of a number of splines, created in the conventional way. 
     Three splines  1507 ,  1508  and  1509  are shown in FIG.  16 . Each spline, e.g.  1507 , has a number of control points  1510  to  1513 . These control points can be individually moved under a graphics application program and, in addition, can have their tangential interactive editing portions  1514  individually altered. The display and editing of spline data is well known to those skilled in the art, and is explained in detail in Chapter 11 of the text  Computer Graphics: Principles and Practice , written by Foley, Van Dam, et. al., Second Edition, published in 1990 by the Addison-Wesley Publishing Company Inc. 
     As described above, embodiments of the invention provide a system for creating an arbitrary blend between a first spline, having a first predetermined color, and a second spline, having a second predetermined color. Spline  1507  can be independently defined to be of a first color (in this example, white). Spline  1508  is defined to be a second color (in this particular instance, black) and spline  1509  can be defined to be the first color (again, white). Therefore, by applying one of the methods set out above independently to the two splines  1507  and  1508  and second to the two splines  1508  and  1509 , the effect illustrated in FIG. 15 can be achieved. This is perhaps better illustrated in FIG. 17, where there is shown the computer graphical object  1501  of FIG. 15 in addition to the three splines  1507  to  1509  utilised in creating the object  1501 . 
     Further, turning now to FIG. 18, the computer graphical object  1501  of FIG. 15 is illustrated in addition to the associated construction splines  1507 ,  1508  and  1509 . In this particular view, the spline control points, e.g.  1510  to  1512 , are also illustrated. The preferred form of user interface for the system for creating objects such as computer graphical object  1501  is to allow for the interactive manipulation of the various spline control points, e.g.  1510  to  1513 , of each spline  1507  to  1509 . The splines  1507  to  1509  can then be manipulated in the conventional manner and, after manipulation, the process as described previously can be applied independently to each of the splines  1507 , 1508  and  1508 , 1509  to produce a corresponding graphical object  1501 . 
     The principles for creating complex objects as outlined above can be readily extended to other arrangements. For example, turning now to FIG. 19, a more complex system having four splines  1520  to  1523  can just as easily be created. Each of the splines  1520  to  1523  can be independently defined to have a predetermined color and the process described above can be applied to the pairs of splines independently. The matching pairs are splines  1520  and  1521 ,  1521  and  1522 , and  1522  and  1523 . The splines  1520  to  1523  can be interactively and independently manipulated as hereinbefore described. As an example, if the spline  1520  is defined to be the color white, spline  1521  defined to be the color black, spline  1522  also defined to be the color black and spline  1523  defined to be the color white, then the result in object  1524  will comprise a blend from white to black from spline  1520  to  1521  followed by a band of black from splines  1521  to  1522  and then a second blend from black to white from splines  1522  to  1523 . 
     A further refinement is illustrated in FIG. 20, wherein the object  1529  is constructed from two splines  1530 , 1531 . The two splines  1530 , 1531  can again be interactively edited and the resulting object comprising a blend from spline  1530  to  1531 . The internal area  1533  of spline  1531  can then be defined as having a constant color, preferably being the same as that of the spline  1531 . The resulting object  1529  produced was found to have quite pleasing characteristics. 
     A further embodiment of the present invention is described with reference to FIG. 23 which illustrates a blend of opacity (or a transparency component) in the color. A first computer graphical object  1600  is constructed, for example, of splines  1602 ,  1603  and  1604 . A second graphical object  1601  and a chequered background  1605  is shown juxtaposed behind the first graphical object  1600  to illustrate a blend in the degree of opacity. The splines  1602 ,  1603  and  1604  can be interactively and independently manipulated as described previously. 
     In this example, it is desired that the spline  1602  is white in color and fully opaque, spline  1603  is fully transparent and spline  1604  is also white in color and fully opaque. For the sake of clarity, the splines  1602 ,  1603  and  1604  have been shown in FIG. 23 as exaggerated dashed lines to indicate the position of the splines  1602 ,  1603  and  1604  on the graphical object respectively. Intermediate spline  1602  and spline  1603 , the first computer graphical object  1600  takes on a blend from fully opaque white at spline  1602  to fully transparent at spline  1603 . Similarly, between spline  1603  and spline  1604  the first graphical object  1600  takes on a blend from fully transparent at the spline  1603  to fully opaque white at spline  1604 . Preferably, each spline  1602 ,  1603 ,  1604  is of a predetermined color and opacity, and intermediate each pair of splines  1602 ,  1603  and  1604  a blend of both color and opacity is achieved. 
     A flow diagram of a method of constructing computer graphical objects is illustrated in FIG.  21 . In step  2102 , a plurality of interactively editable splines are provided. In step  2104 , each of the splines is defined to have a corresponding spline color. In step  2106 , a blend is created between the pair of splines. The blend is substantially from the spline color of a first member of the pair to the spline color of a second member of the pair. Preferably, the number of splines is three, and a first and second of the spline has substantially the same color. A first of the pairs comprises a blend from the first of the splines to a third of the splines. A second of the pairs comprises a blend from a second of the splines to the third of the splines. 
     Preferably a second plurality of the splines have the spline color. 
     Preferably, the number of splines is four, and a first and second of the splines are substantially the same spline color. A first of the pairs comprises a blend from the first of the splines to a third of the splines. A second of the pairs comprises a blend from the first of the splines to the second of the splines. A third of the pairs comprises a blend from the second of the splines to a fourth of the splines. 
     Preferably, at least one of the splines forms an internal area and the internal area is also defined to have the spline color of the at least one of the splines. 
     It will be obvious to those skilled in the art that a myriad of complex objects can be created by providing a system of splines which can be interactively edited in the normal manner, with each spline having a predefined color (opacity) and rendering a blend between predetermined pairs of splines. By allowing the splines to be continuously interactively edited, and re-rendering the splines after each editing, a system for the creation of extremely complex objects results. 
     Step  2106  can be implemented in accordance with the method of creating a blend illustrated in either FIG. 10 or FIG.  11 . 
     As described above, the method of this further embodiment of the invention can be implemented using a general purpose computer. An apparatus for constructing computer graphical objects in accordance with this method is illustrated in FIG.  22 . The apparatus  2220  can be implemented using a general purpose computer, for example. A user provides input  2202  to the apparatus  2220 , and in particular to interactive editable spline generation means  2204 . Interactive editable spline generation means  2204  receives the user input to provide a plurality of interactively editable splines. The output of interactive editable spline generation means  2204  is provided to spline color defining means  2206 , which defines each of the splines to have a corresponding spline color. The output of spline color defining means  2206  is provided to spline pair blend creation means  2208 . Spline pair blend creation means  2208  creates a blend between pairs of the splines in which the blend is substantially from the spline color of a first member of the pair to the spline color of a second member of the pair. The output of spline pair blend creation means  2208  is an image  2210 , which is the output of the apparatus  2220 . As described above, spline pair blend creation means  2208  can be implemented using the apparatus  1320  of FIG. 13 or apparatus  1420  of FIG.  14 . 
     The foregoing describes only a small number of embodiments of the present invention with minor modifications, and further modifications, obvious to those skilled in the art, can be made thereto without departing from the scope of the invention.