Vector graphics based live sketching metods and systems
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-modifiedWhat 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.