开关在另一盒中时形成颜色

时间:2018-08-17 11:50:48

标签: java javafx javafx-8 javafx-2

我试图设置一个包含多个点的面板,然后绘制一个三角形或其他任何形式。并且该表单内的所有点都将其颜色切换为红色。

似乎我做错了什么,这是在for循环内绘制点的正确方法吗?

1 个答案:

答案 0 :(得分:1)

在创建圈子之前,请确保已创建Polygon。这使您可以按照以下答案中所述检查形状的交点:https://stackoverflow.com/a/15014709/2991525

相应选择圆圈填充:

@Override
public void start(Stage stage) {
    Group root = new Group();

    Polygon triangle = new Polygon(300d, 100d, 600d, 150d, 500d, 300d);
    root.getChildren().add(triangle);

    Scene scene = new Scene(root, 900, 500);

    for (double x = 65; x < scene.getWidth(); x += 65) {
        for (double y = 65; y < scene.getHeight(); y += 65) {
            Circle circle = new Circle(x, y, 10);

            root.getChildren().add(circle);

            Shape intersection = Shape.intersect(circle, triangle);

            //Setting the color of the circle
            circle.setFill(intersection.getBoundsInLocal().getWidth() == -1 ? Color.BLACK : Color.RED);
        }
    }

    triangle.setFill(Color.TRANSPARENT);
    triangle.setStroke(Color.RED);
    triangle.toFront();

    stage.setTitle("Scale transition example");
    stage.setScene(scene);
    stage.show();
}