我试图设置一个包含多个点的面板,然后绘制一个三角形或其他任何形式。并且该表单内的所有点都将其颜色切换为红色。
似乎我做错了什么,这是在for循环内绘制点的正确方法吗?
答案 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();
}