IP Library Granted Patent US 10,216,389
Granted Patent B2
US 10,216,389 · App. 15/256,327 · Granted Feb 26, 2019

Mirror snapping during vector drawing

Inventors: Narciso Batacan Jaramillo (Piedmont, CA); Tomas Krcha (San Francisco, CA)
Assignee: ADOBE INC.
G06F3/04845G06T11/203G06T2200/24
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,216,389
App. No.
15/256,327
Granted
Feb 26, 2019
Kind
B2
Abstract

Embodiments of the present invention are directed at providing a mirror snapping system for selecting candidate snap points as endpoints for path segments with symmetry in a created image. In one embodiment, generating candidate snap locations from a newly created path segment can be accomplished by automatically constructing an axis of symmetry for the newly created path segment and reflecting created path segment endpoints in the design across the axis of symmetry. In a further embodiment, upon selection of a candidate snap location as the anchored endpoint for an unanchored endpoint of a path segment, line parameters associated with the candidate snap location can be implemented in the path segment. Such parameters can include weight, color, and curvature of the path segment. Other embodiments may be described and/or claimed.

Claims (45)

1. A computer-implemented method for symmetrical drawing, comprising:

receiving input defining a path segment of an image;

generating a candidate snap location based on a symmetrical analysis of the path segment in relation to one or more previously created path segments, the candidate snap location identifying a potential path segment endpoint for subsequent path segments;

receiving additional input defining a subsequent path segment; and

selecting a candidate snap location as an endpoint for the subsequent path segment to cause the subsequent path segment to have symmetry with the path segment.

2. The computer-implemented method of claim 1 , wherein the generating the candidate snap location comprises:

constructing an axis through the path segment;

reflecting at least one endpoint of the one or more previously created path segments or the path segment across the axis; and

identifying the reflected endpoint as the candidate snap location; and

storing coordinate information for the identified candidate snap location in a list of candidate snap locations, the list of candidate snap locations for use in generating path segments with symmetry within the image being generated by the user.

3. The computer-implemented method of claim 2 , wherein the axis is constructed though a perpendicular bisector of the path segment.

4. The computer-implemented method of claim 2 , wherein the axis is constructed through an endpoint of the path segment.

5. The computer-implemented method of claim 2 , wherein the coordinate information comprises control information for the identified candidate snap location, the control information indicating at least one parameter of the path segment.

6. The computer-implemented method of claim 5 , wherein the at least one parameter includes a curvature parameter defining a curvature of the path segment.

7. The computer-implemented method of claim 1 , wherein selecting the candidate snap location is dependent on a user selected starting point for the subsequent path segment.

8. The computer-implemented method of claim 1 , further comprising;

displaying an axis associated with the selected endpoint.

9. The computer-implemented method of claim 1 , wherein the selecting of the endpoint for the subsequent path segment occurs in response to detecting a user interaction within a predetermined proximity to one of the candidate snap locations.

10. One or more non-transitory computer-readable storage media having instructions stored thereon, which, when executed by one or more processors of a computing device, cause the computing device to:

generate candidate snap locations identifying potential path segment endpoints for subsequently created path segments, the candidate snap locations based on a symmetrical analysis of features of an image comprised of a plurality of path segments; and

in response to detecting a user interaction at a position within a predetermined level of proximity to one of the candidate snap locations, display a suggested endpoint for a path segment determined utilizing the candidate snap locations, wherein the display of the suggested endpoint enables a user to select the endpoint.

11. The one or more non-transitory computer-readable storage media of claim 10 , wherein instructions further cause the computing device to:

automatically select the suggested endpoint for the path segment in response to detecting the user interaction.

12. The one or more non-transitory computer-readable storage media of claim 10 , wherein the position is a first position, the suggested endpoint is a first suggested endpoint, and wherein the instructions further cause the computing device to:

enable the user to move an unanchored endpoint of the path segment to a second position; and

cause a second suggested endpoint for path segment to be displayed to the user based on the second position.

13. The one or more non-transitory computer-readable storage media of claim 10 , wherein instructions further cause the computing device to:

display one or more axes across which the suggested endpoint is reflected.

14. The one or more non-transitory computer-readable storage media of claim 10 , wherein the generation of candidate snap locations comprises:

construction of an axis through a first path segment;

identification of one of the candidate snap locations by reflecting an endpoint of a second path segment; and

storage of coordinate information for the identified candidate snap location for use in generating the path segment such that the path segment has symmetry with the second path segment.

15. The one or more non-transitory computer-readable storage media of claim 14 , wherein storage of coordinate information includes storage of control information for the identified candidate snap location, the control information including at least one parameter of the second path segment, the at least one parameter including a curvature parameter defining a curvature of the second path segment.

16. The one or more non-transitory computer-readable storage media of claim 15 , wherein the use of the stored coordinate information in generating the path segment includes applying the at least one parameter of the second path segment to the path segment.

17. The one or more non-transitory computer-readable storage media of claim 16 , wherein applying the at least one parameter of the second path segment to the path segment includes reflecting the curvature parameter around an axis of symmetry.

18. A computing system comprising:

one or more processors; and

one or more non-transitory computer-readable storage media, coupled with the one or more processors, having instructions stored thereon, which, when executed by the one or more processors, cause the computing system to:

construct an axis through a first path segment of a plurality of path segments;

reflect one or more endpoints of the plurality of path segments across the axis to identify candidate snap locations;

store coordinate information for the identified candidate snap locations;

detect user input within a predetermined proximity of one of the candidate snap locations; and

in response to the detection of the user input, select the one of the candidate snap locations as an endpoint for the additional path segment.

19. The computing system of claim 18 , wherein the axis is constructed at a first endpoint of the first path segment.

20. The computing system of claim 18 , wherein storing coordinate information includes storing the location of the axis across which an endpoint was reflected to identify an associated candidate snap location.

Assignments (3)
CHANGE OF NAME Recorded Apr 8, 2019
From: ADOBE SYSTEMS INCORPORATED
To: ADOBE INC.
Reel/Frame 048867/0882 →
CHANGE OF NAME Recorded Nov 29, 2018
From: ADOBE SYSTEMS INCORPORATED
To: ADOBE INC.
Reel/Frame 047687/0115 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 22, 2016
From: JARAMILLO, NARCISO BATACAN; KRCHA, TOMAS
To: ADOBE SYSTEMS INCORPORATED
Reel/Frame 040118/0092 →
Continuity (1)
Related Publication 20180067630A1 · Mar 8, 2018
Cited By (1)
US 12,541,891