java从GraphicsContext中删除剪辑
这可能是有史以来最简单的问题。我有一个如下的JavaFx Canvas
设置:
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开始的矩形路径,具有画布的大小,然后再次调用^{
如何从GraphicsContext
中删除剪辑
# 1 楼答案
JavaFX中的剪切行为很难说。“你说什么?”这个怎么样
当我在电脑上这样做时,我只得到一个蓝色的圆圈。没有剪辑。有人可能会想到红色的四分之一圆和蓝色的四分之一圆。不。取消对save和restore调用的注释,它的行为符合预期