当使用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());
}
});
由于某种原因,它始于左上角。我不明白为什么这样做。对我来说没有任何意义。
答案 0 :(得分:2)
在我看来,您对如何定义strokeOval的假设是错误的。
MyDate
参数定义一个边界矩形,而不是您所假定的中心和半径。只需查看文档以了解更多详细信息。