IP Library › Granted Patent US 10,049,289
Granted Patent B2
US 10,049,289 · App. 15/391,483 · Granted Aug 14, 2018

Method and system for generating and selectively outputting two types of ink vector data

Inventors: Plamen Petkov (Sofia, BG); Branimir Angelov (Sofia, BG)
Assignee: Wacom Co., Ltd.
G06K9/222G06F3/03545G06F3/04883G06K9/00416G06T11/203
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 10,049,289
App. No.
15/391,483
Granted
Aug 14, 2018
Kind
B2
Abstract

A computer-implemented method selectively outputs two types of vector data representative of user-input strokes. Type one stroke objects are generated in a device including a position input sensor, on which a user operates a pointer to generate a type one stroke object representative of a stroke. A stroke starts at a pen-down time at which the pointer is placed on the position input sensor and ends at a pen-up time at which the pointer is removed therefrom. Real-time rendering of a type one stroke object is started after the pen-down time of a stroke without waiting for the pen-up time. After completion of a type one stroke object through its pen-up time, the type one stroke object is converted to a type two stroke object, which is a set of curves defining a boundary of the stroke, and can be exported as a file or rendered on a display.

Claims (46)

1. A computer-implemented method of selectively outputting two types of vector data representative of user-input strokes, comprising:

generating type one stroke objects in a device including a position input sensor, wherein the type one stroke objects represent strokes formed by a user operating a pointer relative to the position input sensor, and each type one stroke object represents a stroke starting at a pen-down time at which the pointer is detectably placed relative to the position input sensor and ending at a pen-up time at which the pointer is removed from the position input sensor;

starting real-time rendering of a type one stroke object after the pen-down time of a stroke represented by said type one stroke object without waiting for completion of the stroke at the pen-up time;

after completion of a type one stroke object representative of a stroke from its pen-down time to its pen-up time, converting the type one stroke object to a type two stroke object, wherein the type two stroke object is a set of segments defining a boundary of the stroke; and

exporting the type two stroke object in response to an output request.

2. The computer-implemented method of claim 1 , wherein the step of generating type one stroke objects includes:

sequentially receiving pen event data detected by the position input sensor;

sequentially generating point objects based on coordinate values included in the received pen event data, wherein the point objects serve as control points for interpolating curve segments according to a defined curve interpolation algorithm to form a type one stroke object and wherein each point object is associated with width information; and

generating a type one stroke object as a collection of the point objects that define a stroke represented by the type one stroke object.

3. The computer-implemented method of claim 2 , wherein the width information is indicative of a radius of a point object for use in defining a width of a stroke represented by the type one stroke object.

4. The computer-implemented method of claim 2 , wherein the step of starting real-time rendering of the type one stroke object includes:

segmenting each curve segment of the type one stroke object into multiple division points i;

applying the width information to each of the division points i to determine two outline curves forming the type one stroke object; and

rendering the type one stroke object by rasterizing between the two outline curves.

5. The computer-implemented method of claim 4 , wherein the division points i are in the same sequential order as a sequential order in which the stroke represented by the type one stroke object is user-inputted from the pen-down time to the pen-up time.

6. The computer-implemented method of claim 2 , comprising:

exporting the type one stroke objet as a computer-readable file including the point objects respectively associated with the width information.

7. The computer-implemented method of claim 1 , wherein the step of converting the type one stroke object to the type two stroke object includes:

using a clipping algorithm, simplifying a shape of the type one stroke object into one or more simplified shapes that do not include self-intersection, wherein each simplified shape is defined by boundary points and the segments formed between the boundary points; and

outputting the one or more simplified shapes as the type two stroke object comprised of the set of segments defining the boundary of the stroke.

8. The computer-implemented method of claim 7 , wherein the boundary points are not in the same sequential order as a sequential order in which the stroke represented by the type two stroke object is user-inputted from the pen-down time to the pen-up time.

9. The computer-implemented method of claim 7 , wherein the type two stroke objet is exported as a computer-readable file including the set of segments defining the boundary of the stroke.

10. The computer-implemented method of claim 7 , wherein the type two stroke object, whose boundary is curve-fitted, is exported as a computer-readable file including a set of Bezier curves as the set of segments defining the boundary of the stroke.

11. The computer-implemented method of claim 10 , wherein each Bezier curve is a cubic curve defined by four control points and the first control point of a Bezier curve coincides with the fourth control point of an immediately preceding Bezier curve.

12. The computer-implemented method of claim 11 , wherein the Bezier curves are each explicitly defined by its first, second and third control points and implicitly defined by the third control point of the immediately preceding Bezier curve.

13. The computer-implemented method of claim 10 , wherein the computer-readable file is a Scalable Vector Graphics (SVG) file.

14. The computer-implemented method of claim 1 , comprising:

rendering the type two stroke object, which is exported, on a display.

15. The computer-implemented method of claim 14 , wherein the rendering of the type two stroke object includes one or more of zooming, scrolling, and changing a rendering area of the stroke represented by the type two stroke object.

16. The computer-implemented method of claim 1 , further comprising:

storing the type one stroke objects;

storing the type two stroke objects; and

selectively exporting one or both of the type one stroke objects and the type two stroke objects depending on an output request.

17. The computer-implemented method of claim 16 , further comprising:

exporting the type one stroke objects in response to an output request from applications including a real-time drawing application and a text recognition application; and

exporting the type two stroke objects in response to an output request from applications including a bulk drawing application and a portable document format (PDF) application.

18. A system of selectively outputting two types of vector data representative of user-input strokes, comprising:

a memory device;

a processor coupled to the memory device, wherein the processor is configured to perform:

receiving pen event data from a position input sensor, the pen event data being representative of strokes formed by a user operating a pointer relative to the position input sensor, each stroke starting at a pen-down time at which the pointer is detectably placed relative to the position input sensor and ending at a pen-up time at which the pointer is removed from the position input sensor;

generating type one stroke objects based on the received pen event data, wherein the type one stroke objects represent the strokes, respectively;

starting real-time rendering of a type one stroke object after the pen-down time of a stroke represented by said type one stroke object without waiting for completion of the stroke at the pen-up time;

after completion of a type one stroke object representative of a stroke from its pen-down time to its pen-up time, converting the type one stroke object to a type two stroke object, wherein the type two stroke object includes a set of segments defining a boundary of the stroke; and

exporting the type two stroke object in response to an output request.

19. The system of claim 18 , wherein the processor exports the type two stroke object as a computer-readable file including a set of Bezier curves as the set of segments defining the boundary of the stroke.

20. The system of claim 19 , wherein the computer-readable file is a Scalable Vector Graphics (SVG) file.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2017
From: PETKOV, PLAMEN; ANGELOV, BRANIMIR
To: WACOM CO., LTD.
Reel/Frame 040972/0146 →
Continuity (2)
Continuation In Part 15043300 · Feb 12, 2016
Related Publication 20170236021A1 · Aug 17, 2017