Например, у меня есть это Путь
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.shape.*;
import javafx.stage.Stage;
public class DivideShape extends javafx.application.Application {
@Override
public void start(Stage primaryStage) {
var path = new Path(new MoveTo(200, 380), new LineTo(0, 300),
new ArcTo(300, 300, 0, 300, 0, false, true), new LineTo(380,
200), new ArcTo(180, 180, 0, 200, 380, false, false));
path.setFill(Color.BLUE);
primaryStage.setTitle("Hello World!");
primaryStage.setScene(new Scene(new Pane(path)));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
И я хочу разделить его на 5 частей ( точно так же, как разделение пиццы)
Это можно сделать, используя Линия .
Однако, таким образом, это будет выглядеть как 5 объектов, но на самом деле это все равно будет 1 объект.
Можно ли разделить объект на 5 путей , чтобы мне не приходилось создавать их все по одному, пожалуйста?
Спасибо
ОБНОВЛЕНИЕ:
Конечно, когда я изменяю метод запуска.
@Override
public void start(Stage primaryStage) {
var pane = new Pane();
var moveTo = new MoveTo(200, 380);
var lineTo = new LineTo(0, 300);
var arc_big = 300;
var arc_small = 180;
for (var deg = 198; deg <= 270; deg += 18) {
var path = new Path(moveTo, lineTo);
lineTo = new LineTo(300 + arc_big * Math.cos(Math.toRadians(deg)), 300 + arc_big * Math.sin(Math.toRadians(deg)));
path.getElements().add(new ArcTo(arc_big, arc_big, 0, lineTo.getX(), lineTo.getY(), false, true));
var move = new MoveTo(380 + arc_small * Math.cos(Math.toRadians(deg)), 380 + arc_small * Math.sin(Math.toRadians(deg)));
path.getElements().addAll(new LineTo(move.getX(), move.getY()),
new ArcTo(arc_small, arc_small, 0, moveTo.getX(), moveTo.getY(), false, false));
moveTo = move;
path.setFill(Color.color(Math.random(), Math.random(), Math.random()));
pane.getChildren().add(path);
}
primaryStage.setTitle("Hello World!");
primaryStage.setScene(new Scene(pane));
primaryStage.show();
}
Итак, я создам пять отдельных путей , но код слишком сложный. Вот почему я хотел знать, можно ли его разделить (1 объект на 5 объектов), пожалуйста?