Methods for generating control points for cubic bezier curves
AssigneeA{grave over (g)}fa Corporation
InventorRobert Matthew Katka
Life of this patent
Estimating the term…
Abstract
Methods and devices for generating a cubic Bézier curve between a first point and a second point from a sequence of ordered points. One embodiment provides a method that includes selecting a third point from the sequence of ordered points; determining a first control point based on the first point, the second point, and the third point; selecting a fourth point from the sequence of ordered points; determining a second control point based on the first point, the second point, and the fourth point; and generating a cubic Bézier curve between the first point and the second point using the first control point and the second control point.
Claims73
A method of generating a control point for a cubic Bézier curve between a first point and a second point in a sequence of ordered points using three consecutive points from the sequence of ordered points, the three consecutive points including the first point, the second point, and a third point, based on coordinates of the first point, coordinates of the second point, and coordinates of the third point, the method comprising:
- determining a first line segment between the second point and the third point;
- determining a second line segment between the first point and the second point;
- determining a first horizontal reference line containing the second point;
- determining a second horizontal reference line containing the first point;
- determining a first angle between the second horizontal reference line and the first line segment;
- determining a second angle between the first horizontal reference line and the second line segment;
- determining a third angle between the first horizontal reference line and the first line segment;
- generating a first control angle based on the first angle and the average of the second and third angles;
- generating a control distance based on the first line segment;
- generating the control point based on the first control angle and the control distance;
- and
- displaying a cubic Bézier curve between the first point and the second point.
The method as claimed in 1, wherein generating a control distance includes setting the control distance to half the length of the second line segment.
A method of generating a control point for a cubic Bézier curve between a first point and a second point in a sequence of ordered points, the method comprising:
- selecting a third point from the sequence of ordered points;
- determining a first line segment between the second point and the third point;
- determining a second line segment between the first point and the second point;
- determining a first horizontal reference line containing the second point;
- determining a first angle between the first horizontal reference line and the first line segment;
- determining a second angle between the first horizontal reference line and the second line segment;
- generating a first control angle based on the first angle and the second angle;
- generating a control distance based on the first line segment and the second line segment;
- generating the control point based on the first control angle and the control distance;
- and
- displaying a cubic Bézier curve between the first point and the second point.
A method of generating a first control point for a cubic Bézier curve between a first point and a second point in a sequence of ordered points, the method comprising:
- selecting a third point from the sequence of ordered points;
- determining a first line segment between the second point and the third point;
- determining a second line segment between the first point and the second point;
- determining a horizontal reference line containing the second point;
- determining a first angle between the horizontal reference line and the first line segment;
- determining a second angle between the horizontal reference line and the second line segment;
- generating a first control angle based on the first angle and the second angle;
- generating a first control distance based on the first line segment and the second line segment;
- generating the first control point based on the first control angle and the control distance;
- and
- displaying a cubic Bézier curve between the first point and the second point.
A method of generating a cubic Bézier curve between a first point and a second point from a sequence of ordered points, the method comprising:
- selecting a third point from the sequence of ordered points;
- determining a first control point based on the first point, the second point, and the third point by determining a first line segment between the second point and the third point, determining a second line segment between the first point and the second point, determining a first horizontal reference line containing the second point, determining a first angle between the first horizontal reference line and the first line segment, determining a second angle between the first horizontal reference line and the second line segment, generating a first control angle based on the first angle and the second angle, generating a first control distance based on the first line segment and the second line segment, and determining the first control point based on the first control angle and the first control distance;
- selecting a fourth point from the sequence of ordered points;
- determining a second control point based on the first point, the second point, and the fourth point;
- generating a cubic Bézier curve between the first point and the second point using the first control point and the second control point;
- and
- displaying the cubic Bézier curve.
A method of generating a cubic Bézier curve for a sequence of ordered points, the method comprising:
- selecting a first set of three consecutive points from the sequence of points, the first set containing a first point, a middle point, and a third point;
- determining a first line segment between the first point and the middle point;
- determining a second line segment between the middle point and the third point;
- determining a first horizontal reference line containing the middle point;
- determining a first angle between the first horizontal reference line and the first line segment;
- determining a second angle between the first horizontal reference line and the second line segment;
- generating a first control angle from the first angle and the second angle;
- generating a first control distance from the first line segment and the second line segment;
- generating a first control point based on the first control angle and the first control distance;
- selecting a second set of three consecutive points from the sequence of points, the second set containing the first point, the middle point, and a fourth point;
- determining a third line segment between the fourth point and the first point;
- determining a fourth line segment between the first point and the middle point;
- determining a second horizontal reference line containing the first point;
- determining a fourth angle between the second horizontal reference line and the third line segment;
- determining a fifth angle between the second horizontal reference line and the fourth line segment;
- generating a second control angle from the fourth angle and the fifth angle;
- generating a second control distance from the fourth line segment and the fifth line segment;
- generating a second control point based on the second control angle and the second control distance;
- generating a cubic Bézier curve between the first point and the middle point using the first control point and the second control point;
- and
- displaying the cubic Bézier curve.
Computer readable medium containing instructions for:
- selecting a first set of three consecutive points from an ordered sequence of points, the first set including a first point, a middle point, and a third point;
- determining a first control point based on the first set;
- selecting a second set of three consecutive points from an ordered sequence of points, the second set including at least two points of the first set and a fourth point;
- determining a second control point based on the second set;
- determining a first line segment between the second point and the third point;
- determining a second line segment between the first point and the second point;
- determining a horizontal reference line containing the second point;
- determining a first angle between the horizontal reference line and the first line segment;
- determining a second angle between the horizontal reference line and the second line segment;
- generating a first control angle based on the first angle and the second angle;
- generating a first control distance based on the first line segment and the second line segment;
- determining the first control point based on the first control angle and the first control distance;
- and
- displaying a cubic Bézier curve between the first point and the second point.
An operating system configured to select a first set of three consecutive points from an ordered sequence of points, the first set including a first point, a middle point, and a third point;
- to determine a first control point based on the first set;
- to select a second set of three consecutive points from an ordered sequence of points, the second set including at least two points of the first set and a fourth point;
- to determine a second control point based on the second set;
- to determine a first line segment between the second point and the third point;
- to determine a second line segment between the first point and the second point;
- to determine a horizontal reference line containing the second point;
- to determine a first angle between the horizontal reference line and the first line segment;
- to determine a second angle between the horizontal reference line and the second line segment;
- to generate a first control angle based on the first angle and the second angle;
- to generate a first control distance based on the first line segment and the second line segment;
- to determine the first control point based on the first control angle and the first control distance;
- and to display a cubic Bezier curve between the first point and the second point.
A method of generating a cubic Bézier curve between a first point and a second point from a sequence of ordered points, the method comprising:
- selecting a third point from the sequence of ordered points;
- determining a first control point based on the first point, the second point, and the third point;
- selecting a fourth point from the sequence of ordered points;
- determining a second control point based on the first point, the second point, and the fourth point by determining a third line segment between the first point and the second point, determining a fourth line segment between the fourth point and the first point, determining a second horizontal reference line containing the first point, determining a fourth angle between the second horizontal reference line and the third line segment, determining a fifth angle between the second horizontal reference line and the fourth line segment, generating a second control angle based on the fourth angle and the fifth angle, generating a second control distance based on the third line segment and the fourth line segment, and determining the second control point based on the second control angle and the second control distance;
- generating a cubic Bézier curve between the first point and the second point using the first control point and the second control point;
- and
- displaying the cubic Bézier curve.
Computer readable medium containing instructions for:
- selecting a first set of three consecutive points from an ordered sequence of points, the first set including a first point, a middle point, and a third point;
- determining a first control point based on the first set;
- selecting a second set of three consecutive points from an ordered sequence of points, the second set including at least two points of the first set and a fourth point;
- determining a second control point based on the second set;
- determining a third line segment between the first point and the second point;
- determining a fourth line segment between the fourth point and the first point;
- determining a horizontal reference line containing the first point;
- determining a fourth angle between the horizontal reference line and the third line segment;
- determining a fifth angle between the horizontal reference line and the fourth line segment;
- generating a second control angle based on the fourth angle and the fifth angle;
- generating a second control distance based on the third line segment and the fourth line segment;
- determining the second control point based on the second control angle and the second control distance;
- and
- displaying a cubic Bezier curve between the first point and the second point.
An operating system configured to select a first set of three consecutive points from an ordered sequence of points, the first set including a first point, a middle point, and a third point;
- to determine a first control point based on the first set;
- to select a second set of three consecutive points from an ordered sequence of points, the second set including at least two points of the first set and a forth point;
- to determine a second control point based on the second set;
- to determine a third line segment between the first point and the second point;
- to determine a fourth line segment between the fourth point and the first point;
- to determine a horizontal reference line containing the first point;
- to determine a fourth angle between the horizontal reference line and the third line segment;
- to determine a fifth angle between the horizontal reference line and the fourth line segment;
- to generate a second control angle based on the fourth angle and the fifth angle;
- to generate a second control distance based on the third line segment and the fourth line segment;
- to determine the second control point based on the second control angle and the second control distance;
- and to display a cubic Bezier curve between the first point and the second point.
Dependencies are inferred from the claim text.