Package com.itextpdf.kernel.geom
Class BezierCurve
java.lang.Object
com.itextpdf.kernel.geom.BezierCurve
- All Implemented Interfaces:
-
IShape
Represents a Bezier curve.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic doubleIf the distance between a point and a line is less than this constant, then we consider the point lies on the line.static doubleThe Manhattan distance is used in the case when either the line ((x1, y1), (x4, y4)) passes through both (x2, y2) and (x3, y3) or (x1, y1) = (x4, y4).static doubleIn the case when neither the line ((x1, y1), (x4, y4)) passes through both (x2, y2) and (x3, y3) nor (x1, y1) = (x4, y4) we use the square of the sum of the distances mentioned below in compare to this field as the criterion of good approximation. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionTreat base points as the points which are enough to construct a shape.You can adjust precision of the approximation by varying the following parameters:curveCollinearityEpsilon,distanceToleranceSquare,distanceToleranceManhattan.
-
Field Details
-
curveCollinearityEpsilon
public static double curveCollinearityEpsilonIf the distance between a point and a line is less than this constant, then we consider the point lies on the line. -
distanceToleranceSquare
public static double distanceToleranceSquareIn the case when neither the line ((x1, y1), (x4, y4)) passes through both (x2, y2) and (x3, y3) nor (x1, y1) = (x4, y4) we use the square of the sum of the distances mentioned below in compare to this field as the criterion of good approximation. 1. The distance between the line and (x2, y2) 2. The distance between the line and (x3, y3) -
distanceToleranceManhattan
public static double distanceToleranceManhattanThe Manhattan distance is used in the case when either the line ((x1, y1), (x4, y4)) passes through both (x2, y2) and (x3, y3) or (x1, y1) = (x4, y4). The essential observation is that when the curve is a uniform speed straight line from end to end, the control points are evenly spaced from beginning to end. Our measure of how far we deviate from that ideal uses distance of the middle controls: point 2 should be halfway between points 1 and 3; point 3 should be halfway between points 2 and 4.
-
-
Constructor Details
-
BezierCurve
Constructs new bezier curve.- Parameters:
-
controlPoints- Curve's control points.
-
-
Method Details
-
getBasePoints
Treat base points as the points which are enough to construct a shape. E.g. for a bezier curve they are control points, for a line segment - the start and the end points of the segment.- Specified by:
-
getBasePointsin interfaceIShape - Returns:
-
Ordered
Listconsisting of shape's base points.
-
getPiecewiseLinearApproximation
You can adjust precision of the approximation by varying the following parameters:curveCollinearityEpsilon,distanceToleranceSquare,distanceToleranceManhattan.- Returns:
-
Listcontaining points of piecewise linear approximation for this bezier curve.
-