IP Library Granted Patent US 9,448,648
Granted Patent B2
US 9,448,648 · App. 14/838,182 · Granted Sep 20, 2016

Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication

Inventors: Branimir Angelov (Sofia, BG); Plamen Petkov (Sofia, BG)
Assignee: Wacom Co., Ltd.
G06F3/038G06F3/03545G06F3/0412G06F3/0414G06F3/04883G06K9/222G06K9/52G06Q10/101G06T11/203G06F2203/0383G06F2203/04105G06F2203/04106
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 9,448,648
App. No.
14/838,182
Granted
Sep 20, 2016
Kind
B2
Abstract

Methods and systems are provided for generating, rendering, manipulating (e.g., slicing), and communicating stroke objects that form ink data. In a method of generating a stroke object, pen event data indicative of pen down, pen movement, and pen up events are sequentially received to generate point objects that collectively form a stroke object. The point objects serve as control points for interpolating curve segments. Further, a start parameter indicative of a start point within a starting curve segment of the curve segments at which display of the stroke object starts, and an end parameter indicative of an end point within an ending curve segment of at which display of the stroke object ends, are generated for the stroke object. When rendering the stroke object, a system limits display of the stroke object to a range bound by the start and end parameters, as opposed to displaying the entire stroke object.

Claims (30)

1. A method of generating ink data in a device including a processor which is coupled to memory and to a position input sensor, the ink data including stroke objects that are vector data configured to reproduce paths formed by operating a pointer, the method comprising:

sequentially receiving, in the processor, pen event data detected by the input sensor, the pen event data being indicative of pen down, pen movement, and pen up events;

sequentially generating, in the processor, 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 stroke object;

generating, in the processor, a start parameter indicative of a start point within a starting curve segment of the curve segments at which display of the stroke object starts and an end parameter indicative of an end point within an ending curve segment of the curve segments at which display of the stroke object ends, wherein the start point indicates an internal division point between two end points of the starting curve segment where the display starts and the end point indicates an internal division point between two end points of the ending curve segment where the display ends; and

outputting, from the processor, the start parameter and the end parameter as well as the point objects as part of the stroke object in a defined format.

2. The method of claim 1 , wherein the defined curve interpolation algorithm is a local-control algorithm in which a value of i-th point object impacts a limited number of curve segments adjacent to the i-th point object.

3. The method of claim 2 , wherein the defined curve interpolation algorithm is a Catmull-Rom Curve algorithm.

4. The method of claim 1 , further comprising:

generating, in the processor, a point object to serve as an additional control point on an initial point object of the stroke object to form the starting curve segment by duplicating a value of the initial point object.

5. The method of claim 1 , further comprising:

determining, in the processor, whether smoothing is to be applied; and

if it is determined that the smoothing is to be applied, generating, in the processor, one or more point objects to serve as additional control points on a last point object of the stroke object to form the end curve segment by duplicating a value of the last point object to fill a lag between a smoothed coordinate of the last point object and an original coordinate of the last point object.

6. The method of claim 1 , wherein the defined curve interpolation algorithm is a Catmull-Rom Curve algorithm, and the method further comprises one or both of:

duplicating a value of an initial point object to create a starting control point to fix a shape of curve of the starting curve segment; and

duplicating a value of a last point object to create an ending control point to fix a shape of curve of the ending curve segment.

7. A non-transitory computer readable medium including processor-executable instructions which, when loaded onto a processor, causes the processor to execute a process of generating ink data including stroke objects that are vector data configured to reproduce paths formed by operating a pointer on an input sensor, the process comprising:

sequentially receiving, in the processor, pen event data detected by the input sensor, the pen event data being indicative of pen down, pen movement, and pen up events;

sequentially generating, in the processor, 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 stroke object;

generating, in the processor, a start parameter indicative of a start point within a starting curve segment of the curve segments at which display of the stroke object starts and an end parameter indicative of an end point within an ending curve segment of the curve segments at which display of the stroke object ends, wherein the start point indicates an internal division point between two end points of the starting curve segment where the display starts and the end point indicates an internal division point between two end points of the ending curve segment where the display ends; and

outputting, from the processor, the start parameter and the end parameter as well as the point objects as part of the stroke object in a defined format.

8. The computer readable medium of claim 7 , wherein the defined curve interpolation algorithm is a local-control algorithm in which a value of i-th point object impacts a limited number of curve segments adjacent to the i-th point object.

9. The computer readable medium of claim 8 , wherein the defined curve interpolation algorithm is a Catmull-Rom Curve algorithm.

10. The computer readable medium of claim 7 , wherein the process further comprises:

generating, in the processor, a point object to serve as an additional control point on an initial point object of the stroke object to form the starting curve segment by duplicating a value of the initial point object.

11. The computer readable medium of claim 7 , wherein the process further comprises:

determining, in the processor, whether smoothing is to be applied; and

if it is determined that the smoothing is to be applied, generating, in the processor, one or more point objects to serve as additional control points on a last point object of the stroke object to form the end curve segment by duplicating a value of the last point object to fill a lag between a smoothed coordinate of the last point object and an original coordinate of the last point object.

12. The computer readable medium of claim 7 , wherein the defined curve interpolation algorithm is a Catmull-Rom Curve algorithm, and the process further comprises one or both of:

duplicating a value of an initial point object to create a starting control point to fix a shape of curve of the starting curve segment; and

duplicating a value of a last point object to create an ending control point to fix a shape of curve of the ending curve segment.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 10, 2015
From: ANGELOV, BRANIMIR; PETKOV, PLAMEN; YOTOV, STEFAN; WANG, HEIDI; MLADENOVA, BORIANA; NAKAYAMA, YOSHITAKA
To: WACOM CO., LTD.
Reel/Frame 036536/0320 →
Continuity (6)
Continuation PCTJP2014005830 · Nov 19, 2014
Provisional Application 61906334 · Nov 19, 2013
Provisional Application 61908647 · Nov 25, 2013
Provisional Application 61973161 · Mar 31, 2014
Provisional Application 62042747 · Aug 27, 2014
Related Publication 20150371417A1 · Dec 24, 2015