Edge to edge blends

Abstract: A method and apparatus for creating a blend from one arbitrary edge (20) to a second arbitrary edge (21) in a computer graphic image creation is disclosed. A color along each of the edges (20, 21) is determined. A parametric equation is then formed for a color of each pixel (23) within the area bounded by the edges (20, 21), and the parametric equation is solved to derive a color for each of the pixels (23). In another aspect, after determining the color along each edge (20, 21), each of the edges (20, 21) is vectorised into corresponding line segments (31 to 34). Pairs of the line segments (31 to 34) are then matched to form polygons (29) having a defined color at each of vertices. A color is then determined for each pixel of the polygon (29) from the defined colors of the vertices.

Description: 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. 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's Photo shop and Illustrator (trade mark) and Quark'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. WO92/21096 describes an apparatus for processing data defining boundaries of an object, to allow display of the object. The apparatus includes means for dividing the object into strips. Strip lines can then be vectorised by straight lines that do not cross pixel boundaries to form quadrilaterals. The colour associated with the vertices of each quadrilateral are then used in interpolation to generate pixel colour values. A first aspect of the invention provides 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 colour along each of said edges; vectorising each of said edges into corresponding line segments; characterised by matching pairs of said linear line segments from each of said edges in accordance with their relative distance along each of said edges so as to form polygons having a defined colour at their vertices and determining a colour for each pixel of said polygon from said defined colour of said vertices. A second aspect of the invention provides 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: first color determination means for determining a colour along each of said edges; vectorisation means for vectorising each of said edges into corresponding line segments; characterized by line segment matching means for matching pairs of said linear line segments from each of said edges in accordance with their relative distance along each of said edges so as to form polygons having a defined colour at their vertices; and second colour determination means for determining a colour for each pixel of said polygon from said defined colour of said vertices. A third aspect of the invention provides a method of constructing computer graphical objects, the method comprising the steps of: providing a plurality of interactively editable splines; defining each of said splines to have a corresponding spline colour; and creating a blend between pairs of said splines further comprising the steps of: determining the colour along each of said splines; vectorising each of said splines into corresponding line segments; characterized by: matching pairs of said line segments from each of said splines in accordance with their relative distance along each of said splines so as to form polygons having a defined colour at their vertices; and determining a colour for each pixel of said polygon from said defined colour of said vertices. A fourth aspect of the invention provides apparatus for constructing computer graphical objects comprising: interactive editable spline generation means for providing a plurality of interactively editable splines; spline colour defining means for defining each of said splines to have a corresponding spline colour; and spline pair blend creation means for creating a blend between pairs of said splines, wherein a blend is created being substantially from the spline colour of a first member of said pair to the spline colour of a second member of said pair, wherein said spline pair blend creation means further comprises: determination means for determining a colour along each of said splines; vectorising means for vectorising each of said splines into corresponding line segments; characterized by: segment pair matching means for matching pairs of said line segments from each of said splines in accordance with their relative distance along each of said splines to as to form polygons having a defined colour at their vertices; and pixel colour determination means for determining a colour for each pixel of said polygon from said defined colour of said vertices. 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. 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. 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, and y(u,t) = p y (t) + (q y (t) - p y (t))u. 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, Massachusetts. 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'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. 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's method, which is likely to converge after one or two iterations. The formula for Newton's method is as follows: Au 2 + Bu + C = 0 ⇒ u i+1 = (Au i 2 - C) / (2Au i + B), 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'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 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. 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) operating system or later 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 Figure 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.

Claims: A method of creating a blend from a first arbitrary edge (20) to a second arbitrary edge (21) in a computer graphic image creation system, said method comprising the steps of: determining a colour along each of said edges (20, 21); vectorising each of said edges into corresponding linear line segments (31; 32); matching pairs of said linear line segments (31, 32) from each of said edges in accordance with their relative distance along each of said edges so as to form polygons (26) having a defined colour at their vertices (33, 34) and determining a colour for each pixel of said polygons (26) from said defined colour of said vertices (33, 34). The method according to claim 1 wherein said line segment matching step further comprises matching pairs of line segments (31, 32) in accordance with their parametric distance along each of said edges (20, 21). The method according to claim 1 wherein said step of determining a colour for each pixel comprises dividing each polygon (29) into regions of constant colour (40, 41, 42, 43) and rendering each region of constant colour. The method according to claim 3, whereby a number of regions into which each polygon is divided is dependent upon a difference in colour between the two edges (20, 21). The method according to claim 1 comprising forming a parametric equation for a colour of each pixel within an area bounded by said edges, and solving said parametric equation to derive a colour for each of said pixels. The method according to claim 5, wherein said step of forming a parametric equation for a colour of each pixel comprises forming a parametric equation for an opacity of each pixel. The method according to any preceding claim wherein said step of determining a colour along each of said edges (20, 21) comprises determining an opacity along each of said edges and said step of forming polygons with defined colour at their vertices comprises forming polygons with a defined opacity at their vertices. An apparatus for creating a blend from a first arbitrary edge to a second arbitrary edge in a computer graphic image creation system, said apparatus comprising: first colour determination means (1404) for determining a colour along each of said edges; vectorisation means (1406) for vectorising each of said edges into corresponding line segments; line segment matching means (1408) for matching pairs of said linear line segments from each of said edges in accordance with their relative distance along each of said edges so as to form polygons having a defined colour at their vertices; and second colour determination means (1410) for determining a colour for each pixel of said polygon from said defined colour of said vertices. The apparatus according to claim 8 wherein said line segment matching means (1408) further comprises parametric matching means for matching pairs of line segments in accordance with their parametric distance along each of said edges. The apparatus according to claim 8 wherein said second colour determination means for determining a colour for each pixel comprises polygon dividing means for dividing the polygon into regions of constant colour, and rendering means for rendering each region of constant colour. The apparatus according to claim 10, wherein said polygon dividing means are responsive to a difference in colour between the two edges, wherein the number of regions into which the polygon is divided is dependent upon said difference in colour. The apparatus according to claim 8 comprising parametric equation formulation means for forming a parametric equation for a colour of each pixel within an area bounded by said edges; and parametric equation solution means for solving said parametric equation to derive a colour for each of said pixels. The apparatus according to claim 12, wherein said parametric equation solution means is operable to derive an opacity as said colour for each of said pixels. The apparatus according to any one of claims 8 to 13, wherein said first colour determination means (1404) is operable to determine an opacity along each of said edges and said line segment matching means (1408) is operable to form polygons having a defined opacity at their vertices. A method of constructing computer graphical objects, said method comprising the steps of: providing (2102) a plurality of interactively editable splines; defining (2104) each of said splines to have a corresponding spline colour; and creating (2106) a blend between pairs of said splines further comprising the steps of: determining the colour along each of said splines; vectorising each of said splines into corresponding line segments; matching pairs of said line segments from each of said splines in accordance with their relative distance along each of said splines so as to form polygons having a defined colour at their vertices; and determining a colour for each pixel of said polygon from said defined colour of said vertices. The method according to claim 15, wherein said matching step further comprises matching pairs of line segments in accordance with their parametric distance along each of said splines. The method according to claim 15, wherein said step of determining a colour for each pixel comprises dividing said polygon into regions of constant colour and rendering each region of constant colour. The method according to claim 15, wherein the number of said first plurality of splines is three, and a first and second of said splines have substantially the same spline colour, and a first of said pairs comprises a blend from the first of said splines to a third of said splines, a second of said pairs comprises a blend from a second of said splines to said third of said splines. The method according to claim 15, wherein a second plurality of said splines have the same spline colour. The method according to claim 19, wherein the number of said second plurality of splines is four, and a first and second of said splines have substantially the same spline colour, and a first of said pairs comprises a blend from the first of said splines to a third of said splines, a second of said pairs comprises a blend from said first of said splines to said second of said splines, and a third of said pairs comprises a blend from said second of said splines to a fourth of splines. The method according to claim 15, wherein at least one of said splines forms an internal area and said internal area is also defined to have the spline colour of said at least one of said splines. The method according to claim 15, wherein said step of defining each of said splines to have a corresponding spline colour comprises defining each of said splines to have a corresponding opacity. The method according to claim 22, wherein said step of creating a blend comprises creating a blend of degree of opacity being substantially from the opacity of the spline colour of the first member of the pair to the opacity of the spline colour of the second member of said pair. An apparatus for constructing computer graphical objects comprising: interactive editable spline generation means (2204) for providing a plurality of interactively editable splines; spline colour defining means (2206) for defining each of said splines to have a corresponding spline colour; and spline pair blend creation means (2208) for creating a blend between pairs of said splines, wherein a blend is created being substantially from the spline colour of a first member of said pair to the spline colour of a second member of said pair, wherein said spline pair blend creation means (2208) further comprises: determination means for determining a colour along each of said splines; vectorising means for vectorising each of said splines into corresponding line segments; segment pair matching means for matching pairs of said line segments from each of said splines in accordance with their relative distance along each of said splines to as to form polygons having a defined colour at their vertices; and pixel colour determination means for determining a colour for each pixel of said polygon from said defined colour of said vertices. The apparatus as claimed in claim 24, wherein the spline colour defining means further includes a spline opacity defining means for defining the opacity associated with each of the corresponding spline colour; and the spline pair blend creation means is further adapted to create a blend in the opacity associated with the corresponding spline colour, wherein a blend in opacity is substantially from the opacity of the first spline member of the pair to the opacity associated with the second spline member of said pair. The apparatus according to claim 24 or claim 25, wherein said spline colour defining means (2204) is operable to define each of said splines to have a corresponding opacity as said corresponding colour. The apparatus according to claim 26, wherein said determination means is operable to determine an opacity of an edge as said colour, and said segment pair matching means is operable to define polygons having a defined opacity at their vertices as said defined colour. A computer program operable to configure a computer to perform a method according to any one of claims 1 to 7 and claims 15 to 23. A program carrier medium carrying the computer program of claim 28.

Inventors: LONG TIMOTHY MERRICK, POLITIS GEORGE, LONG, TIMOTHY MERRICK, POLITIS, GEORGE
Applicants: CANON KK, CANON KABUSHIKI KAISHA
Application year: 1995
Main classification: G06T15
IPC codes: G06T15