JavaFX如何用半径绘制线段

Lso*_*son 3 javafx

我正在学习javaFx画流,但是线段连接成直角。如何用半径画线段,如下图所示 在此输入图像描述

Sai*_*dem 7

使用 Path 节点进行绘制时,需要使用 ArcTo 元素。

下面是一个显示弯曲直角的基本演示。

在此输入图像描述

import javafx.application.Application;
import javafx.geometry.Point2D;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.shape.*;
import javafx.stage.Stage;

public class PathDemo extends Application {
    @Override
    public void start(Stage stage) throws Exception {
        Pane pane = new Pane();
        Scene scene = new Scene(pane, 250, 150);
        stage.setScene(scene);
        stage.setTitle("Arc Demo");
        stage.show();

        Point2D endPoint = new Point2D(90, 20);
        double arcRadius = 10;
        ArcTo arcTo = new ArcTo();
        arcTo.setX(endPoint.getX() + arcRadius);
        arcTo.setY(endPoint.getY() + arcRadius);
        arcTo.setSweepFlag(true);
        arcTo.setLargeArcFlag(false);
        arcTo.setRadiusX(arcRadius);
        arcTo.setRadiusY(arcRadius);

        Path p = new Path();
        p.getElements().addAll(new MoveTo(20, 20), new LineTo(endPoint.getX(), endPoint.getY()), arcTo, new VLineTo(100));
        pane.getChildren().add(p);
    }
}
Run Code Online (Sandbox Code Playgroud)