US11741644B2ActiveUtilityA1

Vector graphics based live sketching metods and systems

64
Assignee: COREL CORPPriority: Feb 28, 2017Filed: Jan 25, 2021Granted: Aug 29, 2023
Est. expiryFeb 28, 2037(~10.6 yrs left)· nominal 20-yr term from priority
G06T 11/23G06T 11/203G06F 3/016G06V 30/32G06V 30/347
64
PatentIndex Score
0
Cited by
12
References
16
Claims

Abstract

Vector format based computer graphics tools have become very powerful tools allowing artists, designers etc. to mimic many artistic styles, exploit automated techniques, etc. and across different simulated physical media and digital media. However, hand-drawing and sketching in vector format graphics is unnatural and a user's strokes rendered by software are generally unnatural and appear artificial. In contrast to today's hand-drawing and sketching which requires significant training of and understanding by the user of complex vector graphics methods embodiments of the invention lower the barrier to accessing computer graphics applications for users in respect of making hand-drawing or sketching easier to perform. Accordingly, the inventors have established a direct vector-based hand-drawing/sketching entry format supporting any input methodology.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A method comprising:
 acquiring data points relating to a plurality of discrete user generated strokes made with a mark making tool within a computer based graphics software application in execution upon a microprocessor based computer; 
 converting the plurality of discrete user generated strokes to a plurality of vector poly-curve lines; 
 receiving within the computer based graphics software application user input establishing a width of an editable area around the plurality of vector poly-curve lines; 
 determining whether one or more subsequent user generated strokes are within the editable area around a vector poly-curve line of the plurality of vector poly-curve lines; 
 upon a positive determination, processing the one or more subsequent user generated strokes in combination with the vector poly-curve line of the plurality of vector poly-curve lines; and 
 upon a negative determination, processing the subsequent plurality of user generated strokes as a new vector poly-curve line. 
 
     
     
       2. The method according to  claim 1 , wherein
 acquiring the data points relating to the plurality of discrete user generated strokes comprises:
 a) establishing a timer having a defined time duration; 
 b) starting the timer; 
 c) acquiring the data points relating to the plurality of discrete user generated strokes within the duration of the time; 
 d) converting the plurality of discrete user generated strokes established within the duration of the timer to a vector poly-curve line of the plurality of vector poly-curve lines; 
 e) resetting the timer; and 
 f) repeating steps (b) to (e) in an iterative process to generate additional poly-curve lines. 
 
 
     
     
       3. The method according to  claim 1 , wherein
 acquiring the data points relating to the plurality of discrete user generated strokes comprises:
 a) establishing a timer having a defined time duration; 
 b) starting the timer; 
 c) acquiring the data points relating to the plurality of discrete user generated strokes within the duration of the time; 
 d) analyzing multi-dimensional properties of the acquired data points to infer an overall intent; 
 e) converting the plurality of discrete user generated strokes established within the duration of the timer to a vector poly-curve line of the one or more vector poly-curve lines in dependence upon at least the inferred overall intent; 
 f) resetting the timer; and 
 g) repeating steps (b) to (e) in an iterative process to generate additional poly-curve lines; and 
 
 the inferred overall intent is established in dependence upon at least one of:
 a control setting of the graphics software application; 
 dynamically by the graphics software application from default settings of the graphics software application; and 
 user learnt behaviour established by the graphics software application. 
 
 
     
     
       4. The method according to  claim 1 , wherein
 acquiring the data points relating to the plurality of discrete user generated strokes comprises:
 a) establishing a timer having a defined time duration; 
 b) starting the timer; 
 c) acquiring the data points relating to the plurality of discrete user generated strokes within the duration of the time; 
 d) converting the plurality of discrete user generated strokes established within the duration of the timer to a vector poly-curve line of the plurality of vector poly-curve lines; 
 e) resetting the timer; and 
 f) repeating steps (b) to (e) in an iterative process to generate additional poly-curve lines; and 
 
 when the timer is set to zero the plurality of discrete user generated strokes are converted to the plurality of vector poly-curve lines. 
 
     
     
       5. The method according to  claim 1 , wherein
 acquiring the data points relating to the plurality of discrete user generated strokes comprises:
 a) establishing a timer having a defined time duration; 
 b) starting the timer; 
 c) acquiring the data points relating to the plurality of discrete user generated strokes within the duration of the time; 
 d) analyzing multi-dimensional properties of the acquired data points to infer an overall intent; 
 e) converting the plurality of discrete user generated strokes established within the duration of the timer to a vector poly-curve line of the one or more vector poly-curve lines in dependence upon at least the inferred overall intent; 
 f) resetting the timer; and 
 g) repeating steps (b) to (e) in an iterative process to generate additional poly-curve lines; and 
 
 the inferred overall intent is established in dependence upon at least one of:
 that a series of loops within a defined footprint laterally are a user preference for drawing a single stroke; 
 that a continuous series of motions in one direction and then reversing forming a loop is intended rather than the user defining multiple strokes; and 
 that a folded stroke with a narrow separation between strokes should be unfolded whilst an increased separation between strokes is taken as the user's intent. 
 
 
     
     
       6. The method according to  claim 1 , wherein
 acquiring the data points relating to the plurality of discrete user generated strokes comprises:
 acquiring the data points relating to the plurality of discrete user generated strokes within the duration of the time; and 
 converting the plurality of discrete user generated strokes to a vector poly-curve line of the plurality of vector poly-curve lines; wherein 
 
 only those user generated strokes within a predetermined distance are converted to the vector poly-curve line of the plurality of vector poly-curve lines; and 
 the predetermined distance is set by either a user of the computer based graphics software application or the computer based graphics software application. 
 
     
     
       7. The method according to  claim 1 , wherein
 the computer based graphics software application provides at least one of:
 a user of the computer based graphics software application with an option to handle or ignore complex strokes with an arbitrary number of loops; and 
 dynamically tunes control parameters in dependence upon a drawing type established by a user of the computer based graphics software application. 
 
 
     
     
       8. The method according to  claim 1 , further comprising
 at least one of:
 smoothing a final result in dependence upon determining the presence of cusp nodes; and 
 smoothing the final result in dependence upon a polynomial form of a vector poly-curve line of the one or more vector poly-curve lines. 
 
 
     
     
       9. The method according to  claim 1 , further comprising
 at least one of:
 applying minimal smoothing in those portions of the plurality of vector poly-curve lines where all the points in those portions are from a single input stroke; and 
 applying aggressive smoothing in areas where multiple strokes join. 
 
 
     
     
       10. The method according to  claim 1 , further comprising
 algorithmically dynamically tuning parameters of the conversion of plurality of discrete user generated strokes to the plurality of vector poly-curve lines in dependence upon a known drawing type associated with a canvas within the computer based graphics software application to which the mark making tool is applied. 
 
     
     
       11. The method according to  claim 1 , further comprising
 algorithmically dynamically tuning parameters of the conversion of plurality of discrete user generated strokes to the plurality of vector poly-curve lines in dependence upon a scenario associated with the computer based graphics software application within which the mark making tool is employed. 
 
     
     
       12. A method comprising:
 acquiring data points relating to a plurality of discrete user generated strokes made with a mark making tool within a computer based graphics software application in execution upon a microprocessor based computer; 
 converting the plurality of discrete user generated strokes to a plurality of vector poly-curve lines; 
 receiving within the computer based graphics software application user input establishing a width of an editable area around the plurality of vector poly-curve lines; 
 receiving within the computer based graphics software application additional user input establishing a predetermined distance for use in combination with the width of an editable area around the plurality of vector poly-curve lines; 
 determining whether the mark making tool is within the predetermined distance of the width of the editable area around a vector poly-curve line of the plurality of vector poly-curve lines; 
 upon a positive determination, rendering a visual indication of the width of the editable area around the vector poly-curve line of the plurality of vector poly-curve lines; 
 determining whether one or more subsequent user generated strokes are within the editable area around a vector poly-curve line of the plurality of vector poly-curve lines; 
 upon a positive determination, processing the one or more subsequent user generated strokes in combination with the vector poly-curve line of the plurality of vector poly-curve lines; and 
 upon a negative determination, processing the subsequent plurality of user generated strokes as a new vector poly-curve line. 
 
     
     
       13. A method comprising:
 acquiring data points relating to a plurality of discrete user generated strokes made with a mark making tool within a computer based graphics software application in execution upon a microprocessor based computer; 
 converting the plurality of discrete user generated strokes to a plurality of vector poly-curve lines; 
 receiving within the computer based graphics software application user input establishing a width of an editable area around the plurality of vector poly-curve lines; 
 receiving within the computer based graphics software application additional user input establishing a predetermined distance for use in combination with the width of an editable area around the plurality of vector poly-curve lines; 
 determining whether the mark making tool is within the predetermined distance of the width of the editable area around a vector poly-curve line of the plurality of vector poly-curve lines; and 
 upon a positive determination, rendering a visual indication of the width of the editable area around the vector poly-curve line of the plurality of vector poly-curve lines. 
 
     
     
       14. A method comprising:
 acquiring data points relating to a plurality of discrete user generated strokes made with a mark making tool within a computer based graphics software application in execution upon a microprocessor based computer; and 
 converting the plurality of discrete user generated strokes to a plurality of vector poly-curve lines; wherein 
 converting the plurality of discrete user generated strokes to the plurality of vector poly-curve lines comprises:
 generating un-approximated pairs of polylines from the plurality of discrete user generated strokes; 
 comparing original un-approximated pairs of polylines to each other; 
 heuristically connecting relevant points based on temporal, spatial, and relational proximity; 
 feeding properties into a trainable feed-forward neural network to determine groupings; 
 applying a graph theory technique to derive weighted connections between each pair of points; 
 algorithmically dynamically tuning parameters to tailor for known drawing types and scenarios; 
 utilizing a minimum spanning tree variant to infer the overall intent of each group; 
 determining trunk branches within the minimum spanning tree and pruning away smaller branches in at least one stage of a plurality of stages; and 
 applying a curve fitting routine to generate the one or more vector poly-curve lines. 
 
 
     
     
       15. A method comprising:
 acquiring data points relating to a plurality of discrete user generated strokes made with a mark making tool within a computer based graphics software application in execution upon a microprocessor based computer; and 
 converting the plurality of discrete user generated strokes to a plurality of vector poly-curve lines; wherein 
 converting the plurality of discrete user generated strokes to the plurality of vector poly-curve lines comprises:
 heuristically connecting relevant points based on temporal, spatial, and relational proximity; 
 determining groupings in dependence upon properties of the plurality of discrete user generated strokes; 
 deriving weighted connections between each pair of points; 
 inferring the overall intent of each group in dependence upon a minimum spanning tree variant; 
 determining trunk branches within the minimum spanning tree and pruning away smaller branches in at least one stage of a plurality of stages; and 
 applying a curve fitting routine to generate the one or more vector poly-curve lines. 
 
 
     
     
       16. The method according to  claim 15 , wherein
 at least one of:
 determining the groupings employs a trainable feed-forward neural network; 
 deriving the weighted connection comprises applying a graph theory technique.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.