IP Library Granted Patent US 7,196,707
Granted Patent B2
US 7,196,707 · App. 10/938,715 · Granted Mar 27, 2007

Tangent balancing

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,196,707
App. No.
10/938,715
Granted
Mar 27, 2007
Kind
B2
Abstract

When a Bézier spline is fitted to a plurality of points the two tangent handles at each control point can be very different in length. A method of fitting a second spline to the first spline that has tangent handles of equal length at each control point is provided. A point is found on the first spline that is close to the midpoint between the two control points defining the tangent handles. This point is a new control point on the second spline. Tangent handles to the new control point are then found such that they have a slope equal to the tangent to the first spline at the new control point, the sum of their lengths is equal to the sum of the original two tangent handles and their lengths are equal to each other. A second spline found in this way closely approximates the first spline. The lengths of the tangent handles may be adjusted to provide a better fit.

Claims (58)

1. An image processing apparatus comprising:

(a) a computer having a memory;

(b) an application executing on the computer, wherein the application is configured to:

(i) obtain a first spline fitted to a plurality of points;

(ii) fit a second spline to said first spline, wherein:

(1) said second spline has the same number of control points as said first spline;

(2) for any principal control point on said second spline, tangent handles of the principal control point are of equal length; and

(iii) display said second spline on a display device.

2. The apparatus according to claim 1 , wherein the principal control points of said second spline are points on said first spline.

3. The apparatus according to claim 1 , wherein said application is configured to fit said second spline by performing the following steps for each principal control point on said first spline having two tangent handles:

defining a first distance as a sum of the lengths of said tangent handles;

identifying a new principal control point that lies on said first spline;

calculating a tangent to said first spline at said new principal control point; and

defining new tangent handles at said new principal control point such that the slope of said tangent handles is said tangent and the length of both tangent handles is equal to half of said first distance.

4. The apparatus according to claim 3 , wherein said application is configured to identify the new principal control point by:

identifying a midpoint that lies on one of said tangent handles and is at an equal distance from each of said two tangent control points; and

finding a point on said first spline that is close to said midpoint.

5. Apparatus according to claim 4 , wherein said application is configured to find said close point by:

identifying a curve in the first spline upon which the close point is likely to lie;

identifying a specified number of points upon said curve using uniform parameterization; and

identifying which of said points is closest to said midpoint.

6. The apparatus according claim 1 , wherein the first two and last two control points of said first and second splines are identical.

7. The apparatus according to claim 1 , wherein said application is further configured to adjust the length of said tangent handles on said second spline such that said second spline fits said first spline better by performing the following steps for each principal control point on said second spline having two tangent handles:

identifying a first error between first portions of said first and second splines that are to the left of said control point;

identifying a second error between second portions of said first and second splines that are to the right of said control point; and

adjusting a length of said tangent handles to minimize said first and second errors.

8. The apparatus according to claim 7 , wherein:

said first error is a sum of distances between a specified number of pairs of points on said first portions of said splines, said points being identified using uniform parameterization; and

said second error is a sum of distances between a specified number of pairs of points on said second portions of said splines, said points being identified using uniform parameterization.

9. The apparatus according to claim 1 , wherein said first and second splines each comprise a plurality of Bézier curves, wherein the curves in said first spline are joined with at least G1 continuity and the curves in said second spline are joined with at least C1 continuity.

10. The apparatus according to claim 1 , wherein said step of fitting said first spline to said plurality of points comprises using a least-squares approximation to fit at least one Bézier curve to said points.

11. A method of editing image data, comprising:

fitting a first spline to a plurality of points; and

fitting a second spline to said first spline, wherein said second spline has the same number of control points as said first spline and wherein for any principal control point on said second spline, tangent handles of the control point are of equal length;

display said second spline on a display device.

12. The method according to claim 11 , wherein the principal control points of said second spline are points on said first spline.

13. The method according to claim 11 , wherein said fitting said second spline comprises performing the following steps for each principal control point on said first spline having two tangent handles:

defining a first distance as a sum of lengths of said tangent handles;

identifying a new principal control point that lies on said first spline;

calculating a tangent to said first spline at said new principal control point; and

defining new tangent handles at said new principal control point such that a slope of said tangent handles is said tangent and a length of both tangent handles is equal to half of said first distance.

14. The method according to claim 13 , wherein said finding a new principal control point comprises:

identifying a midpoint that lies on one of said tangent handles and is at an equal distance from each of said two tangent control points; and

finding a point on said first spline that is close to said midpoint.

15. The method according to claim 14 , wherein said finding said close point comprises:

identifying a curve in a spline upon which the close point is likely to lie;

identifying a specified number of points upon said curve using uniform parameterization; and

identifying which of said points is closest to said midpoint.

16. The method according to claim 11 , wherein the first two and last two control points of said first and second splines are identical.

17. The method according to claim 11 , further comprising adjusting a length of said tangent handles on said second spline such that said second spline is closer to said first spline, wherein for each principal control point on said second spline having two tangent handles:

identifying a first error between portions of said first and second splines that are to the left of said control point;

identifying a second error between portions of said first and second splines that are to the right of said control point; and

adjusting a length of said tangent handles to minimize said first and second errors.

18. The method according to claim 17 , wherein:

said first error is a sum of distances between a specified number of pairs of points on said first portions of said splines, said points being identified using uniform parameterization; and

said second error is a sum of distances between a specified number of pairs of points on said second portions of said splines, said points being identified using uniform parameterization.

19. The method according claim 11 , wherein said first and second splines each comprise a plurality of Bézier curves, wherein curves in said first spline are joined with at least G1 continuity and curves in said second spline are joined with at least C1 continuity.

20. The method according to claim 11 , wherein said fitting said first spline to said plurality of points comprises using a least-squares approximation to fit at least one Bézier curve to said points.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 24, 2009
From: AUTODESK CANADA CO.
To: AUTODESK, INC.
Reel/Frame 022445/0222 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 19, 2005
From: AUTODESK CANADA INC.
To: AUTODESK CANADA CO.
Reel/Frame 016641/0922 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 12, 2004
From: DAVIGNON, MARC-ANDRE
To: AUTODESK CANADA INC.
Reel/Frame 015364/0422 →