Sketch-based editing of curves

Computer graphics processing and selective visual display system – Computer graphics processing – Shape generating

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

Reexamination Certificate

active

06208355

ABSTRACT:

BACKGROUND OF THE INVENTION
The invention relates to interactive computer graphics systems.
Curves are often depicted as graphics in computer graphics systems. However, curves are typically difficult to draw with freehand gestures using input devices such as a mouse or graphics tablet. Undesirable bumps and flat portions often result.
When an artist is drawing with pen and paper, the artist can modify a curve by drawing another line or curve in an area that is undesirable, covering the undesirable portion. The repeated addition of lines and curves is sometimes referred to as “sketching”. In a computer graphics system where curves are represented by mathematical formulas, it may be undesirable to layer one curve over another to achieve the appearance of a single desired curve.
Conventional graphics systems offer some curve editing functionality. One approach is to redraw the curve. Another is to manipulate “control handles” which define the curve. Both of these approaches are often time consuming and inconvenient.
Similar problems exist in editing brush stokes in computer graphics systems. Again, adding layers of curves or brush strokes over an undesirable portion is slow and prone to the same errors which caused the undesirable portion in the first place.
SUMMARY OF THE INVENTION
The invention provides methods and apparatus for editing a curve or a brush stroke in an electronic document.
In general, in one aspect, the invention features a method for editing a curve in an electronic document and apparatus implementing the methods. The method includes receiving a sketch curve as input from a user, the sketch curve having two end points; identifying a target section of an existing curve by finding a point in the existing curve nearest each of the end points of the sketch curve, the target section being the part of the existing curve between the found points; removing the target section from the existing curve, leaving two internal end points in the existing curve; creating a replacement curve, the replacement curve having two end points; inserting the replacement curve into the existing curve in place of the target section; and fairing the existing curve and the replacement curve at their respective neighboring end points to close a gap at each end point between the existing curve and the replacement curve.
Advantageous implementations of the invention include one or more of the following features. The distance between points is measured by Euclidian distance. Fairing the existing curve and the replacement curve includes shortening the replacement curve at each end point of the replacement curve; shortening the existing curve at each internal end point; and forming fillet curves to join the shortened replacement curve and the shortened existing curve. Each end of each pair of adjoining shortened ends of the existing curve and the replacement curve is shortened by the same amount. Each of the shortened ends is shortened by an amount calculated from the size of the gap adjoining the shortened end. The replacement curve is the sketch curve. Creating the replacement curve includes smoothing the target section to form the replacement curve. Smoothing the target section includes forming an ordered sequence of points representing the target section; grouping the points of the ordered sequence of points into one or more contiguous segments of points; smoothing the points of each segment to generate a segment of smoothed points; and fitting one or more mathematical curves to each segment of smoothed points, the one or more mathematical curves together forming the replacement curve. Forming an ordered sequence of points includes selecting points so that a spacing distance between points in the ordered sequence of points does not exceed a maximum spacing and a flatness distance between a straight line formed between two consecutive points in the ordered sequence of points and the target section does not exceed a flatness tolerance. The existing curve is a trajectory curve of a brush stroke having an envelope, and the method further includes calculating a new envelope for a new brush stroke using the edited trajectory curve and envelope information of the existing brush stroke.
In general, in another aspect, the invention features a method for interacting with a user of an interactive graphics system and apparatus implementing the method. The method includes displaying a curve on a display device; providing to the user a smoothing tool operable under control of the user through a graphical user interface; receiving a gesture from the user moving the smoothing tool over a part of the curve to indicate a selection of the part of the curve; and smoothing the selected part of the curve by applying a smoothing filter to the selected part of the curve.
Advantageous implementations of the invention include one or more of the following features. The method provides to the user a smoothing tool operable under control of the user through a graphical user interface to select a sample of the curve, to smooth the selected sample as a separate curve, and to refit the smoothed sample into the curve.
In general, in another aspect, the invention features a method for editing a brush stroke in a graphics system and apparatus implementing the method. A brush stroke includes a trajectory curve, an envelope curve, and envelope information. The method includes editing a trajectory curve of a brush stroke by sketch-based editing, sketch-based editing including receiving a sketch curve as input and modifying the trajectory curve based on the sketch curve; and calculating a new envelope curve for a new brush stroke using the edited trajectory curve and the envelope information of the existing brush stroke.
Advantageous implementations of the invention include one or more of the following features. The sketch-based editing includes using the sketch curve to identify a target section on the trajectory curve, where end points of the target section are points on the trajectory curve nearest to end points of the sketch curve; replacing the target section with the sketch curve in the trajectory curve; and fairing the trajectory curve and the sketch curve to each other to create the edited trajectory curve. The sketch-based editing includes receiving a sketch curve; using the sketch curve to identify a target section on the trajectory curve, where end points of the target section are points on the trajectory curve nearest to end points of the sketch curve; smoothing the target section; replacing the target section with the smoothed target section in the trajectory curve; and fairing the trajectory curve and the smoothed target section to each other to create the edited trajectory curve. Calculating a new envelope curve for a new brush stroke includes calculating new envelope information for the edited trajectory curve by mapping envelope information from the original trajectory curve to the edited trajectory curve. Calculating a new envelope curve for a new brush stroke includes calculating new envelope information by linearly interpolating envelope information of the trajectory curve of the existing brush stroke based on arc-lengths of the edited trajectory curve and arc-lengths of the trajectory curve of the existing brush stroke; and applying the new envelope information to the edited trajectory curve. The envelope information includes a brush shape and one or more affine matrices defining modifications to be made to the brush shape at a corresponding one or more positions along the trajectory curve. The affine matrix is calculated using data received from an input device in response to physical manipulation of the input device by a user. The user defines conversion parameters for converting the data received from the input device to the values in the affine matrices.


REFERENCES:
patent: 4620287 (1986-10-01), Yam
patent: 5367617 (1994-11-01), Goossen et al.
patent: 5940083 (1999-08-01), Broekhuijsen
Bartels, et al., “A Technique for the Direct Manipulation of Spline Curves”,Graphics Interface '89, Computer Graph

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Sketch-based editing of curves does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Sketch-based editing of curves, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Sketch-based editing of curves will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2490055

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.