Java GWT:放大和缩小画布图形

Java GWT:放大和缩小画布图形,java,gwt,Java,Gwt,我想通过在画布上重新绘制对象来应用放大和缩小,以便在最大和最小缩放级别上获得清晰的视图 我得到了如何做的参考,因此我将画布传递给ScalableImage构造函数,而不是Image,并遵循了所有步骤我正在用“mainDraw”方法重新绘制对象,但没有得到正确的结果。我知道我缺少重新绘制画布的新比例和转换因子,但不知道如何设置。我正在画布上绘制多个对象,如圆弧、矩形等。。。因此,性能是主要关注点 我已设置上下文。翻译(0,画布高度);量表(1,-1);从左下角开始坐标系。(根据要求) 下面是一个带

我想通过在画布上重新绘制对象来应用放大和缩小,以便在最大和最小缩放级别上获得清晰的视图

我得到了如何做的参考,因此我将画布传递给ScalableImage构造函数,而不是Image,并遵循了所有步骤
我正在用“mainDraw”方法重新绘制对象,但没有得到正确的结果。我知道我缺少重新绘制画布的新比例和转换因子,但不知道如何设置。我正在画布上绘制多个对象,如圆弧、矩形等。。。因此,性能是主要关注点

我已设置上下文。翻译(0,画布高度);量表(1,-1);从左下角开始坐标系。(根据要求)

下面是一个带有一个对象和画布的示例代码,我正在传递给ScalableImage构造函数,并在的“mainDraw”中再次调用它

int canvasHeight = 600;
int canvasWidth = 600;

Canvas canvas = Canvas.createIfSupported();
Context2d context = pcbCanvas.getContext2d();
canvas.setWidth("600");
canvas.setHeight("600");

canvas.setCoordinateSpaceHeight(canvasHeight);
canvas.setCoordinateSpaceWidth(canvasWidth);

context.translate(0, canvasHeight);
context.scale(1, -1);

context.beginPath();
context.rect(x, y, width, height); 
context.closePath();
context.fill();

RootPanel.get("canvasContainer").add(canvas);
有什么参考资料或想法吗?

谢谢

如果您在我的示例中使用back上下文,它应该允许您缩放画布。您还可以修改构造函数,以接收另一个画布小部件,而不是图像。这可能是最好的解决方案


在mainDraw()中,您可以修改backContext以添加画布小部件而不是图像

谢谢你的关注。事实上,我已经试过你指给我做的事了。但要求有点不同,我完全没有提到这个问题。我为此道歉。你们可以看到编辑后的问题,请给出想法,这样我就可以进入下一步。