Method and apparatus for generating a set of signals representing a curve

Information

  • Patent Grant
  • 4686633
  • Patent Number
    4,686,633
  • Date Filed
    Monday, September 10, 1984
    40 years ago
  • Date Issued
    Tuesday, August 11, 1987
    37 years ago
Abstract
Disclosed is encoding data representing knots on an outline loop defined relative to a coordinate plane, for producing a display image of said outline and decoding responsive to the interrelationship of said knots on said outline loop, and imaging said outline loop responsive to said decoded data involving selecting sets of coordinates on said outline loop, to represent said knots, establishing a successive order of said knots, encoding said knots in a data order indicative of said knot order, encoding a complete information set of (i) data indicative of the coordinate distances and interknot angles between adjacent knots, comparing the relative positions of successive knots to at least a first interknot criterion responsive to comparing, (i) producing a first indication that a set of said successive knots is within said criterion, or (ii) producing a second indication that a set of said successive knots is outside said criterion, and (i) responsive to said first indication imaging said outline loop in the form of a smooth continuous curve, or (ii) responsive to said second indication, imaging said outline loop in the form of a straight line, between said set of successive knots.
Description
Claims
  • 1. A method of creating a data base on storage media including encoding data in a computer memory, the data representing knots on an outline loop defined relative to a coordinate plane, for producing a display image of said outline and then decoding the data responsive to the interrelationship of said knots on said outline loop, and, using the data to image said outline loop responsive to said decoded data, the method including the steps of:
  • (a) selecting sets of coordinates on said outline loop, to represent said knots,
  • (b) establishing a successive order of said knots,
  • (c) encoding said knots in a data order in computer memory indicative of said knot order, and said step (c), of encoding Serial No.: 649,088 including the step (d), of encoding a complete information set of data indicative of the coordinate distances and interknot angles between adjacent knots,
  • (e) comparing the relative positions of successive knots to at least a first interknot criterion.
  • (f) responsive to said step (e), of comparing, (i) producing a first indication that a set of said successive knots is within said criterion, or (ii) producing a second indication that a set of said successive knots is outside said criterion, and
  • (g) (i) responsive to said first indication, imaging said outline loop on a display in the form of a smooth continuous curve, or (ii) responsive to said second indication, imaging said outline loop in the form of a straight line, between said set of successive knots.
  • 2. The method of claim 1, wherein said interknot criterion is a predetermined distance between said knots or a predetermined interknot angle between said knots and said step (f), (i) of producing said first indication, produces said first indication in response to said interknot distance between said knots or said interknot angle between said knots being less than a predetermined interknot distance or interknot angle respectively, and
  • said step (f), (ii) of producing said second indication produces said second indication in response to interknot distance or said interknot angle being greater than a predetermined interknot distance or interknot angle, respectively.
  • 3. The method of claim 2, wherein said step (g), (ii) includes the step (1) of linear interpolation of coordinate points between said successive knots to produce coordinates on a straight line outline and where said coordinates are located on a coordinate system having a first coordinate direction and second coordinate direction and encoded in a machine readable data words of a radix "r", corresponding to the order and value of designated positions in said data words, comprising the steps of:
  • (i) encoding a first data word of "N" positions corresponding to the distance between the first and second successive knots in the said first coordinate direction and placing said first data word into a first machine location,
  • (ii) encoding a second data word of "M" bits corresponding to the distance between said first and second successive knots in said second coordinate direction and placing said second data word into a second machine location,
  • (iii) determining the number of available positions, between the most significant position of said first data word and the most significant position of said first machine location, available for shifting said first data word in a first direction of the most significant positions of said first machine location.
  • 4. The method of claim 3 wherein said step, (viii), of reducing the scale includes the step, (x) of truncating said data words of step (vii).
  • 5. The method of claim 4, wherein said step (x), of truncating includes the step (xii), of shifting said data words of step (vii), by the number of positions shifted in step, (iv).
  • 6. The method of claim 3 wherein said step, (viii), of reducing the scale includes the step (xi), of rounding said data words of step, (vii).
  • 7. The method of claim 6 wherein said step (xi), includes the step (xiii), of shifting said data words of step, (vii), by the number of positions shifted in step, (iv), less one position, to reduce the scale of said words and adding a data word corresponding to a rounding value, to said respective data words and shifting said respective data words an additional position to round said data words to the scale of the first data word of step, (i), prior to said shifting of step, (iv).
  • 8. The method of claim 2, wherein said step (g),
  • (i) includes the step (h), of generating a series of signals representing nodes on a outline loop curve partially defined by a set of successive knots, with said knots defining the end points of said curve outline loop and encoding said node signals as data for use when representing said curve outline loop, and
  • (i)for a first knot of said successive knots, (Z.sub.a), representing a first end point of said curve outline loop, deriving a first angle, indicative of the average of the interknot angles between said first knot (Z.sub.a), and selected related knots and encoding as data in computer memory, signals indicative of said first angle,
  • (ii) at a second of said successive knots (Z.sub.b), representing a second end point of said first curve outline loop, establishing a second angle for said first curve outline loop and encoding as data, in the computer memory, signals indicative of said second angle,
  • (iii) establishing a compiler in computer memory, which compiler generates locus points for compiling data according to a predetermined cubic parametric polynomial function between a parameter "t", said knots and angles at said end points of a curve segment and the locus of a curve segment,
  • (iv) establishing a limited range "R" of values for said parameter "t" in the compiler,
  • (v) in the computer memory, applying said signals indicative of said locations of said first and second knots of said first curve outline loop, to said compiler,
  • (vi) applying said signals indicative of said first and second angles of said first curve outline loop to said compiler,
  • (vii) applying a signal indicative of a distinct selected value of said parameter "t" within said range "R", to said compiler to derive a signal indicative of a respective node location on said first curve outline loop,
  • (viii) repeating step (vi) by applying signals indicative of additional distinct selected values of said parameter "t", within said range "R", to derive a plurality of signals indicative of respective node locations on said locus of said first curve segment for respective distinct selected values of said parameter "t", and
  • (ix) encoding said signals derived in step (vii) and (viii) in a data base in memory for later sorting to represent said first curve segment for later generation of a visual representation of said curve by using said data signals directly to control a display process and visually display the curve pattern.
  • 9. The method of claim 8 including the step (i), of repeating steps (h), (i) through (h), (ix) for at least a second curve outline loop.
  • 10. The method of claim 8, wherein said step (h), (iii) of establishing said compiler includes the step (h), (x) of establishing said compiler in a Hermite form.
  • 11. The method of claim 8, wherein step (h), (i) and (h), (ii) includes the step (h), (xi) of referencing said first and second angles of said first curve segment, to a first of said interknot angles between said second knot (Z.sub.b) , and said first knot (Za).
  • (iv) shifting said first data word by a maximum number of positions, equal to the said number of available positions in said first direction and the number of positions corresponding to the number of significant positions used to encode said second data word, and increasing the scale of said first data word by a scale factor related to the number of said positions shifted,
  • (v) deriving a third data word indicative of said second data word in said second machine location divided into said first data word shifted according to step (d),
  • (vi) encoding data words indicative of the coordinate of said straight line in said second coordinate direction,
  • (vii) for respective ones of said data words encoded according to step (f), encoding multiples of said third data word, which are related to a respective coordinate in said first coordinate direction, on said straight line,
  • (viii) reducing the scale of said multiples of said third data words produced in step (vi), to the scale of the first data word of step (i), prior to said shifting of step (iv),
  • (ix) encoding said third data words produced in step (viii), with respective coordinates in said second coordinate direction to produce said coordinates on said straight line.
FIELD OF THE INVENTION

This application is related to applications with Ser. Nos. 649,040, 649,011, 649,041, 649,012, 649,021, 649,096, and 649,095, all filed on the same day as this application and all assigned to Allied Corporation. This invention relates to the field of encoding data related to a variable size character for access and display, and particularly, to the encoding of display points projected in the shape of a continuous smooth curve. The field of this invention is the field of character and symbol generation with continuous and smooth outline curves. The prior art contains many examples of character generating methods and systems. One such example is U.S. Pat. No. 4,029,947 ('947) which generates characters from a single encoded master but uses straight line interpolation to approximate curves between a set of given points. Other encoding systems are shown in U.S. Pat. No. 4,298,945 ('945) and U.S. Pat. No. 4,199,815 ('815) which also show a system of encoding straight lines using the end points and then interpolating points on the locus of straight lines between the end points and about the outline of a character. A further patent is U.S. Pat. No. 4,338,673 ('673), which stores a character in a single size by encoding straight line outlines of the character and then uses that encoding to generate points along straight line approximations of the outline at a desired size, as in the '945 patent and the '815 patent. However, these and other curve generation techniques do not use a system whereby the coordinate points on the outline of a character are encoded in a single master and then, by utilizing a parametric cubic expression of a single variable, a series of signals describing nodes on the locus of a smooth continuous curve between those points, are PG,4 generated for display of the character at any variable size. Parametric cubic curves are known and shown in "Fundamentals of Interactive Computer Graphics", J. D. Foley and Andries Van Dam; Addison Wesley, Reading Mass, 1982. Shown therein are parametric cubic curves, as functions of a single variable, used to represent curve surfaces. Further, T.sub.E X and METAFONT, Donald E. Knuth; American Math Society, Digital Press, Bedford, Massachusetts, 1979, shows the use of a parametric cubic curve wherein, given the coordinate positions of a set of end points and the first derivative (slope) of a curve at the end points, a parametric cubic polynomial (a function of a single parameter t), can be used to generate the locus of points on a smooth continuous curve segment between those end points. As shown by Knuth, the locus of each curve segment depends on the location of the two end points of that segment, for example, Z.sub.1 and Z.sub.2, and the angle of the curve at Z.sub.1, determined by the location of adjacent points Z.sub.0, Z.sub.2 and Z.sub.3. In fitting the curve between two end points, the angles at Z.sub.1 and Z.sub.2 are predetermined by Knuth. For example, where the curve is from Z.sub.0 to Z.sub.1 to Z.sub.2, Knuth assumes, as a rule, the direction the curve takes through Z.sub.1 is the same as the direction of the arc of a circle from Z.sub.0 to Z.sub.1 to Z.sub.2. However, not all curved outlines will satisfy this rule and, in many cases, Knuth requires a further adaptation of that foregoing process to produce the desired shape, namely of a curve representing the actual smooth curved outline of a character. Knuth's process starts using the rule described above specifying a circle when fitting a curve between three given points Z.sub.1, Z.sub.2, Z.sub.3. Knuth does show that a parametric cubic curve as a function of a single parameter t, as also shown in "Fundamentals of Interactive Computer Graphics", can be modified, as shown on page 20 of Knuth, to include "velocities" specified as "r" and "s" and which are functions of the entrance angle and exit angle of the curve segment at the given end points. The velocities' values determine how the resulting curve will vary as a function of t, either slowly describing a longer curve distance or more quickly describing a shorter curve distance. The r and s formulas are arbitrary and, in the case shown by Knuth, are chosen to provide excellent approximations to circles and ellipses when .theta. equals .phi. and .theta.+.phi. equals 90 degrees. Additional properties chosen to be satisfied by Knuth's arbitrary formulas for r and s are further described in T.sub.E X and METAFONT. In addition to Knuth's internal requirement to specify an entrance and exit angle at the curve end points, where no previous angle or curve history is given, Knuth also must use the circle approximation rule, specified above, for each of the end points on the curve. This means that where the actual curve to be generated is not accurately produced by the Knuth circle approximation, an adjustment must be made. Knuth makes this adjustment by manipulating adjoining points. For example, where the curve is to be fit between points Z.sub.1, Z.sub.2 and Z.sub.3. Knuth may manipulate the locations of Z.sub.0 or Z.sub.1 or Z.sub.3 or Z.sub.4 to obtain an accurate fit. A further problem in Knuth occurs when the sign of .theta. is the same as the sign of .phi. implying (a) the curve entrance angle at point Z.sub.1 is in the same quadrant as the curve exit angle at Z.sub.2, (b) a sine wave between Z.sub.1 and Z.sub.2 and (c) an inflection point. Knuth must resort to a manipulation of point locations to obtain a desired smooth curve around the inflection point. In summary, the processes described above for producing outlines and showing the use of a parametric cubic curve expressed as a polynomial capable of generating a series of points along the locus of a curve between two given points can only do so with the disadvantages noted above. In the following summary of the invention, the method and system for using a parametric cubic curve which accurately reproduces a curve section between given points is shown and described and which method and system avoids the disadvantages discussed above. This invention has as its object the generation, encoding and display of a series of points (nodes) along the locus of a curve segment between two given end points which are defined as "knots". It has been specifically developed to generate the locus of points (nodes) along the smooth curved outline of characters or symbols between given knots (i.e., Z.sub.a-1, Z.sub.a, Z.sub.a+1 . . . Z.sub.n-1, Z.sub.n), but it should be understood that its use is not necessarily limited to that purpose but may be used to generate and display smooth continuous curves between any end points, regardless of the application. In the case of the applicant's preferred embodiment, the knots are coordinate points along the outline of a character, which may be an alphanumeric or any other character or symbol and which coordinate points may be representative of a master size encoded character at a normalized size, on a dimensionless normalized encoding grid. The coordinate points may be decoded for display at a predetermined normalized display size or at an expanded or reduced size. The knots may be along any outline or surface whether two or three dimensional, although the applicant's preferred embodiment is shown in a two-dimensional model for use in smooth continuous curve generation. Using the method and system of applicant, the nodes along a two-dimensional curve or three-dimensional surface locus may be generated. The system shown herein generates the nodes using the encoded knot positions and the slopes of the curve at the knots. The process generates signals representing the nodes' coordinate values and is based upon the length (Z) between the knots and the angular interrelationship (B) of each of the knots with respect to a reference angle on the encoding grid. In the preferred embodiment, the knots' coordinates are encoded in a closed data loop and represent dimensionless coordinates about the closed outline loop of the character or symbol. The method described herein enters the closed data loop at a set of encoded coordinates representing a knot on the closed outline loop and initiates the node generating process by using the angular interrelationships of the knots about that entry knot. However, other methods may be used to initiate the process without departing from the inventive concept. In applicant's preferred embodiment, once having entered the encoded closed data loop, the analysis may proceed in a clockwise or counterclockwise direction around the closed data loop. It should be understood that the principles of this invention are not limited to a closed outline loop or closed data loop, but may be applied to open outline loops and to open data loops. The process may be used to generate either a smooth continuous curve between the knots or some other form of curve, forming a cusp at a knot for example, and which although continuous, it is not smooth at all locations but angular, as in the shape of a "K" or "G". In the preferred embodiment of the invention, the selection of a smooth continuous curve or merely a continuous curve, having a cusp for example, is made using stored rules which serve as default command codes which use the interknot angles formed between the knots, and the distance between the knots to produce a desired result. For example, where the angle formed by two knots is in excess of a predetermined threshold angle, a default command code may direct that a cusp be formed. Other rules such as override control codes may be similarly used to force a cusp or smooth curve, regardless of the threshold conditions and which may be encoded in the closed data loop to override the default command codes as explained below. Assuming, for the purpose of explaining the invention, it is desired to connect all knots in the closed outline loop with smooth continuous curves, the angles formed between an entrance knot at which the representative encoded data loop is entered and the first and second successive knots thereto in a chosen progression of knots in the closed outline loop are averaged to produce average angle values. As the curve formed between knots is a continuation of a curve which enters at the first of the knots (Z.sub.a), and which exists at successive or at a second of the knots (Z.sub.a+1), the tangent angles of the curve, which are the entrance angle at the first knot and exit angle at the second knot can be specified as average angles. The analysis continues by proceeding around the closed outline loop in the established progression of knots and the order thereof of the knots and examining the angles formed between the knots as described above. As the knots form a master skeletal outline of the character or symbol when juxtaposed on a dimensionless encoding grid, arranged at a normalized size, the knots may be rotated or scaled relative to such a normalized encoding grid. Once the master encoded character or symbol (master encoded character) is scaled and positioned as desired, then the analysis described above, may continue wherein (a) the encoded closed data loop of knots in the closed outline loop is entered at a first set of coordinates representing a first knot, (b) the angular and spacial relationships of the knots on the normalized encoding grid are determined, using the representative encoded data and (c) for each set of knots along the closed outline loop, assuming that each knot is to be connected by a continuation of a smooth curve, the average angles of the respective curve segments entering and exiting the respective knots are determined. Where a smooth continuous curve is desired, then the entrance angle of the curve segment at a knot would normally be the same as the exit angle of the curve from that same knot. By using the foregoing method of analysis, namely, determining the average angles made by the curve passing through the knots, and using those average angles to represent the slope of the tangents to the particular curve segment at the respective knots, the disadvantages shown in the prior art are overcome. In particular, in this inventive concept, there is no need to define a circle between the knots and then compute the locus of nodes on the circle as Knuth does. A faster process results using this invention which requires only the interknot angles of the knots relative to each other and to a reference angle be known. The process as stated above, uses a parametric cubic polynomial relationship of a single variable t to generate signals or data, indicative of and representing the coordinates of nodes on the locus of a smooth continuous curve segment between sets of respective knots. Where a greater resolution and greater number of nodes is needed to describe the locus, then the incremental value of the parameter t, may be decreased providing a greater number of discrete cumulative values of t and node coordinates. Where less resolution and fewer nodes are needed to define the locus, then the incremental value of t can be enlarged, producing fewer discrete cumulative values of t and nodes. In the preferred embodiment, the dimensionless normalized master encoding grid represents an EM Square (M.sup.2) of 864 by 864 Dimensionless Resolution Units (DRU's) In each of the X, Y axes. The M.sup.2 is a measure used in the typesetting trade wherein a character is set within an M.sup.2 and is shown herein in a manner consistent with the application of the inventive principles in the preferred embodiment. When the master encoded character is to be displayed, the master encoded character, at a normalized size on the normalized encoding grid is scaled, the knot coordinate positions at the scaled size are encoded and expressed in the appropriate display intercept units such as Raster Resolution Units (RRU's), These scaled encoded knots in the preferred embodiment are expressed in terms of the display RRU's and used to determine the incremental value of t. The incremental value of t is used to generate discrete cumulative values of t which are then applied to the cubic parametric polynomial to generate the node coordinates. Then through the cubic parametric polynomial relationship, signals indicative of the coordinates of the nodes are generated and stored as data. As defined by a parametric expression of a single parameter t, the resultant node's x, y coordinate values (X or Y are the axial directions in the preferred embodiment), vary separately as separate functions of t [i.e. x(t), y(t)]. At the scaled size, the incremental value of t may be related to the reciprocal of the distance between knots expressed in RRU's (i.e. Z.sub.d =.vertline.Z.sub.n -Z.sub.n-1 .vertline.) or any other suitable method may be used to produce a value of t. Values representing the node coordinates are then generated using these incremental values of t, each value being added, to the previous cumulative values (with the second incremental value of t being added to the first incremental value of t and the third incremental value of t being added to the previous cumulative value of t and so on). In the preferred embodiment, the value of t is set to vary from 0 to 1. The resulting series of signals, stored as encoded data, represent knots and nodes which define the locus of the smooth continuous curve between the knots and the outline of the character or symbol is a machine part ultimately used to control or modulate a display to form the desired character or symbol at the desired size, in a visual image. The resultant data may be run length data, which is applied directly to a raster beam, to position the beam and energize the beam accordingly, or may be used to control a free running raster. Interpolation, rounding or truncating of value may be used to locate the nodes on the display intercepts corresponding to the raster line locations, where exact coincidence is lacking. As previously stated, as characters or symbols are not always smooth curves but may contain cusps, a threshold test may be used, such as one based on the exterior angle formed by lines between knots. Where that exterior angle at a knot is greater than a predetermined threshold angle, for example, a cusp may be assumed. It being understood, however, that if the exterior angle is less than the threshold angle, the analysis previously described with regard for producing a locus of nodes to define a smooth continuous curves would be used. In the preferred embodiment, the master encoding grid is a Cartesian coordinate system. As the preferred embodiment is used in typesetting, the encoding grid relative to which the character is encoded is set within an M.sup.2, which in the preferred embodiment contains 864 by 864 Dimensionless Resolution Units (DRU's), The master encoded character, at its normal size is set over a portion of the available normalized encoding grid area of the M.sup.2. As is known in the typesetting field, expansion areas in the M.sup.2 are also provided for large size characters. The character may be scaled, rotated or projected by ordinary known techniques and new coordinates for the knots may be determined accordingly, as is known in the art. In the preferred embodiment, the scaling is done in increments of 1/1024 DRU's. The new coordinate locations of the knots for the character at its scaled, rotated or projected positions are determined. As only integers are used in the preferred embodiment, any fraction or equivalent thereof is discarded. In the process, the percent of reduction or enlargement is first calculated in relation to a desired character size in units of typesetter's points. The precision of the scaling is increased by an autoscaling linear interpolation increaseing the resolution of the linear interpolation, as explained below. The result is a scaled coordinate point in RRU's without the need to utilize floating point arithmetic. In the preferred embodiment and as stated above, override control codes are accessed responsive to data stored with the stored knot coordinates to reduce storage and the processing time. The code 0 is used to indicate the end of all the loops. A code 1 is used to indicate the movement in a relatively long direction on an axis, for example, the X axis. In this case, an X value is replaced with a new X coordinate value. The code 2 indicates the same process as a code 1 for another axis, for example, the Y axis direction, where the Y value is replaced with a new Y coordinate value. A code 3, as in codes 1 and 2, indicates X and Y are both replaced with new coordinate values. A code 4 indicates the finish of a previous encoded loop and the start of a new loop. Codes 5, 6 and 7 indicate that the X,Y or XY directions are respectively altered. Codes 8 to 11 are editing commands forcing predetermined conditions for the curve at the respective knots as will be described. The knots may be encoded in the closed data loop on a 4-bit memory boundry (nibble) and in the preferred embodiment, the first nibble value of a complete information set of nibbles is used to specify the number of nibbles used in the complete information set. Additionally, the data is packed in a novel manner which can be interpreted as spacial information or control codes, as will be explained. In summary, the inventive concept is a process and system for transforming a machine part, in the form of signals, encoded as data and representing a pattern of knots on the outline of a master size symbol, into a similar pattern at a reduced or enlarged size or transposed in space, by generating a series of encoded data signals representing nodes which more definitely define the said pattern in the shape of smooth continuous curves or cusps and which data signals may be directly used to control a display process to visually display the pattern. Accordingly, what is disclosed is a method and system for generating a series of signals representing nodes on a locus of a curve partially defined by a set of related knots, encoded as data, with said knots defining the end points of respective segments of said curve locus and with said knots being in a successive order in relation to said locus, and for encoding said node signals as data for use when representing said curve segments in a separate additional process responsive to the shape of said curve locus, as represented by said encoded node signals. The method and system involve defining the locations and the successive order of said knots on said curve locus and encoding as data, signals indicative of said knots, then for a first knot, (Z.sub.a), representing a first end point of a first curve segment, deriving a first angle, indicative of the average of the interknot angles between said first knot (Z.sub.a), and selected related knots and encoding as data, signals indicative of said first angle, at a second of said knots (Z.sub.b), representing a second end point of said first curve segment, establishing a second angle for said first curve segment, and encoding as data, signals indicative of said second angle, establishing a compiler for compiling data according to a cubic parametric polynomial relationship between a parameter "t", said knots and angles at the said end points of a said curve segment and the locus of a said curve segment, establishing a range "R" of values for said parameter "t", applying said signals indicative of the said locations of said first and second knots of said first curve segment, to said compiler, applying said signals indicative of the said first and second angles of said first curve segment to said compiler, applying a signal indicative of a distinct selected value of said parameter "t" within said range "R", to said compiler to derive a signal indicative of a respective node location on said first curve segment, repeating the above by applying signals indicative of additional distinct selected values of said parameter "t", within said range "R", to derive a plurality of signals indicative of respective node locations on said locus of said first curve segment for respective distinct selected values of said parameter "t", and encoding said signals derived in step (h) and (i), in a data base to represent said first curve segment. Further disclosed is a method of encoding data and an encoded data system representing knots on an outline defined relative to a coordinate plane involving selecting sets of coordinates on said outline, to represent the knots, establishing a successive order of said knots, encoding said knots in a data order indicative of said knot order, and encoding by encoding a complete information set of data providing a control code indicative of either (i) the coordinate locations of said knots or (ii) a knot's direction relative to others of said knots or (iii) a predetermined shape of said outline between a pair of said knots or (iv) data indicative of the shape of said outline at a knot or (v) encoding a complete information set providing the coordinate distances between adjacent knots. Further disclosed is a method and system for encoding data representing knots on an outline defined relative to a coordinate plane and for generating a series of signals representing nodes on the locus of a curve partially defined by said set of knots, involving selecting sets of coordinates on said outline, to represent said knots, establishing a successive order of said knots, encoding said knots in a data order indicative of said knot order, and encoding a complete information set of data providing a code indicative of a predetermined shape of said outline between a pair of said knots or a complete information set providing the coordinate distances between adjacent knots. Further disclosed is a method and system for generating a series of signals representing nodes on a locus of a curve partially defined by a set of related knots, encoded as data, with said knots defining the end points of respective segments of said curve locus and with said knots being in a successive order in relation to said locus, and for encoding and decoding said node signals as data and for use of said data when in an imaging process responsive to the shape for said curve segments as represented by said encoded data, involving defining the locations and the successive order of said knots on said curve locus and encoding as data, signals indicative of said knots, for a first knot, (Z.sub.a), representing a first end point of a first curve segment, deriving a first angle, indicative of the average of the interknot angles between said first knot (Z.sub.a), and selected related knots and encoding as data, signals indicative of said first angle, at a second of said knots (Z.sub.b), representing a second end point of said first curve segment, establishing a second angle for said first curve segment, and encoding as data, signals indicative of said second angle, establishing a compiler for compiling data according to a cubic parametric polynomial relationship between a parameter "t", said knots and angles at the said end points of a said curve segment and the locus of a said curve segment, establishing a range "R" of values for said parameter "t", applying said signals indicative of the said locations of said first and second knots of said first curve segment, to said compiler, applying said signals indicative of the said first and second angles of said first curve segment to said compiler, applying a signal indicative of a distinct selected value of said parameter "t" within said range "R", to said compiler to derive a signal indicative of a respective node location on said first curve segment, repeating the above by applying signals indicative of additional distinct selected values of said parameter "t", within said range "R", to derive a plurality of signals indicative of respective node locations on said locus of said first curve segment for respective distinct selected values of said parameter "t", encoding said signals derived above in a data base to represent said first curve segment accessing said data base signals, and controlling an imaging means responsive to said accessed signals to reproduce said curve. Further disclosed is a method and system for linear interpolation of coordinate points between first and second end points, to produce coordinates on a straight line outline and where said coordinates are located on a coordinate system having a first coordinate direction and second coordinate direction and encoded in machine readable data words a radix "r", corresponding to the order of values for designated positions in said data words, involving encoding a first data word of "N" positions corresponding to the distance between the said first and second end points in the said first coordinate direction and placing said first data word into a first machine location, encoding a second data word of "M" bits corresponding to the distance between said first and second end points in said second coordinate direction and placing said second data word into a second machine location, determining the number of available positions, between the most significant position of said first data word and the most significant position of said first machine location, available for shifting said first data word in a first direction of the most significant positions of said first machine location, shifting said first data word by a maximum number of positions, equal to the said number of available positions in said first direction and the number of positions corresponding to the number of significant positions used to encode said second data word, and increasing the scale of said first data word by a scale factor related to the number of said positions shifted, deriving a third data word indicative of said second data word in said second machine location divided into said first data word shifted according to step (d), encoding data words indicative of the coordinate of said straight line in said second coordinate direction, for respective ones of said data words encoded according to step (f) encoding a multiple of said third data word, which are related to a respective coordinate in said first coordinate direction, on said straight line, reducing the scale of said multiples of said third data words above, to the scale of the first data word established prior to the above said shifting and encoding said third data words produced above with respective coordinates in said second coordinate direction to produce said coordinates on said straight line. Further disclosed is encoding data representing knots on an outline defined relative to a coordinate plane and for decoding said encoding data for use in a display process to produce images of said outlines represented by said encoded data by selecting sets of coordinates on said outline, to represent said knots, establishing a successive order of said knots, encoding said knots in a data order indicative of said knot order, the encoding including encoding a complete information set of data providing a control code indicative of either (i) the coordinate locations of said knots or (ii) a knot's direction relative to others of said knots or (iii) a predetermined shape of said outline between a pair of said knots or (iv) data indicative of the shape of said outline at a knot, or (v) providing data indicative of the coordinate distances between adjacent knots, decoding said complete information sets in a decoding order related to said data order responsive to said complete information set being indicative of the coordinate distances between adjacent knots, producing an image of a smooth continuous curved outline or a straight line between said adjacent knots or, responsive to said complete information set being indicative of a said control code, as set forth in (i), (ii), (iii), or (iv), producing an image of a smooth continuous outline or a straight line according to the said coordinate locations of said knots relative to adjacent knots in said successive knot order or producing an image of said outline being smooth at respective knots or being sharp and forming cusps at respective knots. Further disclosed is encoding data representing knots on an outline loop defined relative to a coordinate plane, for producing a display image of said outline and decoding responsive to the interrelationship of said knots on said outline loop, and imaging said outline loop responsive to said decoded data involving selecting sets of coordinates on said outline loop, to represent said knots, establishing a successive order of said knots, encoding said knots in a data order indicative of said knot order, encoding a complete information set of (i) data indicative of the coordinate distances and interknot angles between adjacent knots, comparing the relative positions of successive knots to at least a first interknot criterion, responsive to said step (d) of comparing, (i) producing a first indication that a set of said successive knots is within said criterion, or (ii) producing a second indication that a set of said successive knots is outside said criterion, and (i) responsive to said first indication imaging said outline loop in the form of a smooth continuous curve, or (ii) responsive to said second indication, imaging said outline loop in the form of a straight line, between said set of successive knots. Further disclosed is encoding and accessing a single data set of solution values functionally related to and representing the solution set to at least two domains of a variable, involving defining a single data set of solution values functionally related to a first domain of a variable and to a second domain of a variable, arranging said data set of solution values in an order related to said first domain and said second domain, accessing said data set of solution values relative to respective values in said first domain to derive at least a part of said solution set to said first domain, and accessing said data set of solution values relative to respective values of said second domain to derive at least a part of said solution set to at least said second domain.

US Referenced Citations (12)
Number Name Date Kind
3746912 Redecker et al. Jul 1973
4029947 Evans et al. Jun 1977
4074281 Quarton Feb 1978
4199815 Kyte et al. Apr 1980
4254468 Craig Mar 1981
4272808 Hartwig Jun 1981
4298945 Kyte et al. Nov 1981
4338673 Brown Jul 1982
4342096 McDevitt Jul 1982
4476464 Hobbs Oct 1984
4527154 Tanaka Jul 1985
4555802 Fedak et al. Nov 1985