当前位置: 代码迷 >> java >> 使用JavaFX增大半径时出现圆形的问题
  详细解决方案

使用JavaFX增大半径时出现圆形的问题

热度:91   发布时间:2023-07-25 19:21:17.0

当使用JavaFX创建Circle对象并使用Graphic Context描边椭圆形时,我希望它扩展到第一个创建的椭圆形之外。 因此,它将比最后一个大,如果对您有意义,请绕开第一个。

这是现在的图片:

这是我想要做的事情的图片。 以及fillOval方法:

Canvas canvas = new Canvas(400, 200);
GraphicsContext gc;
gc = canvas.getGraphicsContext2D();
gc.setLineWidth(1);

Circle c = new Circle();

canvas.setOnMousePressed(e ->
{
        c.setCenterX(e.getX());
        c.setCenterY(e.getY());
});

canvas.setOnMouseDragged(e ->
{
        c.setRadius((Math.abs(e.getX() - c.getCenterX()) + Math.abs(e.getY() - c.getCenterY())) / 2);
        gc.strokeOval(c.getCenterX(), c.getCenterY(), c.getRadius(), c.getRadius());
    }
});

由于某种原因,它从左上角开始。 我不明白为什么这样做。 这对我没有任何意义。

在我看来,您对如何定义strokeOval的假设是错误的。

public void strokeOval?(double x, double y, double w, double h)

参数定义边界矩形,而不是您定义的中心和半径。 只需查看文档以了解更多详细信息。

  相关解决方案