Patent EP0847028A2 successfully refreshed from Google Patents.
← Back to Patent Explorer
EP0847028A2 Expired / Lapsed EP ⏱️ 0.0 years remaining

Creating and modifying curves on a computer display

Assignee: Adobe Inc
•
Filing: 1997-10-31
•
Granted: —
•
Expires: 2017-10-31
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A computer-implemented method modifies a curve in response to a user action through a graphical user interface in the computer system, with the curve being defined by control points. Each of the control points is identified in response to user input as a fixed control point, a selected control point, or a free control point. A displacement of selected points is received, and a free slope control point of the curve is mapped to a point Tp on a line t. An interpolation curve IC(t) is defined on the line t, and a point Tp is projected to the value of the interpolation curve IC(t) at t equals Tp to find a scale factor. The scale factor is multiplied by the displacement of the selected points to determine the displacement of the free control point. A computer-implemented graphical user interface method creates a Bezier curve segment on a display in a computer system. A selection of a first segment end point is received through a graphical user interface in the computer system. The position of a cursor on the computer display is received as a second segment end point. The first and second slope points are calculated so that the Bezier segment defined by the first and second segment end points and the first and second slope points approximates an arc. The calculated Bezier curve segment is displayed on the computer display.

Inventors

  • 👤 Martin E. Newell

Bibliographic Details

Application Number —
Jurisdiction EP
Data Source google_patents
Last Synchronized 2026-11-09 15:47
CPC Classifications
G; G06; G06T; G06T11/00; G06T11/20

Claims Analysis

Total Claims: 35
Claim 1
Independent Claim 135 words
A computer-implemented method modifying a curve in response to a user action through a graphical user interface in a computer system, the curve being defined by a plurality of control points, the method comprising: identifying in response to user input each of the control points as a fixed control point, a selected control point, or a free control point; receiving a displacement of a plurality of selected points; mapping a free control point of the curve to a point Tp on a line t; defining an interpolation curve IC(t) on the line t; projecting the point Tp to the value of the interpolation curve IC(t) at t equals Tp to find a scale factor; and multiplying the scale factor by the displacement of the selected points to determine the displacement of the free control point.
Claim 2
Dependent Claim 66 words
The method of claim 1, further comprising: mapping a plurality of free control points of the curve to corresponding points on the line t; projecting the points on the line t to corresponding values of the interpolation curve IC(t) to find corresponding scale factors; and multiplying the scale factors by the displacement of the selected points to determine the corresponding displacements of the free control points.
Claim 3
Dependent Claim 128 words
The method of claim 1, wherein the control points include segment end points and slope points, and wherein the free control point mapped to the point Tp on the line t is a free segment end point, the method further comprising: mapping a free slope point to a point Tp+ on the line t; defining a line Yp tangent the interpolation curve IC(t) at t equals Tp; projecting the point Tp+ to the value of the line Yp at t equals Tp+ to find a scale factor for the free slope point; and multiplying the scale factors of the free segment end points and free slope points by the displacement of the selected points to determine the displacements of the free segment end point and free slope point.
Claim 4
Dependent Claim 23 words
The method of claim 1, wherein the scale factor is equal to the value of the interpolation curve IC(t) at t equals Tp.
Claim 5
Dependent Claim 39 words
The method of claim 4, further comprising: defining the value of IC(t) to be in a range from 0 to 1, whereby the free control point is moved by a displacement less than the displacement of the selected points.
Claim 6
Dependent Claim 237 words
The method of claim 1, further comprising: identifying in response to user input a first group having a selected control point and a free control point and a second group having a selected control point and a free control point, the first group of control points being separated from the second group of control points by a fixed control point; receiving a displacement of the first group of selected control points and the second group of selected control points; mapping the free control point of the first group to a point Tp1 on a first line t1, and mapping the free control point of the second group to a point Tp2 on a second line t2; defining a first interpolation curve IC(t1) on the first line t1, and defining a second interpolation curve IC(t2) on the second line t2; projecting the point Tp1 to the first interpolation curve IC(t1) at t1 equals Tp1 to find a first scale factor, and projecting the point Tp2 to the second interpolation curve IC(t2) at t2 equals Tp2 to find second scale factor; and multiplying the first scale factor by the displacement of the first and second group of selected points to determine the displacement of the first group free control point, and multiplying the second scale factor by the displacement of the first and second group of selected points to determine the displacement of the second group free control point.
Claim 7
Dependent Claim 15 words
The method of claim 1, wherein the curve is a composite curve having Bezier segments.
Claim 8
Dependent Claim 65 words
The method of claim 1, wherein the curve has a first control point, the method further comprising: defining a polyline that passes through the control points of the curve; calculating the total length of the polyline, wherein the point Tp is equal to the length between the first point and the point corresponding to the point Tp divided by the total length of the polyline.
Claim 9
Dependent Claim 37 words
The method of claim 1, further comprising: defining the line t as being perpendicular to the direction of the displacement, wherein the first mapping step projects the control points of the curve perpendicularly onto the line t.
Claim 10
Dependent Claim 16 words
The method of claim 1, wherein the interpolation curve is defined as a third-order cubic curve.
Claim 11
Dependent Claim 142 words
A computer-implemented method modifying a plurality of curves in response to a user action through a graphical user interface in a computer system, wherein each curve is defined by a plurality of control points, the method comprising: identifying in response to user input each of the control points as a fixed control point, a selected control point, or a free control point; receiving a displacement of a selected point of each curve; mapping a free control point of each curve to a point of a corresponding one of a plurality of lines; defining an interpolation curve on each line; projecting the point on each line to the corresponding interpolation curve to find a scale factor for each free control point; and multiplying the scale factors by the displacement of the selected control points to determine the displacements of the free control points.
Claim 12
Dependent Claim 16 words
The method of claim 11, wherein the curve is a composite curve having multiple Bezier segments.
Claim 13
Dependent Claim 96 words
A computer-implemented graphical user interface method creating a Bezier curve segment on a display in a computer system, the method comprising: receiving a selection of a first segment end point through a graphical user interface in the computer system; receiving the position of a cursor on the computer display as a second segment end point; calculating first and second slope points so that the Bezier segment defined by the first and second segment end points and the first and second slope points approximates an arc; and displaying the calculated Bezier curve segment on the computer display.
Claim 14
Dependent Claim 25 words
The method of claim 13, further comprising: redefining new positions of the second segment end point as the cursor is moved about the computer display.
Claim 15
Dependent Claim 44 words
The method of claim 13, further comprising: receiving selection of an intermediate slope point; and defining a vector between the segment end point and the intermediate slope point to specify a direction along which the first slope point is positioned on the computer display.
Claim 16
Dependent Claim 117 words
The method of claim 13, further comprising: receiving a command to concatenate a second Bezier curve segment to the first Bezier curve segment; defining the second segment end point of the first curve segment as a first segment end point of the second curve segment; receiving the position of the cursor on the computer display as a second segment end point of the second curve segment; calculating first and second slope points of the second curve segment so that the second Bezier curve segment defined by its first and second segment end points and its first and second slope points approximates an arc; and displaying the concatenated first and second Bezier curve segments on the computer display.
Claim 17
Dependent Claim 112 words
The method of claim 16, further comprising: receiving selection of an intermediate slope point for the first curve segment; defining a first vector between the first segment end point of the first curve segment and the intermediate slope point to specify a direction along which the first slope point of the first curve segment is positioned on the computer display; defining a line passing through the second slope point and the second segment end point of the first curve segment; and defining an intermediate slope point for the second curve segment as a point on the line on the other side of the second segment end point of the first curve segment.
Claim 18
Dependent Claim 149 words
A computer program residing on a computer-readable medium for modifying a curve in response to a user action through a graphical user interface in a computer system, the curve being defined by a plurality of control points, the computer program comprising instructions for causing the computer system to: identify in response to user input each of the control points as a fixed control point, a selected control point, or a free control point; receive a displacement of a plurality of selected points; map a free control point of the curve to a point Tp on a line t; define an interpolation curve IC(t) on the line t; project the point Tp to the value of the interpolation curve IC(t) at t equals Tp to find a scale factor; and multiply the scale factor by the displacement of the selected points to determine the displacement of the free control point.
Claim 19
Dependent Claim 74 words
The computer program of claim 18, further comprising instructions for causing the computer system to: map a plurality of free control points of the curve to corresponding points on the line t; project the points on the line t to corresponding values of the interpolation curve IC(t) to find corresponding scale factors; and multiply the scale factors by the displacement of the selected points to determine the corresponding displacements of the free control points.
Claim 20
Dependent Claim 137 words
The computer program of claim 18, wherein the control points include segment end points and slope points, and wherein the free control point mapped to the point Tp on the line t is a free segment end point, the computer program further comprising instructions for causing the computer system to: map a free slope point to a point Tp+ on the line t; define a line Yp tangent the interpolation curve IC(t) at t equals Tp; project the point Tp+ to the value of the line Yp at t equals Tp+ to find a scale factor for the free slope point; and multiply the scale factors of the free segment end points and free slope points by the displacement of the selected points to determine the displacements of the free segment end point and free slope point.
Claim 21
Dependent Claim 47 words
The computer program of claim 4, further comprising instructions for causing the computer system to: define the value of IC(t) to be in a range from 0 to 1, whereby the free control point is moved by a displacement less than the displacement of the selected points.
Claim 22
Dependent Claim 245 words
The computer program of claim 18, further comprising instructions for causing the computer system to: identify in response to user input a first group having a selected control point and a free control point and a second group having a selected control point and a free control point, the first group of control points being separated from the second group of control points by a fixed control point; receive a displacement of the first group of selected control points and the second group of selected control points; map the free control point of the first group to a point Tp1 on a first line t1, and mapping the free control point of the second group to a point Tp2 on a second line t2; define a first interpolation curve IC(t1) on the first line t1, and defining a second interpolation curve IC(t2) on the second line t2; project the point Tp1 to the first interpolation curve IC(t1) at t1 equals Tp1 to find a first scale factor, and projecting the point Tp2 to the second interpolation curve IC(t2) at t2 equals Tp2 to find second scale factor; and multiply the first scale factor by the displacement of the first and second group of selected points to determine the displacement of the first group free control point, and multiplying the second scale factor by the displacement of the first and second group of selected points to determine the displacement of the second group free control point.
Claim 23
Dependent Claim 16 words
The computer program of claim 18, wherein the curve is a composite curve having Bezier segments.
Claim 24
Dependent Claim 156 words
A computer program residing on a computer-readable medium for modifying a plurality of curves in response to a user action through a graphical user interface in a computer system, wherein each curve is defined by a plurality of control points, the computer program comprising instructions for causing the computer system to: identify in response to user input each of the control points as a fixed control point, a selected control point, or a free control point; receive a displacement of a selected point of each curve; map a free control point of each curve to a point of a corresponding one of a plurality of lines; define an interpolation curve on each line; project the point on each line to the corresponding interpolation curve to find a scale factor for each free control point; and multiply the scale factors by the displacement of the selected control points to determine the displacements of the free control points.
Claim 25
Dependent Claim 17 words
The computer program of claim 24, wherein the curve is a composite curve having multiple Bezier segments.
Claim 26
Dependent Claim 100 words
A computer program residing on a computer-readable medium for creating a Bezier curve segment, the computer program comprising instructions for causing the computer system to: receive a selection of a first segment end point through a graphical user interface in the computer system; receive the position of a cursor on the computer display as a second segment end point; calculate first and second slope points so that the Bezier segment defined by the first and second segment end points and the first and second slope points approximates an arc; and display the calculated Bezier curve segment on the computer display.
Claim 27
Dependent Claim 125 words
The computer program of claim 26, further comprising instructions for causing the computer system to: receive a command to concatenate a second Bezier curve segment to the first Bezier curve segment; define the second segment end point of the first curve segment as a first segment end point of the second curve segment; receive the position of the cursor on the computer display as a second segment end point of the second curve segment; calculate first and second slope points of the second curve segment so that the second Bezier curve segment defined by its first and second segment end points and its first and second slope points approximates an arc; and display the concatenated first and second Bezier curve segments on the computer display.
Claim 28
Dependent Claim 124 words
A computer-implemented method modifying a curve in response to a user action through a graphical user interface in a computer system, the curve being defined by a plurality of control points and having two curve end points, the method comprising: defining a slope adjustment point; receiving a displacement through the graphical user interface of the slope adjustment point; mapping a control point of the curve to a point Tp on a line t; defining an interpolation curve IC(t) on the line t; projecting the point Tp to the value of the interpolation curve IC(t) at t equals Tp to find a scale factor; and multiplying the scale factor by the displacement of the selected points to determine the displacement of the free control point.
Claim 29
Dependent Claim 14 words
The method of claim 28, wherein the interpolation curve IC(t) is a Bernstein polynomial.
Claim 30
Dependent Claim 16 words
The method of claim 28, wherein the curve is a composite curve having Bezier curve segments.
Claim 31
Dependent Claim 40 words
The method of claim 28, further comprising: defining a Bezier curve segment having segment end points that coincide with the curve end points; and using one of the slope points of the Bezier curve segment as the slope adjustment point.
Claim 32
Dependent Claim 132 words
A computer program, residing on a computer-readable medium for modifying a curve in response to a user action through a graphical user interface in a computer system, the curve being defined by a plurality of control points, the computer program comprising instructions for causing the computer system to: define a slope adjustment point; receive a displacement through the graphical user interface of the slope adjustment point; map a control point of the curve to a point Tp on a line t; define an interpolation curve IC(t) on the line t; project the point Tp to the value of the interpolation curve IC(t) at t equals Tp to find a scale factor; and multiply the scale factor by the displacement of the selected points to determine the displacement of the free control point.
Claim 33
Dependent Claim 15 words
The computer program of claim 32, wherein the interpolation curve IC(t) is a Bernstein polynomial.
Claim 34
Dependent Claim 17 words
The computer program of claim 32, wherein the curve is a composite curve having Bezier curve segments.
Claim 35
Dependent Claim 48 words
The computer program of claim 32, further comprising instructions for causing the computer system to: define a Bezier curve segment having segment end points that coincide with the curve end points; and use one of the slope points of the Bezier curve segment as the slope adjustment point.

References Cited (Backward Citations)

No citation records indexed.

USPTO Annuity & Maintenance Windows

Maintenance schedule is calculated for granted US utility patents.

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag