0
這可能是最簡單的問題。我有一個JavaFX Canvas
設置是這樣的:刪除GraphicsContext剪輯
Canvas canvas = new Canvas(300, 300);
GraphicsContext context = canvas.getGraphicsContext2D();
// make a big rectangle
context.setFill(Color.BLUE);
context.fillRect(50, 50, 200, 200);
// clip
context.beginPath();
context.rect(100, 100, 100, 100);
context.closePath();
context.clip();
// so now this draws a clipped smaller rectangle
context.setFill(Color.RED);
context.fillRect(50, 50, 200, 200);
context.removeClip(); // ???
// remove clip so this white rectangle is shown
context.setStroke(Color.WHITE);
context.setLineWidth(3);
context.strokeRect(75, 75, 150, 150);
我試圖GraphicsContext#restore()
(用於恢復一切,但剪裁,創造一個矩形路徑從0開始| 0和與畫布的大小,並再次呼籲clip()
如何刪除從GraphicsContext
?
我不使用畫布很多,所以我不確定這個,但它看起來像['context.restore()'](http://docs.oracle.com/javase/8/javafx/ api/javafx/scene/canvas/GraphicsContext.html#restore--)應該刪除剪輯。在調用'clip()'之前,您可能需要/希望調用'context.save()'來保留一些其他值,這些值將由'restore()'回滾。 –
事實上,你必須先調用save(),然後才能調用restore()。這來自還原方法的文檔。 「如果堆棧是空的,則不會改變。」 – mipa