当它在另一个里面时切换形式颜色
Switch forms color when it is inside another one
我正在尝试设置一个包含多个点的面板,然后绘制一个三角形或任何其他形状。该表格内的所有点都会将其颜色切换为红色。
好像我做错了什么,这是在 for 循环内绘制点的正确方法吗?
确保在创建圈子之前创建 Polygon
。这使您可以按照此答案中的描述检查形状的交集:
相应地选择圆填充:
@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();
}
我正在尝试设置一个包含多个点的面板,然后绘制一个三角形或任何其他形状。该表格内的所有点都会将其颜色切换为红色。
好像我做错了什么,这是在 for 循环内绘制点的正确方法吗?
确保在创建圈子之前创建 Polygon
。这使您可以按照此答案中的描述检查形状的交集:
相应地选择圆填充:
@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();
}