Claims
- 1. A computer graphics method for approximating a curve having beginning and end coordinates by a series of connected straight line segments, said method employing a recursive subdivision of said curve and control polygons, each control polygon having at least a first straight line segment extending between two coordinates on said curve and additional connecting line segments to create a closed plane figure, a maximum distance between said first straight line segment and said curve defined as an error value, said method comprising computer implemented the steps of:
- a. establishing an error value threshold .DELTA..sub.E between a said first straight line segment of a control polygon and said curve;
- b. establishing a control polygon whose first straight line segment has terminal vertices coincident with said curve's beginning and end coordinates, calculating an error value for said control polygon and testing said error value to determine if it exceeds .DELTA..sub.E and if yes;
- c. modifying said calculated error value by a factor and testing said modified error value to determine if it is greater than .DELTA..sub.E, and if it is, again modifying said modified error value by said same factor, and repeating said test, said modifying action being repeated on a last modified value until a new modified value is equal to or less than .DELTA..sub.E ;
- d. establishing 2.sup.n control polygons between said curve's beginning and end coordinates, where n equals the number of error values calculated in steps b and c;
- e. creating an approximated curve by enabling joinder of said first straight line segments of each said 2.sup.n control polygons; and
- f. displaying the approximated curve on a computer display, whereby a display delay time for the step of displaying is related to an execution time for the computer graphics method.
- 2. The method as recited in claim 1 wherein said curve is a cubic function and said error value in step b is m which is calculated using the expression: ##EQU47## where: x" and y" are second derivatives of coordinate functions.
- 3. The method as recited in claim 2, wherein said modifying step includes a division of the calculated value of m by four.
- 4. The method as recited in claim 1 wherein said curve is a cubic function and said error value in step b is L which is calculated using the expression: ##EQU48## where: x" and y" are second derivatives of coordinate functions.
- 5. The method as recited in claim 4 wherein said modifying step includes the subtraction of one from L.
- 6. The method as recited in claim 1, wherein said curve is a conic function, said method including the additional steps of:
- identifying the curve type to be one of the group: hyperbola, ellipse;
- if said curve is determined to be a hyperbola, calculating a said error value for said curve in step (b) as follows: ##EQU49## if said curve is identified as an ellipse, calculating said error value for said curve in step (b) as follows: ##EQU50## where: w.sub.0, w.sub.1 are curve weight values at curve coordinates 0 and 1, respectively; t=time; and
- a.sub.1, a.sub.2 are either coordinate values x.sub.1, x.sub.2 or y.sub.1, y.sub.2, as the case may be.
- 7. The method as recited in claim 6 wherein said modifying step includes a division of the calculated value of said error value by four.
- 8. The method as recited in claim 6 wherein said error value is calculated using the expression L=Log.sub.4 (m).
- 9. The method as recited in claim 8 wherein said modifying step includes the reduction of the value of L by one.
- 10. The method of claim 6 wherein said conic curve has beginning and end coordinates x(0), y(0), w(0) and x(1), y(1), w (1), and wherein step (a) identifies the curve type by the expressions
- w(1)>w(0)=hyperbola
- w(1)<w(0)=ellipse.
- 11. A computer graphics incremental method for approximating a cubic curve, having beginning and end coordinates, by a series of connected straight line segments, said method predicting the number of steps required to achieve a desired error threshold .DELTA..sub.E between the curve and a series of polygon line segments, wherein .DELTA..sub.E is a maximum distance between said curve and a line segment connecting two coordinates on said curve, each said line segment forming a portion of a polygon, said method comprising computer implemented steps of:
- a) computing ##EQU51## b) choosing a step size t=2.sup.-L ; c) computing x(0), x.sub.t (0), x.sub.tt (0), x.sub.ttt (0) to a precision .DELTA..sub.E 2.sup.-L ;
- d) computing y(0), y.sub.t (0), y.sub.tt (0), y.sub.ttt (0) to a precision .DELTA..sub.E 2.sup.-L ; and
- e) for (t=.DELTA.t to 1, by .DELTA.t increments) computing:
- x(t)=x(t-.DELTA.t)+x.sub.t (t-.DELTA.t),
- x.sub.t (t)=x.sub.t (t-.DELTA.t)+x.sub.tt (t-.DELTA.t),
- x.sub.tt (t)=x.sub.tt (t-.DELTA.t)+x.sub.ttt (t-.DELTA.t),
- y(t)=y(t-.DELTA.t)+y.sub.t (t-.DELTA.t),
- y.sub.t (t)=y.sub.t (t-.DELTA.t)+y.sub.tt (t-.DELTA.t),
- y.sub.tt (t)=y.sub.tt (t-.DELTA.t)+y.sub.ttt (t-.DELTA.t), and
- drawing a line from x(t-.DELTA.t), y(t-.DELTA.t) to x(t), y(t) for each .DELTA.t increment to create an approximated curve
- where: L=number of curve subdivisions;
- t=time;
- x(0), y(0) are x and y coordinate functions at curve point t=0, etc.
- x(0)=x coordinate function at t=0,
- x.sub.t (0)=x.sub.t (t.sub.0 -.DELTA.t)-x(t.sub.0),
- x.sub.tt (0)=x.sub.t (t.sub.0 +.DELTA.t)-x.sub.t (t.sub.0),
- x.sub.ttt (0)=x.sub.tt (t.sub.0 +.DELTA.t) -x.sub.tt (t.sub.0),
- y(0)=y coordinate function at t=0,
- y.sub.t (0)=y.sub.t (t.sub.0 -.DELTA.t)-y(t.sub.0),
- y.sub.tt (0)=y.sub.t (t.sub.0 +.DELTA.t)-y.sub.t (t.sub.0),
- y.sub.ttt (0)=y.sub.tt (t.sub.0 +.DELTA.t) -y.sub.tt (t.sub.0), and
- displaying the approximated curve on a computer display, whereby a display delay time for the step of displaying is related to an execution time for the computer graphics method.
- 12. A computer graphics incremental method for approximating an ellipse, having beginning and end coordinates, by a series of connected straight line segments, said method predicting the number of steps required to achieve a desired error threshold .DELTA..sub.E between an ellipse and a series of line segments, wherein .DELTA..sub.E is a maximum distance between said ellipse and a line segment connecting two coordinates on said ellipse, said method comprising computer implemented steps of:
- a) computing L=log.sub.4 (m.sub.ellipse) where ##EQU52## b) choosing a step size .DELTA.t=2.sup.-L c) computing X( 0), X.sub.t (0), X.sub.tt (0) to a precision .DELTA..sub.E 2.sup.-L ;
- d) computing Y(0), Y.sub.t (0), Y.sub.tt (0) to a precision .DELTA..sub.E 2.sup.-L ;
- e) computing w(0), w.sub.t (0), w.sub.tt (0) to a precision .DELTA..sub.E 2.sup.-L ; and
- f) for (t=.DELTA.t to 1, by .DELTA.t increments) computing
- X(t)=X(t-.DELTA.t)+X.sub.t (t-.DELTA.t),
- X.sub.t (t)=X.sub.t (t-.DELTA.t)+X.sub.tt (t-.DELTA.t),
- Y(t)=Y(t-.DELTA.t)+Y.sub.t (t-.DELTA.t),
- Y.sub.t (t)=Y.sub.t (t-.DELTA.t)+Y.sub.tt (t-.DELTA.t),
- w(t)-w(t-.DELTA.t)+w.sub.t (t-.DELTA.t),
- w.sub.t (t)=w.sub.t (t-.DELTA.t)+w.sub.tt (t-.DELTA.t),
- x(t)=X(t)/w(t),
- y(t)=y(t)/w(t), and
- drawing a line from x(t-.DELTA.t), y(t-.DELTA.t) to x(t), y(t) for each .DELTA.t increment to create an approximated curve
- where: L=number of curve subdivisions;
- w.sub.0, w.sub.1 are curve weight and values at curve coordinates 0 and 1, respectively;
- t=time;
- a.sub.1, a.sub.2 are either coordinate values x.sub.1, x.sub.2 or y.sub.1, y.sub.2, as the case may be;
- X(0)=X(0)w(0)(at t=0);
- X.sub.t (0)=X0)(t.sub.0 +.DELTA.t)-X(0)(t.sub.0);
- X.sub.tt (0)=X.sub.t (0)(t.sub.0 +.DELTA.t)-X.sub.t (0)(t.sub.0);
- X.sub.tt (0)=X.sub.tt (0)(t.sub.0 +.DELTA.t)-X.sub.t (0)(t.sub.0);
- w(0)=weight of curve at t=0;
- w.sub.t (0)=w(0)(t.sub.0 +.DELTA.t)-w(0)(t.sub.0);
- w.sub.tt (0)=w.sub.t (0)(t.sub.0 +.DELTA.t)-w.sub.t (0)(t.sub.0); and
- displaying the approximated curve on a computer display, whereby a display delay time for the step of displaying is related to an execution time for the computer graphics method.
- 13. A computer graphics incremental method for approximating a hyperbola, having beginning and end coordinates, by a series of connected straight line segments, said method predicting the number of steps L required to achieve a desired error threshold .DELTA..sub.E between an hyperbola and a series of line segments, wherein .DELTA..sub.E is a maximum distance between said hyperbola and a line segment connecting two coordinates on said hyperbola, said method comprising computer implemented steps of:
- a) computing L=log.sub.4 (m.sub.hyperbola) where m.sub.hyperbola = ##EQU53## b) choosing a step size .DELTA.t=2.sup.-L c) computing X( 0), X.sub.t (0), X.sub.tt (0) to a precision .DELTA..sub.E 2.sup.-L ;
- d) computing Y(0), Y.sub.t (0), Y.sub.tt (0) to a precision .DELTA..sub.E 2.sup.-L ;
- e) computing w(0), w.sub.t (0), w.sub.tt (0) to a precision .DELTA..sub.E 2.sup.-L ; and
- f) for (t=.DELTA.t to 1, by .DELTA.t increments) computing
- X(t)=X(t-.DELTA.t)+X.sub.t (t-.DELTA.t),
- x.sub.t (t)=X.sub.t (t-.DELTA.t)+X.sub.tt (t-.DELTA.t),
- Y(t)=Y(t-.DELTA.t)+y.sub.t (t-.DELTA.t),
- y.sub.t (t)=y.sub.t (t-.DELTA.t)+y.sub.tt (t-.DELTA.t),
- w(t)=w(t-.DELTA.t)+w.sub.t (t-.DELTA.t),
- w.sub.t (t)=w.sub.t (t-.DELTA.t)+w.sub.tt (t-.DELTA.t),
- x(t)=X(t)/w(t),
- y(t)=Y(t)/w(t), and
- drawing a line from x(t-.DELTA.t), y(t-.DELTA.t) to x(t), y(t) for each .DELTA.t increment to create an approximated curve
- where: L=number of curve subdivisions;
- w.sub.0, w.sub.1 are curve weight and values at curve coordinates 0 and 1, respectively;
- t=time;
- a.sub.1, a.sub.2 are either coordinate values x.sub.1, x.sub.2 or y.sub.1, y.sub.2, as the case may be;
- X(0)=X(0) w(0)(at t=0);
- X.sub.t (0)=X(0)(t+.DELTA.t)-X(0)(t.sub.0);
- X.sub.tt (0)=x.sub.t (0)(t.sub.0 +.DELTA.t)-X.sub.t (0)(t.sub.0);
- X.sub.ttt (0)=X.sub.tt (0)(t.sub.0 +.DELTA.t)-X.sub.tt (0)(t.sub.0);
- w(0)=weight of curve at t=0;
- w.sub.t (0)=w(0)(t.sub.0 +.DELTA.t)-w(0)(t.sub.0);
- w.sub.tt (0)=w.sub.t (0)(t.sub.0 +.DELTA.t)-w.sub.t (0)(t.sub.0); and
- displaying the approximated curve on a computer display, whereby a display delay time for the step of displaying is related to an execution time for the computer graphics method.
- 14. A computer graphics system for approximating a curve having beginning and end coordinates by a series of connected straight line segments, said system employing a recursive subdivision procedure for said curve and control polygons to accomplish subdivision of said curve, each control polygon having at least a first straight line segment extending between two coordinates on said curve and additional connecting line segments to create a closed plane figure, a maximum distance between said first straight line segment and said curve defined as an error value, said system including a stored error value threshold .DELTA..sub.E, said system comprising:
- means for establishing a control polygon whose first straight line segment has terminal vertices coincident with beginning and end coordinates of said curve;
- means for calculating an error value for said control polygon and testing said error value to determine if it exceeds .DELTA..sub.E and if yes, modifying said error value that was calculated by a factor and testing said modified error value to determine if said modified error value is greater than .DELTA..sub.E, and if yes, again modifying said modified error value by said same factor and repeating said testing, said modifying being repeated on a last modified value by said means for calculating until a new modified value is equal to or less than .DELTA..sub.E ;
- means for establishing 2.sup.n control polygons between said beginning and end coordinates of said curve, where n equals a number of error values calculated by said means for calculating; and
- means for creating an approximated curve by joining said first straight line segments of each of said 2.sup.n control polygons and displaying the approximated curve.
Parent Case Info
This is a continuation of application Ser. No. 07/705,041, filed on May 23, 1991, now abandoned.
US Referenced Citations (14)
Non-Patent Literature Citations (3)
Entry |
Computer Science Press, Inc., "Algorithms for Graphics and Image Processing", Theo Pavlidis Bell Laboratories, pp. 221-231., 1982. |
I. D. Faux et al., "Computational Geometry for Design and Manufacture", Dept. of Mathematics 1979, pp. 127-145. Publisher: E. Horwood Ltd. |
Wolfgang Dahmen, "Subdivision Algorithms Converge Quadratically", 1988, pp. 145-158, Journal of Computational and Applied Mathimatics. |
Continuations (1)
|
Number |
Date |
Country |
Parent |
705041 |
May 1991 |
|