gpt4 book ai didi

java - 使用 JavaFX 增加半径时使 Circle 变圆的问题

转载 作者:行者123 更新时间:2023-12-02 01:37:51 24 4
gpt4 key购买 nike

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

这是现在的图片:

enter image description here

这是我希望它执行的操作的图片。还有 fillOval 方法:

Expected

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)

这些参数定义了一个边界矩形,而不是您假设的中心和半径。只需查看文档即可了解更多详细信息。

关于java - 使用 JavaFX 增加半径时使 Circle 变圆的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54963962/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com