IP Library Granted Patent US 6,876,766
Granted Patent B2
US 6,876,766 · App. 10/637,930 · Granted Apr 5, 2005

Reshaping freehand drawn lines and shapes in an electronic document

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 6,876,766
App. No.
10/637,930
Granted
Apr 5, 2005
Kind
B2
Abstract

The invention improves the appearance of freehand drawn lines and shapes in an electronic document by first recognizing freehand drawn lines and shapes and generating a line made up of sequential straight line segments for the freehand drawn line when the line does not form a closed line and generating a multiple straight-line-segment shape when the line forms a closed line. If a multiple segment shape is being reshaped, a basic shape is selected from reference ideal shapes as the basic shape of the multiple segment shape. The basic shape is adjusted to provide a specific shape as an improved shape for the freehand drawn shape. The recognition of the freehand drawn lines and shapes is accomplished by comparing source segments of a source freehand drawn line to a straight line and substituting a straight line segment for a source segment if the deviation between the source segment and the straight line is below a predetermined value. Sequential source segments of a source freehand drawn line are evaluated to determine if they are an angle segment. A segment pair of sequential source line segments are defined as an angle segment having two straight line segments intersecting at a common end point if both source segments of the segment pair are within a predetermined deviation value from a straight line. The straight line segments and angle segments are combined to form a multiple segment line if the line does not close on itself and a multiple segment shape if the line does close on itself.

Claims (69)

1. In a computing system for handling freehand drawn lines and shapes, a method for improving the appearance of the hand drawn lines and shapes comprising:

comparing a source line segment of a source line against a straight line and detecting a deviation value indicating deviation between the source line segment and the straight line;

straightening the source line segment to a straight line if the deviation value is below a predetermined threshold value;

evaluating the source line segment as an angle segment, when the deviation value is below a predetermined threshold value, by detecting whether the source line segment can be defined as an angle segment with two straight line segments and defining the line segment as an angle segment having two straight line segments intersecting at an angle if the source line segment can be defined with two straight line segments;

dividing the source line segment into new segments if the deviation value is not below the predetermined threshold value and the line segment can not be defined as an angle segment; and

repeating the acts of comparing, straightening, evaluating and dividing on the new segments until all segments of the source line have been straightened.

2. The method of claim 1 further comprising:

detecting if the source line closes on itself and thereby forms a shape;

improving the shape to a polyline shape if the source line closes on itself; and

improving the source line to a polyline if the source line does not close on itself.

3. The method of claim 2 further comprising:

comparing the polyline shape against reference shapes and improving the polyline shape to a reference shape most similar to the polyline shape.

4. The method of claim 1 wherein the act of detecting comprises:

finding a point of intersection between a first source line segment and a second source line segment making up the angle segment;

comparing the first source line segment to a straight line to determine if its deviation is below the predetermined threshold; and

comparing the second source line segment to a straight line to determine if its deviation is below the predetermined threshold.

5. The method of claim 4 wherein the act of defining comprises:

straightening the first line segment to a straight line and the second line segment to a straight line intersecting at the point of intersection if both the first and second source line segments have a deviation from a straight line below the predetermined threshold.

6. The method of claim 5 further comprising:

combining line segments and angle segments to form a polyline; and

detecting if the polyline line closes on itself and thereby forms a polyline shape.

7. The method of claim 6 further comprising:

comparing the polyline shape against basic reference shapes and improving the polyline shape to a transformed shape transformed from a basic shape most similar to the polyline shape; and

adjusting the transformed shape to a specific shape identified from the basic shape.

8. In a computing system, apparatus for reshaping freehand drawn source lines into a polyline, the apparatus comprising:

a segment compare module comparing a source line segment of a source line against a straight line and detecting a deviation value indicating deviation between the source line segment and the straight line;

a define line segment module straightening the source line segment to a straight line if the deviation value detected by the compare module is within a deviation threshold value indicating the source line segment is a straight line segment;

an evaluate module evaluating the source line segment as an angle segment, when the compare module detects the deviation value exceeds the deviation threshold value, the evaluate module detecting whether or not the source line segment has two straight line segments or more than two straight line segments;

a define angle segment module defining the source line segment as an angle segment made up of two straight lines intersecting at a point if the evaluate module detects two straight line segments;

a divide module dividing the source line segment into new source line segments if the evaluate module detects more than two straight line segments; and

each of the new source line segments being processed by the segment compare module and the evaluate module until the source line has been reshaped into a polyline.

9. The apparatus of claim 8 further comprising:

a polyline test module detecting if the polyline closes on itself and thereby forms a polyline shape.

10. The apparatus of claim 8 wherein the evaluate module comprises:

a intersection module finding a point of intersection between a first source line segment and a second source line segment making up the source line segment;

a split module splitting the source line segment at the point of intersection into the first source line segment and the second source line segment;

first split compare module comparing the first source line segment to a straight line to determine if its deviation is below the deviation threshold value;

second split compare module comparing the second source line segment to a straight line to determine if its deviation is below the deviation threshold value; and

a segment test module detecting that both the first and second source line segments have a deviation from a straight line below the deviation threshold value and generating a angle segment true condition indicating detection of an angle segment, and the segment test module detecting that at least one of the first and second source line segments have a deviation from a straight line exceeding the deviation threshold value, and generating an angle segment fail condition.

11. The apparatus of claim 10 wherein the define angle segment module is responsive to the angle segment true condition to straighten the first line segment to a straight line and the second line segment to a straight line intersecting at the point of intersection.

12. The apparatus of claim 10 wherein the divide module is responsive to the angle segment fail condition to divide the source line segment into two new source line segments for processing by the segment compare module and the evaluate module.

13. The apparatus of claim 8 further comprising:

a combine module combining straight lines from the define line module and angle segments from the define angle segment module to form a polyline.

14. The apparatus of claim 13 further comprising:

a closed line test module detecting if the polyline line closes on itself and thereby forms a polyline shape.

15. A computer program product readable by a computing system and encoding a computer program of instructions for executing a computer process for improving the appearance of the hand drawn lines and shapes comprising:

comparing a source line segment of a source line input into the computing system against a straight line and detecting a deviation value indicating deviation between the source line segment and the straight line;

straightening the source line segment to a straight line if the deviation value is below a predetermined threshold value;

evaluating the source line segment as an angle segment, when the deviation value is below a predetermined threshold value, by detecting whether the source line segment can be defined as an angle segment with two straight line segments and defining the line segment as an angle segment having two straight line segments intersecting at an angle if the source line segment can be defined with two straight line segments;

dividing the source line segment into new segments if the deviation value is not below the predetermined threshold value and the line segment can not be defined as an angle segment; and

repeating the acts of comparing, straightening, evaluating and dividing on the new segments until all segments of the source line have been straightened.

16. The computer program product of claim 15 wherein the computer process further comprises:

detecting if the source line closes on itself and thereby forms a shape;

improving the shape to a polyline shape if the source line closes on itself; and

improving the source line to a polyline if the source line does not close on itself.

17. The computer program product of claim 16 wherein the computer process further comprises:

comparing the polyline shape against reference shapes and improving the polyline shape to a reference shape most similar to the polyline shape.

18. The computer program product of claim 15 wherein the act of detecting in the computer process comprises:

finding a point of intersection between a first source line segment and a second source line segment making up the angle segment;

comparing the first source line segment to a straight line to determine if its deviation is below the predetermined threshold; and

comparing the second source line segment to a straight line to determine if its deviation is below the predetermined threshold.

19. The computer program product of claim 18 wherein the act of defining in the computer process comprises:

straightening the first line segment to a straight line and the second line segment to a straight line intersecting at the point of intersection if both the first and second source line segments have a deviation from a straight line below the predetermined threshold.

20. The computer program product of claim 15 wherein the computer process further comprises:

combining line segments and angle segments to form a polyline; and

detecting if the polyline line closes on itself and thereby forms a polyline shape.

21. The computer program product of claim 20 wherein the computer process further comprises:

comparing the polyline shape against basic reference shapes and improving the polyline shape to a transformed shape transformed from a basic shape most similar to the polyline shape; and

adjusting the transformed shape to a specific shape identified from the basic shape.

Assignments (9)
RELEASE OF SECURITY INTEREST Recorded Mar 17, 2023
From: MUFG BANK, LTD.
To: EVERNOTE CORPORATION
Reel/Frame 063116/0260 →
RELEASE OF SECURITY INTEREST Recorded Oct 8, 2021
From: EAST WEST BANK
To: EVERNOTE CORPORATION
Reel/Frame 057852/0078 →
SECURITY INTEREST Recorded Oct 6, 2021
From: EVERNOTE CORPORATION
To: MUFG UNION BANK, N.A.
Reel/Frame 057722/0876 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT TERMINATION AT R/F 040192/0720 Recorded Oct 22, 2020
From: SILICON VALLEY BANK
To: EVERNOTE CORPORATION
Reel/Frame 054145/0452 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT TERMINATION AT R/F 040240/0945 Recorded Oct 22, 2020
From: HERCULES CAPITAL, INC.
To: EVERNOTE CORPORATION; EVERNOTE GMBH
Reel/Frame 054213/0234 →
SECURITY INTEREST Recorded Oct 19, 2020
From: EVERNOTE CORPORATION
To: EAST WEST BANK
Reel/Frame 054113/0876 →
SECURITY INTEREST Recorded Oct 5, 2016
From: EVERNOTE CORPORATION; EVERNOTE GMBH
To: HERCULES CAPITAL, INC., AS AGENT
Reel/Frame 040240/0945 →
SECURITY AGREEMENT Recorded Sep 30, 2016
From: EVERNOTE CORPORATION
To: SILICON VALLEY BANK
Reel/Frame 040192/0720 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 24, 2006
From: PARASCRIPT, LLC
To: EVERNOTE CORPORATION
Reel/Frame 017214/0818 →