Dies ist wahrscheinlich die einfachste Frage überhaupt. Ich habe einen JavaFx Canvas
Setup wie folgt aus:.Entfernen von Ausschnitt aus 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);
Ich versuchte GraphicsContext#restore()
(das alles, aber das Clipping wieder her und einen rechteckigen Pfad beginnend bei 0 Erstellen | 0 und mit der Größe der Leinwand und ruft clip()
wieder
Wie entferne ich aus einem GraphicsContext
?
Ich benutze keine Leinwand, daher bin ich mir nicht sicher, aber es sieht aus wie ['context.restore()'] (http://docs.oracle.com/javase/8/javafx/ api/javafx/scene/canvas/GraphicsContext.html # restore--) sollte den Clip entfernen. Sie müssen/context.save() 'aufrufen, bevor Sie' clip() 'aufrufen, um einige andere Werte beizubehalten, die von' restore() 'zurückgesetzt werden. –
In der Tat müssen Sie zuerst save() aufrufen, bevor Sie restore() aufrufen können. Dies ist aus der Dokumentation der Wiederherstellungsmethode. "Wenn der Stapel leer ist, wird nichts geändert." – mipa