System and method for distributed collaborative drawing
First Claim
1. A method for generating a drawing in a distributed computing system including at least two client computers and at least one server computer, the method comprising the steps of:
- (a) providing one or more drawing tools for use by users associated with the client computers to draw a curve, each drawing tool having one or more style attributes associated therewith;
(b) at a first one of the client computers, receiving a plurality of location data points representing a path of a curve drawn with one of the drawing tools;
(c) at the first client computer, mapping the location data points into a plurality of location curve data points, the location curve data points used to display the curve in accordance with a specified image resolution;
(d) utilizing the location curve data points to display the curve in accordance with the drawing tool used to draw the curve;
(e) at the first client computer, generating one or more sets of location curve descriptors, the location curve descriptors representing a compact representation of the location curve data points; and
(f) transmitting the location curve descriptors from the first client computer to the server computer for retransmission to at least a second one of the client computers;
(g) at the second client computer, converting the location curve descriptors into a plurality of location curve data points, the location curve data points used to display the curve in accordance with a specified resolution and in accordance with a specified drawing tool;
wherein each step performed at the first client computer is also performed at the second client computer and each step performed at the second client computer is also performed at the first client computer so as to enable the users at the first and second client computers to cooperatively generate the drawing.
0 Assignments
0 Petitions
Accused Products
Abstract
The present invention pertains to a system and method for managing a real-time distributed collaborative drawing activity. A community of collaborators associated with client computers are connected via a communications link with a server computer. Each collaborator contributes to the real-time design of a shared drawing that is displayed in each collaborator'"'"'s virtual whiteboard. Contributions to the shared drawing as well as communications between the collaborators are transmitted to the server computer. The server computer broadcasts the communication to each of the collaborators engaged in the design activity. Each user has a set of drawing tools that are used to generate a variety of drawing strokes that edit the shared drawing. A curve generating procedure is used to capture the manner in which the user draws the stroke in order to emulate a selected drawing tool. A compact representation of the user'"'"'s stroke is generated and transmitted to each collaborator.
263 Citations
27 Claims
-
1. A method for generating a drawing in a distributed computing system including at least two client computers and at least one server computer, the method comprising the steps of:
-
(a) providing one or more drawing tools for use by users associated with the client computers to draw a curve, each drawing tool having one or more style attributes associated therewith; (b) at a first one of the client computers, receiving a plurality of location data points representing a path of a curve drawn with one of the drawing tools; (c) at the first client computer, mapping the location data points into a plurality of location curve data points, the location curve data points used to display the curve in accordance with a specified image resolution; (d) utilizing the location curve data points to display the curve in accordance with the drawing tool used to draw the curve; (e) at the first client computer, generating one or more sets of location curve descriptors, the location curve descriptors representing a compact representation of the location curve data points; and (f) transmitting the location curve descriptors from the first client computer to the server computer for retransmission to at least a second one of the client computers; (g) at the second client computer, converting the location curve descriptors into a plurality of location curve data points, the location curve data points used to display the curve in accordance with a specified resolution and in accordance with a specified drawing tool; wherein each step performed at the first client computer is also performed at the second client computer and each step performed at the second client computer is also performed at the first client computer so as to enable the users at the first and second client computers to cooperatively generate the drawing. - View Dependent Claims (5)
-
-
2. A method for generating a curve in a distributed computing system including at least one client computer and at least one server computer, the method comprising the steps of:
-
(a) providing one or more drawing tools for use by users associated with the client computers to draw a curve, each drawing tool having one or more style attributes associated therewith; (b) receiving a plurality of location data points representing a path of a curve drawn with one of the drawing tools; (c) mapping the location data points into a plurality of location curve data points, the location curve data points used to display the curve in accordance with a specified image resolution; and (d) utilizing the location curve data points to display the curve in accordance with the style attributes of the drawing tool used to draw the curve; step (b) further including; receiving a plurality of temporal data points representing a speed at which portions of the curve was drawn; step (c) further including; mapping the temporal data points into a plurality of temporal curve points, each of the temporal curve points associated with a corresponding curve data point; and step (d) further including; utilizing the temporal data points to display the curve in accordance with the drawing tool used to draw the curve. - View Dependent Claims (3, 6, 7)
-
-
4. A method for generating a curve in a distributed computing system including at least one client computer and at least one server computer, the method comprising the steps of:
-
(a) providing one or more drawing tools for use by users associated with the client computers to draw a curve, each drawing tool having one or more style attributes associated therewith; (b) receiving a plurality of location data points representing a path of a curve drawn with one of the drawing tools; (c) mapping the location data points into a plurality of location curve data points, the location curve data points used to display the curve in accordance with a specified image resolution; and (d) utilizing the location curve data points to display the curve in accordance with the drawing tool used to draw the curve; step (b) further including; receiving a plurality of pressure data points representing a pressure at which portions of the curve was drawn; step (c) further including; mapping the pressure data points into a plurality of pressure curve points, each pressure curve point associated with a corresponding curve data point; and step (d) further including; utilizing the pressure data points to display the curve in accordance with the drawing tool used to draw the curve. - View Dependent Claims (8, 9)
-
-
10. An interactive drawing apparatus, comprising:
-
one or more client computers, each said client computer including; a memory for storing a graphical drawing; an input mechanism for receiving one or more hand-drawn shapes applied to said graphical drawing; at least one curve engine for partitioning each said hand-drawn shape into a plurality of adjacent curves, each said adjacent curve having at least one boundary, each said boundary determined based on changes in direction of said hand-drawn shape meeting predefined threshold criteria, said curve engine representing each said adjacent curve as a set of control points defining said curve; and at least one server computer, coupled by one or more communication links to the client computers, the at least one server computer including a communication mechanism for receiving said control points and transmitting said control points to one or more of said client computers. - View Dependent Claims (11, 12, 13, 14)
-
-
15. A computer program product for use in conjunction with a computer system, the computer program product comprising a computer readable storage medium and a computer program mechanism embedded therein, the computer program mechanism comprising:
-
a graphical drawing; an input mechanism for receiving one or more hand-drawn shapes applied to said graphical drawing; at least one curve engine for partitioning each said hand-drawn shape into a plurality of adjacent curves, each said adjacent curve having at least one boundary, each said boundary determined based on changes in direction of said hand-drawn shape meeting predefined threshold criteria, said curve engine representing each said adjacent curve as a set of control points defining said curve; and a broadcast mechanism for transmitting said control points to one or more of said client computers. - View Dependent Claims (16, 17, 18, 19)
-
-
20. A computer-implemented method for generating and displaying a curved image, said method comprising the steps of:
-
(a) receiving a hand-drawn shape of a curved image; (b) obtaining a distance measurement d from said hand-drawn shape; (c) providing a set of parallel curved images, each of said parallel curved images represented as a plurality of adjacent curves, each said adjacent curve having at least one boundary, each said boundary determined based on changes in direction of said hand-drawn shape meeting a predefined threshold, a first one of said parallel curved images located at a distance d/2 above said shape and a second one of said parallel curved images located at a distance d/2 below said shape; and (d) displaying each of said parallel curved images. - View Dependent Claims (21, 22, 23)
-
-
24. An apparatus for creating a drawing, comprising:
-
one or more drawing tools for use by users of a client computer to draw a curve, each drawing tool having one or more style attributes associated therewith; an input device for receiving a plurality of location data points representing a path of a curve drawn with one of the drawing tools; a curve engine, coupled to the input device, for mapping the location data points into a plurality of location curve data points, the location curve data points used to display the curve in accordance with a specified image resolution; a display device for displaying said freehand sketched input in accordance with the style attributes; an image generation mechanism, coupled to the curve engine and display device, for mapping the location data points into an image of a curve in accordance with the drawing tool used to draw the curve; the curve engine generating one or more sets of location curve descriptors, the location curve descriptors representing a compact representation of the location curve data points; and a communication device for transmitting the location curve descriptors from the client computer to a server computer for retransmission to at least a second client computer, and for receiving location curve descriptors from the second client computer via the server computer; the image generation mechanism including a mechanism for converting the location curve descriptors received via communication device into a plurality of location curve data points, and using the location curve data points to display the curve in accordance with a specified resolution and in accordance with a specified one of the drawing tools.
-
-
25. An apparatus for creating a drawing, comprising:
-
one or more drawing tools for use by users of a client computer to draw a curve, each drawing tool having one or more style attributes associated therewith; an input device for receiving a freehand sketched input, the freehand sketched input including a plurality of location data points representing a path of a curve drawn with one of the drawing tools; a curve engine, coupled to the input device, for mapping the location data points into a plurality of location curve data points, the location curve data points used to display the curve in accordance with a specified image resolution; a display device for displaying said freehand sketched input in accordance with the style attributes; an image generation mechanism, coupled to the curve engine and display device, for mapping the location data points into an image of a curve in accordance with the drawing tool used to draw the curve; the curve engine generating one or more sets of location curve descriptors, the location curve descriptors representing a compact representation of the location curve data points; wherein the received freehand sketched input includes a plurality of temporal data points representing a speed at which portions of the curve was drawn; the curve engine maps the temporal data points into a plurality of temporal curve points, each of the temporal curve points associated with a corresponding first location curve data point; and the image generating mechanism utilizes the temporal data points to display the curve in accordance with the drawing tool used to draw the curve. - View Dependent Claims (26)
-
-
27. An apparatus for creating a drawing, comprising:
-
one or more drawing tools for use by users of a client computer to draw a curve, each drawing tool having one or more style attributes associated therewith; an input device for receiving a freehand sketched input, the freehand sketched input including a plurality of location data points representing a path of a curve drawn with one of the drawing tools; a curve engine, coupled to the input device, for mapping the location data points into a plurality of location curve data points, the location curve data points used to display the curve in accordance with a specified image resolution; a display device for displaying said freehand sketched input in accordance with the style attributes; an image generation mechanism, coupled to the curve engine and display device, for mapping the location data points into an image of a curve in accordance with the drawing tool used to draw the curve; the curve engine generating one or more sets of location curve descriptors, the location curve descriptors representing a compact representation of the location curve data points; wherein the received freehand sketched input includes a plurality of pressure data points representing a pressure at which portions of the curve was drawn; the curve engine maps the pressure data points into a plurality of pressure curve points, each pressure curve point associated with a corresponding curve data point; and the image generating mechanism utilizes the pressure data points to display the curve in accordance with the drawing tool used to draw the curve.
-
Specification