import com.sun.javafx.geom.Curve;
import com.sun.javafx.geom.Path2D;
import com.sun.javafx.geom.PathIterator;
import com.sun.javafx.geom.Shape;
import com.sun.javafx.geom.transform.BaseTransform;
import javax.swing.*;
import java.awt.*;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
public class CurvesapiExample extends JFrame {
private final int width = 400;
private final int height = 400;
public CurvesapiExample() {
super("Curvesapi Example");
setSize(width, height);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
}
@Override
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
Curve curve = new Curve(Curve.C2, new float[]{100,200,300}, new float[]{300,100,300});
Path2D path = new Path2D();
path.append(curve, false);
AffineTransform transform = new AffineTransform();
transform.translate(0, 0);
Shape transformedPath = path.createTransformedShape(transform);
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
Graphics2D imageG2d = image.createGraphics();
imageG2d.setBackground(Color.WHITE);
imageG2d.setColor(Color.BLACK);
imageG2d.clearRect(0, 0, width, height);
imageG2d.draw(transformedPath);
g2d.drawImage(image, 0, 0, null);
}
public static void main(String[] args) {
EventQueue.invokeLater(() -> {
CurvesapiExample example = new CurvesapiExample();
example.setVisible(true);
});
}
}
<!-- Maven -->
<dependency>
<groupId>com.googlecode.curvesapi</groupId>
<artifactId>curvesapi</artifactId>
<version>1.07</version>
</dependency>
// Gradle
implementation 'com.googlecode.curvesapi:curvesapi:1.07'