WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
System and method of hybrid forward differencing to render Bezier splines    
United States Patent5367617   
Link to this pagehttp://www.wikipatents.com/5367617.html
Inventor(s)Goossen; James A. (Bellevue, WA); Olynyk; Kirk O. (Redmond, WA)
AbstractA high speed and memory efficient system and method for rendering Bezier curves. The system utilizes a hybrid forward differencing function representing the Bezier curve defined by the Bezier control points and renders the curve with a small number of straight line segments. The system renders the curve in a manner that results in the same Bezier control points that are calculated using recursive subdivision techniques and rejects line segment approximations that would not be derived from recursive subdivision. The system can start at either end of a Bezier curve and will render the same approximation. The method is readily implemented on a computer and is applicable to Bezier curves of any order.



 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Inventor     Goossen; James A. (Bellevue, WA); Olynyk; Kirk O. (Redmond, WA)
Owner/Assignee     Microsoft Corporation (Redmond, WA)
Patent assignment
All assignments
Publication Date     November 22, 1994
Application Number     07/909,055
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     July 2, 1992
US Classification     345/442
Int'l Classification     G06F 015/62
Examiner     Nguyen; Phu K.
Assistant Examiner    
Attorney/Law Firm     Seed & Berry
Address
Parent Case    
Priority Data    
USPTO Field of Search     395/143 395/142 395/141 345/132 345/134 345/136 345/142 345/144 345/15 345/16 345/17
Patent Tags     hybrid forward differencing render bezier splines
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5297294
Washick

Mar,1994

[0 after 0 votes]
5185855
Kato
345/441
Feb,1993

[0 after 0 votes]
4949281
Hillenbrand
345/442
Aug,1990

[0 after 0 votes]
4878182
Aranda
345/443
Oct,1989

[0 after 0 votes]
4620287
Yam
345/442
Oct,1986

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


We claim:

1. A computer system for approximating a Bezier curve with at least a line segment, comprising:

(a) input means for inputting first, second, third, and fourth sequential Bezier control points defining a cubic Bezier curve;

(b) means for selecting a test magnitude indicative of a desired degree of accuracy with which the line segment should approximate said Bezier curve;

(c) means for determining a hybrid forward differencing function based on said first, second, third, and fourth sequential inputted Bezier control points;

(d) size means for selecting a step size, where said hybrid forward differencing function defines a portion of said Bezier curve from a present position of said hybrid forward differencing function to an end point defined by said step size, said size means selecting an initial value for said selected step size so that said hybrid forward differencing function initially defines the entire Bezier curve from said first inputted Bezier control point to said fourth inputted Bezier control point;

(e) error means for determining a first error vector and a second error vector from said hybrid forward differencing function based on said selected step size;

(f) means for comparing the magnitude of said first error vector and said second error vector with said test magnitude, and indicating if the magnitude of either said first error vector or said second error vector exceeds said test magnitude or if the magnitudes of both said first and said second error vector are less than said test magnitude; and

(g) line means for generating a straight line segment between said present position and said end point to approximate said Bezier curve in response to an indicator signal.

2. The system of claim 1, further including:

(h) first alteration means for altering said hybrid forward differencing function to decrease said step size taken by said hybrid forward differencing function if said comparing means indicates that the magnitude of either said first or said second error vector exceeds said test magnitude, said first alteration means generating a first operated function defining a subdivided portion of said Bezier curve extending from said present position to a new end point defined by said decreased step size, and providing said first operated function for processing by said error means, and generating said indicator signal if the magnitudes of said first and said second error vectors are both less than said test magnitude.

3. The system of claim 2, further including:

(i) second alteration means for altering said hybrid forward differencing function to increase said step size taken by said hybrid forward differencing function, upon said line step generating a straight line without the intervening application of said first alteration means, if the magnitudes of said first and said second error vectors are both less than said test magnitude, said second alteration means generating a second operated function defining a portion of said Bezier curve larger than said subdivided portion and extending from said present position to an increased end point defined by said increased step size; and

(j) matching means for determining if an increased straight line segment extending between said present position and said increased end point would be approximated by recursive subdivision, generating said indicator signal if the magnitude of either said first or said second error vector determined from said second operated function exceeds said test magnitude or if said matching means determines that said increased straight line segment would not be derived by said recursive subdivision, and providing said line means with said present position and said increased end point and generating said indicator signal to generate said increased straight line segment if the magnitudes of said first and said second error vectors determined from said second operated function are both less than said test magnitude and said matching means determines that said increased straight line segment would be derived by said recursive subdivision.

4. The system according to claim 1 wherein said means for comparing the magnitudes of said first and second error vectors with said test magnitude includes:

means for determining and selecting the vector components with the largest magnitude for said first and said second error vectors; and

means for comparing the magnitudes of said selected vector component of said first and second error vectors with said test magnitude, and indicating if the magnitude of said selected vector component of either said first or said second error vector exceeds said test magnitude or if the magnitudes of both of said selected vector components are less than said test magnitude.

5. A computer system for approximating a Bezier curve with at least a line segment, comprising:

(a) input means for inputting first, second, third, and fourth sequential Bezier control points defining a cubic Bezier curve;

(b) means for selecting a test magnitude indicative of a desired degree of accuracy with which the line segment should approximate said Bezier curve;

(c) means for determining a hybrid forward differencing function based on said first, second, third, and fourth sequential inputted Bezier control points, said function having four terms, e.sub.0 through e.sub.3, and having the following general form:

f(t)=e.sub.0 E.sub.0 (t)+e.sub.1 E.sub.1 (t)+e.sub.2 E.sub.2 (t)+e.sub.3 E.sub.3 (t);

(d) size means for selecting a step size, where said hybrid forward differencing function defines a portion of said Bezier curve from a present position of said hybrid forward differencing function to an end point defined by said step size, said size means selecting an initial value for said selected step size so that said hybrid forward differencing function initially defines the entire Bezier curve from said first inputted Bezier control point to said fourth inputted Bezier control point;

(e) error means for determining a first error vector and a second error vector from said hybrid forward differencing function based on said selected step size, said first and second error vectors being e.sub.2 and e.sub.3, respectively;

(f) means for comparing the magnitude of said first error vector and said second error vector with said test magnitude, and indicating if the magnitude of either said first error vector or said second error vector exceeds said test magnitude or if the magnitudes of both said first and said second error vector are less than said test magnitude; and

(g) line means for generating a straight line segment between said present position and said end point to approximate said Bezier curve in response to an indicator signal.

6. The system of claim 5, further including:

(h) first alteration means for altering said hybrid forward differencing function to decrease said step size taken by said hybrid forward differencing function if said comparing means indicates that the magnitude of either said first or said second error vector exceeds said test magnitude, said first alteration means generating a first operated function defining a subdivided portion of said Bezier curve extending from said present position to a new end point defined by said decreased step size, and providing said first operated function for processing by said error meats, and generating said indicator signal if the magnitudes of said first and said second error vectors are both less than said test magnitude.

7. The system of claim 6, further including:

(i) second alteration means for altering said hybrid forward differencing function to increase said step size taken by said hybrid forward differencing function, upon said forward step means altering said hybrid forward differencing function without the intervening application of said first alteration means, if the magnitudes of said first and said second error vectors are both less than said test magnitude, said second alteration means generating a second operated function defining a portion of said Bezier curve larger than said subdivided portion and extending from said present position to an increased end point defined by said increased step size; and

(j) matching means for determining if an increased straight line segment extending between said present position and said increased end point would be approximated by recursive subdivision, generating said indicator signal if the magnitude of either said first or said second error vector determined from said second operated function exceeds said test magnitude or if said matching means determines that said increased straight line segment would not be derived by said recursive subdivision, and providing said line means with said present position and said increased end point and generating said indicator signal to generate said increased straight line segment if the magnitudes of said first and said second error vectors determined from said second operated function are both less than said test magnitude and said matching means determines that said increased straight line segment would be derived by said recursive subdivision.

8. The system according to claim 5 wherein said means for comparing the magnitudes of said first and second error vectors with said test magnitude includes:

means for determining and selecting the vector components with the largest magnitude for said first and said second error vectors; and

means for comparing the magnitudes of said selected vector component of said first and second error vectors with said test magnitude, and indicating if the magnitude of said selected vector component of either said first or said second error vector exceeds said test magnitude or if the magnitudes of both of said selected vector components are less than said test magnitude.

9. A computer system for approximating a Bezier curve with at least a line segment, comprised of:

(a) input means for inputting a variable number, N, of sequential Bezier control points, P.sub.1 . . . P.sub.N, defining a Bezier curve of degree N-1;

(b) means for selecting a test magnitude indicative of a desired degree of accuracy with which the line segment should approximate said Bezier curve;

(c) means for determining a hybrid forward differencing function based on said N sequential inputted Bezier control points;

(d) size means for selecting a step size, where said hybrid forward differencing function defines a portion of said Bezier curve from a present position of said hybrid forward differencing function to an end point defined by said step size, said size means selecting an initial value for said selected step size so that said hybrid forward differencing function initially defines the entire Bezier curve from said Bezier control point P.sub.1 to said Bezier control point P.sub.N ;

(e) error means for determining a set of N-2 error vectors, E.sub.1 . . . E.sub.N-2, from said hybrid forward differencing function based on said selected step size;

(f) means for comparing the magnitudes of each of said N-2 error vectors with said test magnitude, and indicating if the magnitude of any of said N-2 error vectors exceeds said test magnitude or if the magnitude of each of said N-2 error vectors is less than said test magnitude; and

(g) line means for generating a straight line segment between said present position and said end point to approximate said Bezier curve in response to an indicator signal.

10. The system of claim 9, further including:

(h) first alteration means for altering said hybrid forward differencing function to decrease said step size taken by said hybrid forward differencing function if said comparing means indicates that the magnitude of any of said N-2 error vectors exceeds said test magnitude, said first alteration means generating a first operated function defining a subdivided portion of said Bezier curve extending from said present position to a new end point defined by said decreased step size, and providing said first operated function for processing by said error means, and generating said indicator signal if the magnitude of each of said N-2 error vectors is less than said test magnitude.

11. The system of claim 10, further including:

(i) second alteration means for altering said hybrid forward differencing function to increase said step size taken by said hybrid forward differencing function, upon said forward step means altering said hybrid forward differencing function without the intervening application of said first alteration means, if the magnitudes of said N-2 error vectors are each less than said test magnitude, said second alteration means generating a second operated function defining a portion of said Bezier curve larger than said subdivided portion and extending from said present position to an increased end point defined by said increased step size; and

(j) matching means for determining if an increased straight line segment extending between said present position and said increased end point would be approximated by recursive subdivision, generating said indicator signal if any of said N-2 error vectors determined from said second operated function exceeds said test magnitude or if said matching means determines that said increased straight line segment would not be derived by said recursive subdivision, and providing said line means with said present position and said increased end point and generating said indicator signal to generate said increased straight line segment if the magnitudes of each of said N-2 error vectors determined from said second operated function are less than said test magnitude and said matching means determines that said increased straight line segment would be derived by said recursive subdivision.

12. The system according to claim 9 wherein said means for comparing the magnitudes of said N-2 error vectors with said test magnitude includes:

means for resolving the vector components of said N-2 error vectors; and

means for comparing the magnitudes of said resolved components of said N-2 error vectors with said test magnitude, and indicating if the magnitude of any of said resolved vector components of said N-2 error vectors exceeds said test magnitude or if the magnitude of each of said resolved vector components of said N-2 error vectors is less than said test magnitude.

13. A computer system for approximating a Bezier curve with at least a line segment, comprised of:

(a) input means for inputting a variable number, N, of sequential Bezier control points, P.sub.1 . . . P.sub.N, defining a Bezier curve of degree N-1;

(b) means for selecting a test magnitude indicative of a desired degree of accuracy with which the line segment should approximate said Bezier curve;

(c) means for determining a hybrid forward differencing function based on said N sequential inputted Bezier control points;

(d) size means for selecting a step size, where said hybrid forward differencing function defines a portion of said Bezier curve from a present position of said hybrid forward differencing function to an end point defined by said step size, said size means selecting an initial value for said selected step size so that said hybrid forward differencing function initially defines the entire Bezier curve from said Bezier control point P.sub.1 to said Bezier control point P.sub.N ;

(e) error means for determining a set of N-2 error functions based on a set of N-2 error vectors, E.sub.1 . . . E.sub.N-2, from said hybrid forward differencing function based on said selected step size;

(f) means for comparing the magnitudes of each of said N-2 error functions with said test magnitude, and indicating if the magnitude of any of said N-2 error functions exceeds said test magnitude or if the magnitude of each of said N-2 error functions is less than said test magnitude; and

(g) line means for generating a straight line segment between said present position and said end point to approximate said Bezier curve in response to an indicator signal.

14. A computer system for approximating a Bezier curve with at least a line segment, comprised of:

(a) input means for inputting a variable number, N, of sequential Bezier control points, P.sub.1 . . . P.sub.N, defining a Bezier curve of degree N-1;

(b) means for selecting a test magnitude indicative of a desired degree of accuracy with which the line segment should approximate said Bezier curve:

(c) means for determining a hybrid forward differencing function based on said N sequential inputted Bezier control points, said function having N terms, e.sub.0 through e.sub.N-1, and having the following general form:

f(t)=e.sub.0 E.sub.0 (t)+e.sub.1 E.sub.1 (t)+e.sub.2 E.sub.2 (t)+. . . e.sub.N-1 E.sub.N-1 (t);

(d) size means for selecting a step size, where said hybrid forward differencing function defines a portion of said Bezier curve from a present position of said hybrid forward differencing function to an end point defined by said step size, said size means selecting an initial value for said selected step size so that said hybrid forward differencing function initially defines the entire Bezier curve from said Bezier control point P.sub.1 to said Bezier control point P.sub.N ;

(e) error means for determining a set of N-2 error vectors, E.sub.l . . . E.sub.N-2, from said hybrid forward differencing function based on based on said selected step size, said N-2 error vectors being e.sub.2 through e.sub.N-1, respectively;

(f) means for comparing the magnitudes of each of said N-2 error vectors with said test magnitude, and indicating if the magnitude of any of said N-2 error vectors exceeds said test magnitude or if the magnitude of each of said N-2 error vectors is less than said test magnitude; and

(g) line means for generating a straight line segment between said present position and said end point to approximate said Bezier curve in response to an indicator signal.

15. The system of claim 14, further including:

(h) first alteration means for altering said hybrid forward differencing function to decrease said step size taken by said hybrid forward differencing function if said comparing means indicates that the magnitude of any of said N-2 error vectors exceeds said test magnitude, said first alteration means generating a first operated function defining a subdivided portion of said Bezier curve extending from said present position to a new end point defined by said decreased step size, and providing said first operated function for processing by element e, and generating said indicator signal if the magnitude of each of said N-2 error vectors is less than said test magnitude.

16. The system of claim 15, further including:

(i) second alteration means for altering said hybrid forward differencing function to increase said step size taken by said hybrid forward differencing function, upon said forward step means altering said hybrid forward differencing function without the intervening application of said first alteration means, if the magnitudes of said N-2 error vectors are each less than said test magnitude, said second alteration means generating a second operated function defining a portion of said Bezier curve larger than said subdivided portion and extending from said present position to an increased end point defined by said increased step size; and

(j) matching means for determining if an increased straight line segment extending between said present position and said increased end point would be approximated by recursive subdivision, generating said indicator signal if any of said N-2 error vectors determined from said second operated function exceeds said test magnitude or if said matching means determines that said increased straight line segment would not be derived by said recursive subdivision, and providing said line means with said present position and said increased end point and generating said indicator signal to generate said increased straight line segment if the magnitudes of each of said N-2 error vectors determined from said second operated function are less than said test magnitude and said matching means determines that said increased straight line segment would be derived by said recursive subdivision.

17. The system according to claim 14 wherein said means for comparing the magnitudes of said N-2 error vectors with said test magnitude includes:

means for resolving the vector components of said N-2 error vectors; and

means for comparing the magnitude of at least the largest of said resolved components of said N-2 error vectors with said test magnitude, and indicating if the magnitude of any of said resolved vector components of said N-2 error vectors exceeds said test magnitude or if the magnitude of each of said resolved vector components of said N-2 error vectors is less than said test magnitude.

18. A computer system for generating the same straight line segments that recursive subdivision generate to approximate a Bezier curve using a test magnitude indicative of a desired degree to accuracy with which the line segments should approximate the curve, the system comprised of:

(a) input means for inputting a variable number, N, of sequential Bezier control points, P.sub.1 . . . P.sub.N, defining a Bezier curve of degree N-1, with Bezier control points P.sub.1 and P.sub.N being end points that coincide with the curve;

(b) means for determining a hybrid forward differencing function based on said N sequential inputted Bezier control points;

(c) error means for selecting a step size, where said hybrid forward differencing function defines a portion of said Bezier curve from a present position of said hybrid forward differencing function to an end point defined by said step size, said size means selecting an initial value for said selected step size so that said hybrid forward differencing function initially defines the entire Bezier curve from said Bezier control point P.sub.1 to said Bezier control point P.sub.N ;

(d) error means for determining a set of N-2 error vectors, E.sub.1 . . . E.sub.N-2, from said hybrid forward differencing function, based on said selected step size:

(e) first alteration means for altering said hybrid forward differencing function to decrease said step size taken by said hybrid forward differencing function if the magnitude of any of said N-2 error vectors exceeds the test magnitude, said first alteration means generating a first operated function defining a subdivided portion of said Bezier curve extending from said present position to a new end point defined by said decreased step size, and providing said first operated function for processing by said error means;

(f) line means for generating a straight line segment between said present position and said end point to approximate said Bezier curve in response to an indicator signal;

(g) forward step means for altering said hybrid forward differencing function upon said line means generating a straight line, said forward step means generating a forward operated function defining a subdivided portion of said Bezier curve by moving said present position of said hybrid forward differencing function to said end point defined by said step size without altering said step size and providing said forward operated function for processing by element d;

(h) second alteration means for altering said hybrid forward differencing function to increase said step size taken by said hybrid forward differencing function, upon said forward step means altering said hybrid forward differencing function without the intervening application of said first alteration means, if the magnitudes of said N-2 error vectors are each less than said test magnitude, said second alteration means generating a second operated function defining a portion of said Bezier curve larger than said subdivided portion and extending from said present position to an increased end point defined by said increased step size;

(i) matching means for determining if an increased straight line segment extending between said present position and said increased end point would be approximated by the recursive subdivision, and providing said second operated function for processing by element d if the magnitudes of each of said N-2 error vectors determined from said second operated function are each less than the test magnitude and if said increased straight line segment would be derived by the recursive subdivision, and generating said indicator signal if any of said N-2 error vectors determined from said second operated function exceeds the test magnitude or if said matching means determines that said increased straight line segment extending between said present position and said increased end point would not be derived by the recursive subdivision; and

(j) comparing means for comparing the magnitudes of each of said N-2 error vectors with the test magnitude, and generating said indicator signal if the magnitude of each of said N-2 error vectors is less than the test magnitude and said first alteration means was the most recently applied of said first and second alteration means.

19. The system according to claim 18 wherein said comparing means includes:

means for resolving the vector components of said N-2 error vectors; and

means for comparing the magnitude of at least the largest of said resolved components of said N-2 error vectors with said test magnitude, and generating said indicator signal if the magnitude of each of said resolved vector components of said N-2 error vectors is less than said test magnitudes and said first alteration was the most recently applied of said first and second alteration means.

20. A computer system for generating a straight line segment to approximate a Bezier curve, the system comprised of:

a central processor:

a memory, connected to said central processor via a bus carrying electrical data and control signals;

an input unit by which a first, second, third, and fourth sequential Bezier control points defining a cubic Bezier curve may be entered into said memory via said bus;

a test magnitude indicative of a desired degree of accuracy with which the line segment should approximate said Bezier curve:

a hybrid forward differencing generator connected to said bus generating a hybrid forward differencing function based on said first, second, third, and fourth sequential inputted Bezier control points;

size means for selecting a step size where said hybrid forward differencing function defines a portion of said Bezier curve from a present position of said hybrid forward differencing function to an end point defined by said step size, said size means selecting an initial value for said selected step size, said step size having an initial step value so that said hybrid forward differencing function initially defines the entire Bezier curve from said first Bezier control point to said fourth Bezier control point;

a set of operators connected to said bus operating on said hybrid forward differencing function to decrease said step size so that said hybrid forward differencing function represents a smaller portion of said Bezier curve and doubling said step value indicating that it takes twice as many steps for said hybrid forward differencing function to reach said end point of said Bezier curve, to increase said step size so that said hybrid forward differencing function represents a larger portion of said Bezier curve and halving said step value indicating that it takes half as many steps for said hybrid forward differencing function to reach said end point of said Bezier curve, or take a forward step at the present step size so that the current position of said hybrid forward differencing function is incremented by said present step size and decrementing said step value indicating that said hybrid forward differencing function has taken one step, at the present step size toward said end point of said Bezier curve;

an error vector calculator connected to said bus determining a first and second error vectors from said hybrid forward differencing function;

a comparator comparing the value of said test magnitude with the value of the magnitude of said first and said second error vectors and indicating if the magnitude of either said first or said second error vector exceeds said test magnitude or if the magnitudes of both said first and said second error vectors are less than said test magnitude;

a line segment generator receiving said present position and said end point and, upon receiving an indicator signal, generating a plurality of data values corresponding to pixels to create a line segment drawn between said present position and said end point;

a display driver receiving said plurality of data points and converting said data points into a display format; and

a display receiving said converted data points and generating an image corresponding to said line segment drawn between said present position and said end point to approximate at least a portion of said Bezier curve.

21. The system of claim 20 wherein said set of operators applies a first of said set of operators to said hybrid forward differencing function to decrease said step size creating an operated hybrid forward differencing function that represents a smaller portion of said Bezier curve and providing said operated hybrid forward differencing function to said error vector calculator if said comparator indicates that the magnitude of either said first or said second error vectors exceeds said test magnitude and generating said indicator signal if the magnitudes of said first and said second error vectors are both less than said test magnitude.

22. The system of claim 21 wherein said set of operators, upon said line segment generator generating a straight line without an intervening application of said first operator, applies a second of said set of operators to said hybrid forward differencing function to increase said step size creating a second operated hybrid forward differencing function that represents a larger portion of said Bezier curve extending between said present position and an increased end point defined by said step size, generating said indicator signal if the magnitude of either said first or said second error vectors determined from said second operated function exceeds said test magnitude or if said step value is odd, and providing said line segment generator with said present position and said increased end point and generating said indicator signal to generate an increased straight line segment extending between said present position and said increased end point if the magnitudes of said first and said second error vectors determined from said second operated function are both less than said test magnitude and said step value is even.

23. The system according to claim 20 wherein said comparator compares the magnitude of at least the largest of the resolved vector components of said first and said second error vectors with said test magnitude and indicates if the magnitude of any of the resolved vector components of said first and said second error vectors exceeds said test magnitude or if the magnitudes of the resolved vector components of both said first and said second error vectors are less than said test magnitude.

24. A computer system for generating a straight line segment to approximate a Bezier curve, the system comprised of:

a central processor:

a memory, connected to said central processor via a bus carrying electrical data and control signals;

an input unit by which a first, second, third, and fourth sequential Bezier control points defining a cubic Bezier curve may be entered into said memory via said bus;

a test magnitude indicative of a desired degree of accuracy with which the line segment should approximate said Bezier curve;

a hybrid forward differencing generator connected to said bus generating a hybrid forward differencing function based on said first, second, third, and fourth sequential inputted Bezier control points, said function having four terms, e.sub.0 through e.sub.3, and having the following general form:

f(t)=e.sub.0 E.sub.0 (t)+e.sub.1 E.sub.1 (t)+e.sub.2 E.sub.2 (t)+e.sub.3 E.sub.3 (t);

size means for selecting a step size where said hybrid forward differencing function defines a portion of said Bezier curve from a present position of said hybrid forward differencing function to an end point defined by said step size, said size means selecting an initial value for said selected step size, so that said hybrid forward differencing function initially defines the entire Bezier curve from said first Bezier control point to said fourth Bezier control point;

a set of operators connected to said bus operating on said hybrid forward differencing function to decrease said step size so that said hybrid forward differencing function represents a smaller portion of said Bezier curve and doubling said step value indicating that it takes twice as many steps for said hybrid forward differencing function to reach said end point of said Bezier curve, to increase said step size so that said hybrid forward differencing function represents a larger portion of said Bezier curve and halving said step value indicating that it takes half as many steps for said hybrid forward differencing function to reach said end point of said Bezier curve, or take a forward step at the present step size so that the current position of said hybrid forward differencing function is incremented by said present step size and decrementing said step value indicating that said hybrid forward differencing function has taken one step, at the present step size toward said end point of said Bezier curve:

an error vector calculator connected to said bus determining a first error vector and a second error vector from said hybrid forward differencing function based on said selected step size, said first and second error vectors being e.sub.2 and e.sub.3, respectively;

a comparator comparing the value of said test magnitude with the value of the magnitude of said first and said second error vectors and indicating if the magnitude of either said first or said second error vector exceeds said test magnitude or if the magnitudes of both said first and said second error vectors are less than said test magnitude;

a line segment generator receiving said present position and said end point and, upon receiving an indicator signal, generating a plurality of data values corresponding to pixels to create a line segment drawn between said present position and said end point;

a display driver receiving said plurality of data points and converting said data points into a display format; and

a display receiving said converted data points and generating an image corresponding to said line segment drawn between said present position and said end point to approximate at least a portion of said Bezier curve.

25. The system of claim 24 wherein said set of operators applies a first of said set of operators to said hybrid forward differencing function to decrease said step size creating an operated hybrid forward differencing function that represents a smaller portion of said Bezier curve and providing said operated hybrid forward differencing function to said error vector calculator if said comparator indicates that the magnitude of either said first or said second error vectors exceeds said test magnitude and generating said indicator signal if the magnitudes of said first and said second error vectors are both less than said test magnitude.

26. The system of claim 25 wherein said set of operators, upon said line segment generator generating a straight line without an intervening application of said first operator, applies a second of said set of operators to said hybrid forward differencing function to increase said step size creating a second operated hybrid forward differencing function that represents a larger portion of said Bezier curve extending between said present position and an increased end point defined by said step size, generating said indicator signal if the magnitude of either said first or said second error vectors determined from said second operated function exceeds said test magnitude or if said step value is odd, and providing said line segment generator with said present position and said increased end point and generating said indicator signal to generate an increased straight line segment extending between said present position and said increased end point if the magnitudes of said first and said second error vectors determined from said second operated function are both less than said test magnitude and said step value is even.

27. The system according to claim 24 wherein said comparator compares the magnitude of at least the largest of the resolved vector components of said first and said second error vectors with said test magnitude and indicates if the magnitude of any of the resolved vector components of said first and said second error vectors exceeds said test magnitude or if the magnitudes of the resolved vector components of both said first and said second error vectors are less than said test magnitude.

28. A computer system for generating a straight line segment to approximate a Bezier curve, the system comprised of:

a central processor:

a memory, connected to said central processor via a bus carrying electrical data and control signals;

an input unit by which a variable number, N, of sequential Bezier control points, P.sub.1 . . . P.sub.N, defining a Bezier curve of degree N-1 may be entered into said memory via said bus;

a test magnitude indicative of a desired degree of accuracy with which the line segment should approximate said Bezier curve;

a hybrid forward differencing generator connected to said bus generating a hybrid forward differencing function based on said N sequential inputted Bezier control points;

size means for selecting a step size where said hybrid forward differencing function defines a portion of said Bezier curve from a present position of said hybrid forward differencing function to an end point defined by said step size, said size means selecting an initial value for said selected step size so that said hybrid forward differencing function initially defines the entire Bezier curve from said Bezier control point P.sub.1 to said Bezier control point P.sub.N ;

a set of operators connected to said bus operating on said hybrid forward differencing function to decrease said step size so that said hybrid forward differencing function represents a smaller portion of said Bezier curve and doubling said step value indicating that it takes twice as many steps for said hybrid forward differencing function to reach said end point of said Bezier curve, to increase said step size so that said hybrid forward differencing function represents a larger portion of said Bezier curve and halving said step value indicating that it takes half as many steps for said hybrid forward differencing function to reach said end point of said Bezier curve, or take a forward step at the present step size so that the current position of said hybrid forward differencing function is incremented by said present step size and decrementing said step value indicating that said hybrid forward differencing function has taken one step, at the present step size toward said end point of said Bezier curve;

an error vector calculator connected to said bus and determining a set of N-2 error vectors from said hybrid forward differencing function;

a comparator comparing the value of said test magnitude with the value of the magnitude of each of said N-2 error vectors and indicating if the magnitude of any of said N-2 error vectors exceeds said test magnitude or if the magnitudes of said N-2 error vectors are each less than said test magnitude;

a line segment generator receiving said present position and said end point and, upon receiving an indicator signal, generating a plurality of data values corresponding to pixels to create a line segment drawn between said present position and said end point;

a display driver receiving said plurality of data points and converting said data points into a display format; and

a display receiving said converted data points mad generating an image corresponding to said line segment drawn between said present position and said end point to approximate at least a portion of said Bezier curve.

29. The system of claim 28 wherein said set of operators applies a first of said set of operators to said hybrid forward differencing function to decrease said step size creating an operated hybrid forward differencing function that represents a smaller portion of said Bezier curve and providing said operated hybrid forward differencing function to said error vector calculator if said comparator indicates that the magnitude of any of said N-2 error vectors exceeds said test magnitude and generating said indicator signal if the magnitude of each of said N-2 error vectors is less than said test magnitude.

30. The system of claim 29 wherein said set of operators, upon said line segment generator generating a straight line without an intervening application of said first operator, applies a second of said set of operators to said hybrid forward differencing function to increase said step size creating a second operated hybrid forward differencing function that represents a larger portion of said Bezier curve extending between said present position and an increased end point defined by said step size, generating said indicator signal if the magnitude of any of said N-2 error vectors determined from said second operated function exceeds said test magnitude or if said step value is odd, and providing said line segment generator with said present position and said increased end point and generating said indicator signal to generate an increased straight line segment extending between said present position and said increased end point if the magnitudes of each of said N-2 error vectors determined from said operated function are less than said test magnitude and said step value is even.

31. The system according to claim 28 wherein said comparator compares the magnitude of at least the largest of the resolved vector components of said N-2 error vectors with said test magnitude and indicates if the magnitude of any of the resolved vector components of said N-2 error vectors exceeds said test magnitude or if the magnitudes of the resolved vector components of said N-2 error vectors are each less than said test magnitude.

32. A computer system for generating a straight line segment to approximate a Bezier curve, the system comprised of:

a central processor;

a memory, connected to said central processor via a bus carrying electrical data and control signals;

an input unit by which a variable number, N, of sequential Bezier control points. P.sub.1 . . . P.sub.N, defining a Bezier curve of degree N-1 may be entered into said memory via said bus;

a test magnitude indicative of a desired degree of accuracy with which the line segment should approximate said Bezier curve:

a hybrid forward differencing generator connected to said bus generating a hybrid forward differencing function based on said based on said N sequential inputted Bezier control points, said function having N terms, e.sub.0 through e.sub.N-1, and having the following general form:

f(t)=e.sub.0 E.sub.0 (t)+e.sub.1 E.sub.1 (t)+e.sub.2 E.sub.2 (t)+. . . e.sub.N-1 E.sub.N-1 (t);

size means for selecting a step size where said hybrid forward differencing function defines a portion of said Bezier curve from a present position of said hybrid forward differencing function to an end point defined by said step size, so that said hybrid forward differencing function initially defines the entire Bezier curve from said Bezier control point P.sub.1 to said Bezier control point P.sub.N ;

a set of operators connected to said bus operating on said hybrid forward differencing function to decrease said step size so that said hybrid forward differencing function represents a smaller portion of said Bezier curve and doubling said step value indicating that it takes twice as many steps for said hybrid forward differencing function to reach said end point of said Bezier curve, to increase said step size so that said hybrid forward differencing function represents a larger portion of said Bezier curve and halving said step value indicating that it takes half as many steps for said hybrid forward differencing function to reach said end point of said Bezier curve, or take a forward step at the present step size so that the current position of said hybrid forward differencing function is incremented by said present step size and decrementing said step value indicating that said hybrid forward differencing function has taken one step, at the present step size toward said end point of said Bezier curve;

an error vector calculator connected to said bus and determining a set of N-2 error vectors from said hybrid forward differencing function based on said selected step size, said N-2 error vectors being e.sub.2 through e.sub.N-1, respectively from said hybrid forward differencing function;

a comparator comparing the value of said test magnitude with the value of the magnitude of each of said N-2 error vectors and indicating if the magnitude of any of said N-2 error vectors exceeds said test magnitude or if the magnitudes of said N-2 error vectors are each less than said test magnitude;

a line segment generator receiving said present po