Example usage for com.itextpdf.text.pdf.parser BezierCurve BezierCurve

List of usage examples for com.itextpdf.text.pdf.parser BezierCurve BezierCurve

Introduction

In this page you can find the example usage for com.itextpdf.text.pdf.parser BezierCurve BezierCurve.

Prototype

public BezierCurve(List<Point2D> controlPoints) 

Source Link

Document

Constructs new bezier curve.

Usage

From source file:mkl.testarea.itext5.pdfcleanup.PdfCleanUpRegionFilter.java

License:Open Source License

private static BezierCurve[] approximateCircle(Point2D center, double radius) {
    // The circle is split into 4 sectors. Arc of each sector
    // is approximated  with bezier curve separately.
    BezierCurve[] approximation = new BezierCurve[4];
    double x = center.getX();
    double y = center.getY();

    approximation[0] = new BezierCurve(Arrays.asList((Point2D) new Point2D.Double(x, y + radius),
            new Point2D.Double(x + radius * circleApproximationConst, y + radius),
            new Point2D.Double(x + radius, y + radius * circleApproximationConst),
            new Point2D.Double(x + radius, y)));

    approximation[1] = new BezierCurve(Arrays.asList((Point2D) new Point2D.Double(x + radius, y),
            new Point2D.Double(x + radius, y - radius * circleApproximationConst),
            new Point2D.Double(x + radius * circleApproximationConst, y - radius),
            new Point2D.Double(x, y - radius)));

    approximation[2] = new BezierCurve(Arrays.asList((Point2D) new Point2D.Double(x, y - radius),
            new Point2D.Double(x - radius * circleApproximationConst, y - radius),
            new Point2D.Double(x - radius, y - radius * circleApproximationConst),
            new Point2D.Double(x - radius, y)));

    approximation[3] = new BezierCurve(Arrays.asList((Point2D) new Point2D.Double(x - radius, y),
            new Point2D.Double(x - radius, y + radius * circleApproximationConst),
            new Point2D.Double(x - radius * circleApproximationConst, y + radius),
            new Point2D.Double(x, y + radius)));

    return approximation;
}