(19)
(11) EP 0 247 711 A2

(12) EUROPEAN PATENT APPLICATION

(43) Date of publication:
02.12.1987 Bulletin 1987/49

(21) Application number: 87302887.2

(22) Date of filing: 02.04.1987
(51) International Patent Classification (IPC)4G09G 1/10, G09G 1/14
(84) Designated Contracting States:
AT BE CH DE ES FR GB GR IT LI LU NL SE

(30) Priority: 30.05.1986 US 868445

(71) Applicant: PRIME COMPUTER, INC.
Natick Massachusetts 01760 (US)

(72) Inventor:
  • Keller, James A., Jr.
    Cambridge Massachusetts 02139 (US)

(74) Representative: Blatchford, William Michael 
Withers & Rogers 4 Dyer's Buildings Holborn
London EC1N 2JT
London EC1N 2JT (GB)


(56) References cited: : 
   
       


    (54) Line display apparatus and method


    (57) A method and apparatus for providing a faster graphical representation of lines to be displayed from their endpoint data either uses the natural symmetry of the line or imposes a forced symmetry upon the line to reduce the processing time required for generating each of the points representing the line. The order in which the endpoints are provided to the apparatus does not change the resulting representation. An iterative process, starting at centers of a partitioned line, incrementally determines the positions of the pixels which best, within the concept of the invention, fit the actual line being represented.




    Description


    [0001] The apparatus and method relate generally to display systems used in connection with digital processing equipment, and in particular, to a method and apparatus for pictorially representing line data in a digital display environment.

    [0002] It is typical, in digital systems, to generate and store only the end points of line data to be displayed on a digital screen. The line can then be displayed on the digital screen using the end-point data. As used here, a digital screen has rows (the X axis) and columns (the Y axis) of discrete picture elements (pixels) to which have been associated integers representing the row and column location of a particular picture element (pixel). Thus, in a typical high resolution cathode ray tube, there are, for example, 1,024 x 1,024 picture elements; and a line to be drawn on the screen will typically be described in the computer or digital processor by its end point pixels, for example, (xi, yi) and (x2, Y2).

    [0003] Once the end points of a line to be plotted are known, various methods have been developed for determining the pixels which will plot or map the intermediate pixels of the line. The various methods for determining individual pixels can use either integer or mixed arithmetic; but, no matter what method is employed, the resulting line, due to the digital nature of the display, will generally only approximate the true line. Integer arithmetic is preferred over real or fractional binary arithmetic because it operates faster, and therefore a method such as Bresenham's line algorithm is quite attractive. This method does not use real variables and hence rounding off is not required. Further, the method is advantageous because it uses only integer arithmetic. On the other hand, while the method is desirable, it still requires substantial time, especially when a long line is plotted; and the method is not commutative, that is, a line drawn, using Bresenham's method, from point A to point B may not be the same line if the line is drawn from point B to point A. Because of this property, Bres- neham's method may show unexpectedly close "jagged" regions, if portions of the line are erased during processing and later filled in again using the same method, but starting from a different pixel.

    [0004] _ lt is therefore an object of the present invention to provide a line generation method and apparatus having reduced computational requirements and a commutative property in connection with drawing a linear representation between provided end points defining the line. Other objects of the invention are a reliable, easily implemented method and apparatus for presenting line representations in a digital display environment.

    [0005] The invention relates to an apparatus and method for generating and displaying a line representation on a digital display device. The apparatus features elements for receiving the end-point data representing a line to be displayed, and circuitry for determining, under conditions of symmetry, initial positions for one or more of the pointers which will describe or represent portions of the line. The pointer(s), when they are complete, will enable the complete line representation to be described. Further elements are provided for determining an initial value of a decision variable for each pointer initial position and for repeatedly determining a new value of each decision variable for each pointer for generating successive point locations thereby representing a segment section of the line. Further elements are provided for generating from the segment section representation(s), points representing the entire line. Circuitry is also provided for displaying the entire line representation on the digital display device.

    [0006] In preferred aspects of the invention, elements are provided for imposing, if necessary, a forced symmetry upon the line for determining the initial positions for the pointers. The pointers are symmetrically located about a center position of the line, and elements are provided for determining initial values of the decision variables for the pointers in response to the lengths of the line,. as determined by its end points, in each of two orthogonal directions.

    [0007] The method of the invention features the steps of receiving the endpoint data describing a line to be displayed; and determining, under conditions of symmetry, initial positions for one or more pointers which will, when complete, enable the line to be fully described. The method further features determining an initial value of a decision variable for each pointer initial position; repeatedly determining a new value of each decision variable for each pointer for generating point locations representing segment sections of the line; generating from the segment section representation, points representing the entire line; and displaying the entire line representation on the digital display device.

    [0008] In other aspects of the invention, the method features imposing, if necessary, a forced symmetry upon the line for determining the initial positions of the one or more pointers symmetrically about a center position of the line; and determining initial values of the decision variable for each pointer in response to the distances from each other of the end points of the line in each of two orthogonal directions.

    [0009] Other objects, features, and advantages of the invention will appear from the following description of a preferred embodiment of the invention taken together with the drawings in which:

    Figure 1 is an electrical block diagram representing an apparatus for carrying out the method of the invention;

    Figure 2 is a representation illustrating the method of the invention;

    Figure 3 is a diagram illustrating a line having odd symmetry and passing through the origin of an XY coordinate system in accordance with the invention;

    Figure 4 is a typical line representation in accordance with the invention;

    Figures 5-8 illustrate various symmetries in accordance with the invention;

    Figure 9 is a table illustrating the locations of a line center in accordance with the invention; and

    Figure 10 is a flow chart describing operation of the processor of Figure 1 in accordance with the invention.



    [0010] Referring to Figure 1, in accordance with a preferred embodiment of the invention, a digital processor 10, which can be a general or special purpose digital computer or other control or process hardware, generates, or has stored either therein or in an associated memory 12, a list of one or more lines to be drawn on a display 14. The. stored data represents less than all the points of the line, and in the illustrated embodiment, represents the end-points of the line. The processor 10, operating in accordance with the method of the invention, generates a list of point by point data describing the line to be drawn. That data is presented, over a line 16, to a buffer memory 18 which is designed to continually reinforce the display on a screen 20 of the display apparatus 14.

    [0011] The method and apparatus of the invention can be implemented in hardware, software or a combination of the two.

    [0012] In accordance with the illustrated embodiment of the invention, the processor 10 can employ a special hardware circuitry 22 for implementing various of the repetitively performed integer calculations required in accordance with the method of the invention. The hardware circuitry 22 can thus include, for example, very fast parallel processing addition and subtraction elements operating according to the description which follows.

    [0013] The invention is directed to dividing the line to be drawn into equal length segments, so that only the display points along less than all of the segments need be generated by processor 10 to display the entire line. In this manner, at least about half of the otherwise required processing time can be saved. As will be discussed hereinafter, while a considerable savings can be achieved in connection with medium length and longer lines, the overhead required to achieve the savings may, in some circumstances, dictate a different method of line generation for relatively short lines.

    [0014] Referring to Figure 2, in accordance with the illustrated embodiment of the invention, a line, referenced in an XY coordinate system, is drawn between end points 28 and 30, located at xi,yi and x2,y2, respectively. In accordance with the invention, the line is divided into a plurality of equal segments S1, S2, and Ss. The centers of those line segments, at 32, 34, and 36 respectively, determine the initial locations of a plurality of line generating pointers, P1, P2, P3, P4, P5, and P6, which are positioned as shown in the Figures. The pointers are employed for plotting and representing each half-segment (a segment section) of the line segments 32, 34, and 36 respectively. If natural symmetry exists, it is only necessary to determine the points of pointers Pi, P2, that is, the line segment Si, to determine all of the points of the line. This advantageous result occurs because the points associated with line segment S1 can be used for representing the line segments 82 and 83, which are identical to line segment Si, and thus complete the entire line.

    [0015] In some instances, it may only be necessary to determine the points associated with pointer Pi. This occurs if there exists a natural symmetry with regard to determination of segments Si, S2, ..., and further when there is natural symmetry about the center, 32, of a line segment such as segment Si. Accordingly, therefore, it is necessary to determine where the line centers 32, 34, and 36 fall; whether natural symmetry exists; and if it does not exist, what "forced symmetry" must be imposed and what are the consequences thereof. Further, one must determine how a decision is made with regard to the location of the points (pixels) representing each line segment.

    [0016] In the description herein, the line to be represented has a major orthogonal axis and a minor orthogonal axis. Typically an XY coordinate system is employed and the major orthogonal axis will be that coordinate axis direction for which the line being represented has the greatest extent. Thus, if the end points of the line are (xi, yi) and (X2, y2), then the X axis is the major axis and the Y axis is the minor axis if the magnitude of (x2 -xi) is greater than or equal to the magnitude of (y2 -xi). Otherwise, the Y axis is the major axis and the X axis is the minor axis.

    [0017] Referring to Figure 3, the equation of a line passing through the origin of an XY coordinate system is f(x) = mx. Accordingly, therefore, f(-x) = -f(x) and the line is an odd function. Thus if (x,y) is on the line, then so is (-x,-y).

    [0018] In accordance with the illustrated embodiment of the invention, therefore, it is assumed that a coordinate origin is placed at the midpoint of the line to be displayed (point 34 in Figure 2). As a result, at most only half of the points of the line need to be considered since the line is an odd function. Further, in accordance with the invention, a symmetry is forced, if necessary, upon the line which allows the end points defining the line to be generated and supplied to the line generation equipment in any order.

    [0019] Consider now a line which is partitioned into 2"equal parts, where n is an integer. Referring to Figure 4, the end points are designated (x1,y1) and (x2,y2). For ease of explanation and illustration, it is assumed that x2 is greater than xi, y2 is greater than yi, and (x2 -xi) is greater than (y2 -yi).

    [0020] In accordance with the illustrated embodiment, since the line traverses more points in the X direction in passing between its end points, than in the Y direction, the method contemplates deciding for each X coordinate increment of one pixel, whether the present Y coordinate position of a point (that is, whether the pixel row) is to change, or whether it shall remain the same. That decision, repetitively made, enables a sequence of points or pixels to be selected starting from the origin of a pointer to the endpoint of the pointer. Referring to Figure 4, for example, wherein the end points 40 and 42 of a line define a center at 44, pointers can begin, for example, at 46 (the one-quarter point of the line) and 48 (the three-quarter point of the line) and determine the generation of points representative of the line at 50, 51, 52, 53, 54, and 55. In accordance with the invention, however, the pointers associated with segment portions or sections SP1 and SP2 are mirror images of segment sections SP4 and SP3, respectively, about the center point at 44 of the entire line.

    [0021] Initially, therefore, the pointers Pi and P2 begin at the three-quarter point 46 of the line portion composed of segment sections SP1 and SP2. Similarly, the pointers P3 and P4 begin at the three-quarter point 48 of the line composed of segment sections SP3 and SP4. Since pointer P2 does exactly the opposite of what pointer P3 does, and pointer P1 does exactly the opposite of what pointer P4 does (since the pointers are symmetrical about their respective origins) only the description relating to pointers P1 and P2 need be provided.

    [0022] For each pointer, P1 and P2, there is defined a decision variable, dec1 and dec2, respectively. As explained hereinbelow, decision variable dec1 interactively determines the location of pixels representing the segment section SP1 (and corresponding to pointer Pi) and decision variable dec2 interactively determines the location of pixels representing the segment section SP2 (and corresponding to pointer P2). Both decision variables are given an initial value (as described hereinafter) depending upon the values of dx and dy (dx being the number of inclusive points along the X coordinate axis, equal to (|x2-x1|+ 1), and dy being the number of inclusive points along the y coordinate axis, and being equal to (|y2 -y1[+ 1)). Once the initial value of the decision variable has been determined, the X coordinate of a respective pointer is incremented, by one coordinate pixel position in the pointer direction away from its starting point, and a new decision variable is calculated. For each new X position, the calculated decision variable provides threshold information with regard to the location of the next point, along the Y coordinate direction.

    [0023] The new decision variable value, for each successive X position in the interation is determined by adding dy to the old value of the decision variable, and if the resulting value exceeds "dx", the Y coordinate of the pointer is changed and the decision variable is replaced by the value of itself, modulo dx. If the new decision variable had not exceeded the value of dx, then the Y coordinate of the new pixel would be the same as the Y coordinate of the previous pixel. This decision technique spreads dx points over dy lines as uniformly as possible. For example, if dx = 15, and dy = 10, five of the rows will have one point and five of the rows will contain two points. Also, the two pointers P1 and P2 will form a pattern which is generally symmetrical about the midpoint of the segment identified with the pointers.

    [0024] It has been tacitly assumed that the line being reconstructed exhibits a "natural" symmetry which allows an easy implementation of the method described hereinabove. That is not, however, always the case. For example, referring to Figure 5, when a line is divided into n segment sections, and if the number of points in each of the major orthogonal directions is a multiple of the number of segment sections, that is, the number of points modulo the number of segment sections equals zero, then . there occurs a natural symmetry. With natural symmetry, the pointers originate from adjacent central points such as points 60, 62 and 64, 66, and terminate at either end points 68, 70 or at adjacent interior points 70, 72. For the illustrated example, where there are four segment sections, pointers P1 and P4, as noted above, are opposite to each other and pointers P2 and P3 are also opposite to each other.

    [0025] In general terms, absent natural symmetry as described above, for a line which has been divided into 2m segments, there are required, to generate the line representation, 2mpointers, and 2m decision variables. And, in each instance where the number of points in the major orthogonal direction of the line (the X direction in the illustrated embodiment) modulo the number of segment sections is non-zero, however, there will be some overlapping of the pointers to the effect that one or more points along the line are plotted twice. This is the "overhead" noted above and reaches its maximum "cost" under the conditions illustrated and described hereinafter with reference to Figure 8.

    [0026] Referring first, however, to Figure 6, where the number of segment sections is.four, the number of points in the line along the major orthogonal axis, modulo the number of segment sections, here four, equals the number of segment sections minus one, that is, three. Then a single point 80 in the center of the line will be included in the line sections generated by two pointers, in the illustrated embodiment, pointers P2 and P3. All of the other points along the line are associated with only one pointer as indicated in Figure 6.

    [0027] Figures 7 and 8 show the other two cases (when there are four segment sections). Figure 7 shows the instance when the number of points modulo the number of segment sections equals two, and Figure 8 shows the instance when the number of points modulo the number of segment sections equals one. In Figure 7, two points, pixels 81, 82, the center points of the segments formed by segment sections SP,, SP2, and SP3, SP4, are included with the line representations of pointers P1, P2, and P3, P4, respectively. In accordance with the illustrated embodiment of Figure 8, three points, that is, point 84 in the center of the line, and points 86, 88 in the center of the segments defined by segment sections SPi, SP2 and SP3, SP4, are each included in two different pointer representations. Accordingly, if the number of points in the line is relatively small, considerable overhead may be incurred in connection with representing the segment sections. This occurs only when a "forced" symmetry is imposed upon the line, that is, when the number of points in the line major orthogonal direction, modulo the number of segments, is non-zero.

    [0028] There remains to be determined both the location of the starting points for the pointers Pi and the initial value of the decision variable deci associated with each pointer Pj. These two factors are interrelated and are described hereinafter for the case where there are four segment sections.

    [0029] Referring again to Figures 5-8, some points of the four segment section line are plotted twice and the figures show, as noted above, which points those are. Further, as noted above, the generation of successive decision values for each successive point along the pointer direction is determined by incrementing the value of the decision variable by dy (for a line wherein dx is greater than dy), and, if the incremented value has a value greater than dx (for pointers directed in the +Y direction), or less than zero (for pointers directed in the -Y direction), then the new value of the decision variable in set equal to the originally determined decision variable value modulo dx and the value of the Y coordinate changes.

    [0030] To determine the initial value of a decision variable, it is desirable, according to the invention, to examine first where the center of the line should be, and then to determine the exact location of the initial starting point of each pointer. As noted above, the starting locations of the pointers are symmetrical about the center of the line, and the center of a line is dx/2, dy/2 from the end points.

    [0031] The center position, however, may not be at the center of a picture element, but may be at a boundary between picture elements. Thus, referring to Figure 9, there are four possibilities. The possibilities, as illustrated in Figure 9, are that the center of symmetry is in the center of a pixel (9(a)), on the boundaries between two adjacent pixels (9-(b), 9(c)), or at the common corner of four adjacent pixels (9(d)). A pointer is always considered to begin at the center of a pixel. Thus, for all cases except that one where the center of symmetry lies at the center of a pixel, the pointer starting point or origin will in general be a fractional number of pixels from the center location. And, as noted in more detail below, the centered location of pointer origin location requires a fractional adjustment in the otherwise easily determined decision value.

    [0032] Thus, an adjustment in the decision value, as noted below, based upon a one-half pixel offset, must be made. As noted above, each time a pointer advances one unit or pixel in, for example, the position X direction, dy is added to the decision variable deci associated therewith. It follows, therefore, that if the pointer advances one-half of a pixel in the position X direction, then one-half dy (dy/2) should be added to the decision variable deci. A similar change of dx/2 must be made to ac- comodate a one-half pixel offset in the Y coordinate direction, maintaining sign notation as necessary.

    [0033] The initial value of a decision variable for a pointer starting point (xs, ys) will be determined by four additive components as follows for a line wherein dx k dy. a similar determination can be made when dy > dx. The first component will be derived from the value of a hypothetical decision variable at the center location of the line. This 3quals dx/2. Subtracted from this value is an offset value, if that center is at a horizontal boundary between picture elements. If the center is at a horizontal boundary, (in Figure 9, corresponding to dy modulo two equals zero) the compensating val- ue is dx/2. The resulting combined value must be further modified by the third component which is jetermined by the number of whole picture ele- nents, N, in the X direction, the pointer initial location is offset from the actual midpoint of the line. This value is N dy. Finally, a fourth component, dy/2, must be added to the sum when the center of the line is on a vertical picture element boundary. This condition corresponds to dx mod two equals zero (Fig. 9). Thereafter, the value thus generated is taken modulo dx to obtain the initial value of the decision variable. The resulting "formula" for the initial value for the pointer decision variable is, therefore:



    [0034] In order to determine the initial value of the decision variable, however, the value of N must be known. N is related to the location at which a pointer begins and the value of N interacts with the value of the decision variable.

    [0035] As noted above, there are several instances when two generated segment sections will overlap at one or more points. In the particular instance where the line is divided into two segments, each segment having two pointers, the initial X locations of the pointers are given by:

    If x2 ≧ x1:







    or if x2 ≦ xi:








    (Equation 2)



    [0036] Correspondingly, the initial Y coordinate locations of the pointers are:

    [0037] 

    If x2 ≧ xt:



    If y2 ≥ yi, then:







    and if y2 < yi:







    If x2 < X1:



    If y2 ≧ y1, then:







    and if y2 < y1:







    and, for all xi,x2 , the initial decision values for pointers Pi, P2 (Figure 4) are:

    dec1 = expr2 mod dx

    dec2 = expr1 mod dx


    (Equation 3)



    [0038] An extension of Equations 2 and 3 to accommodate the division of a line into an arbitrary number of segments can be accomplished by changing the division by "4" wherever it appears in Equations 3 and 4, to division by the number of segment sections which are desired. It is important, however, to note that the number of segment sections must be an even integer in order to enforce symmetry, when required, about the center of the line being represented.

    [0039] In accordance with the preferred embodiment of the invention, prior to forcing symmetry upon a line, the possibility that natural symmetry exists should be considered first. The method therefore includes the step of finding the greatest common division (GCD) of dx and dy. If the greatest common division equals 1, that is, if dx and dy are relatively prime, then the forced symmetry method described above must be used. Otherwise, let "G" equal the greatest common division of dx and dy.

    [0040] Then, the line can have G equal parts; that is, the line can be divided into G equal parts, the determination of the representation of any one of which can be repeated for each of the other parts. Therefore, the forced technique, for example, or a standard line plotting technique incorporating the invention herein, can be applied to represent a single one of the G segments of the line and then be repeated "G-1" times to represent the entire line.

    [0041] Referring now to Figure 10, in accordance with a preferred operation of the circuitry of Figure 1, the processor 10 operates as follows. Once the end points of the line have been acquired (at 98), for example from the memory 12, the processor first checks (at 100) to determine whether the value of the greatest common divisor of the x and y inclusive lengths, that is, dx and dy, is greater than a minimum value, for example one. The processor 10 makes use of a natural symmetry of the line by following the "yes" path from decision block 100. If the greatest common divisor is not greater than a minimum selected value, the processor 10 will force symmetry upon the line to be represented, in accordance with the process described hereinabove, and follows the "no" path from decision block 100.

    [0042] If there is natural symmetry, the processor 10 determines, at 102, the segment size according to the value of the greatest common denominator, and divides the distance between the end points into a like number of equal segments corresponding to that segment size. Thereafter, the pointer origin and decision variable are determined at 103 and 104 in accordance with the process noted above. Only a single decision variable is needed where natural symmetry exists. Once the initial decision variable is obtained at 104, a repetitive process begins wherein each of the points of the line segment section is represented. This is indicated at 106, 108, and 110. As noted above, the decision variable is modified at 106 and determines the position of the next point of the segment section representation at 108. When the line segment section has been completed, the processor 10 will complete the entire line representation based upon the points now available to it. This is indicated at 112. The complete line representation is thus finished.

    [0043] If sufficient natural symmetry does not exist, the processor 10 will force symmetry upon the line to be represented, and sets a segment size at 114. Thereafter, the pointer origins and the initial value of the decision variables are set at 116 and 118. This process corresponds to that of Equations 1, 2, and 3 hereinabove. The processor 10 next repeatedly determines successive points in the line segment section representation at 120, 122, and 124. When the line segment sections needed to be calculated are complete, the processor 10 then completes the entire line representation at 112. The completed line representation, whether through forced symmetry or natural symmetry, is passed to the buffer 18 for representation on the display screen 20 of display apparatus 14.

    [0044] Additions, subtractions, deletions, and other modifications of the described embodiment will be apparent to those practiced in the art and are within the scope of the following claims.


    Claims

    1. Apparatus for generating and displaying line

    representations on a digital display device comprising

    means for receiving the endpoint data describing a line to be displayed,

    means for determining, under conditions of symmetry, initial positions for at least one of a plurality of pointers, said pointers describing said line,

    means for determining an initial value of a decision variable for each pointer initial position,

    means for repeatedly determining a new value of said decision variable for each said pointer for generating point locations representing a segment section of said line,

    means for generating from said segment section representation, using said symmetry conditions, points representing said entire line, and

    means for displaying said entire line representation on said digital display device.


     
    2. The apparatus of claim 1 wherein said initial position determining means comprises

    means for imposing a forced symmetry upon said line for determining said initial positions symmetrically around a center position of said line.


     
    3. The apparatus of claim 1 wherein said decision variable initial value determining means comprises

    means responsive to dx, dy, dx/2, and dy/2 for determining initial values of said decision variables.


     
    4. The apparatus of claim 1 wherein said initial position determining means comprises

    means for relating the input data to an x and y orthogonal coordinate system,

    means for determining the inclusive number of points in the X direction for the line to be displayed,

    means for determining the inclusive number of points in the Y direction for the line to be displayed,

    means for determining the greatest common divisor of-said X and Y inclusive numbers of points, means for using a natural symmetry of said line for segmenting said line when said greatest common divisor exceeds a selected minimum value, and means for imposing a forced symmetry upon said line for segmenting said line when said greatest common divisor is less than or equal to said minimum selected value.


     
    5. The apparatus of claim 1 wherein said repeatedly determining means comprises

    means for incrementing each decision variable for each new point in a major orthogonal axis direction by the number of inclusive points in the minor orthogonal axis direction, and

    means for taking the resulting value of said decision variable, modulo the number of inclusive points in the major orthogonal axis direction, for obtaining a new decision variable and for determining the location of said next point along said minor orthogonal axis direction.


     
    6. A method for generating and displaying line

    representations of digital data on a digital display device comprising the steps of

    receiving endpoint data of a line to be displayed, determining, under conditions of symmetry, initial positions for at least one pointer, said pointers describing said line,

    determining an initial value of a decision variable for each pointer initial position,

    repeatedly determining a new value of each decision variable for each said pointer for generating point locations representing a segment section of said line,

    generating from said segment section representation, using said symmetry conditions, points representing said entire line, and

    displaying said entire line representation on said digital display device.


     
    7. The method of claim 6 wherein said initial positions determining step comprises the step of imposing a forced symmetry upon said line for determining said initial positions of said pointers symmetrically around a center position of.said line.
     
    8. The method of claim 6 wherein said decision variable initial value determining step comprises the step of

    determining initial values of said decision variables in response to dx, dy, dx/2, and dy/2.


     
    9. The method of claim 6 wherein said initial position determining step comprises the steps of

    finding the greatest common divisor of the inclusive number of points of said line of the X and Y orthogonal axis directions respectively,

    using a natural symmetry of said line for determining said initial positions of said pointers when said greatest common divisor exceeds a selected pre- . determined minimum, and

    imposing a forced symmetry upon said line for determining said initial positions of said pointers when said greatest common divisor is less than or equal to said minimum value.


     
    10. The method of claim 6 wherein said repeatedly determining step comprises the steps of

    incrementing, for each next point along a major orthogonal axis, the value of the decision variable associated with a pointer by the inclusive number of points in the direction of the minor orthogonal axis, and

    taking the resulting new decision variable value modulo the number of inclusive points in the direction of the major orthogonal axis, and

    determining a new value for the location of the next point in the direction of said minor orthogonal axis when said new decision value, before taking its value modulo the number of inclusive points along the major orthogonal axis, exceeds the number of inclusive points along said major orthogonal axis.


     




    Drawing