Klar, ganze, verwandelt das HTML5 Canvas-Element, während die Erhaltung Kontext transformieren

Möchte ich die zoom-und pan eine HTML5-Canvas-verwandelt den Kontext translate() und scale() -, clearing die Leinwand, und dann Neuzeichnen. Beachten Sie, dass ich explizit nicht aufrufen save() und restore() um meine Transformationen.

Wenn ich führen Sie die standard - ctx.clearRect(0,0,ctx.canvas.width,ctx.canvas.height) dann das gesamte sichtbare Leinwand, nicht gelöscht werden; downscaling oder schwenken kann dazu führen, diese erste Rechteck nicht genau decken im Bereich der Zeichnung.

Wenn ich die Webkit-freundliche clearing-Methode...

var w=canvas.width;
canvas.width = 0;
canvas.width = w;

...dann die kumulative transformation der Kontext zurückgesetzt.

Wie kann ich am besten klar, dass das gesamte canvas-Kontext ohne Verlust meiner transformation?

Die Sauger-ish Weg wäre, um speichern Sie die Skalen und übersetzt und dann die Berechnung der bounding-Rechteck selbst ist, aber man würde hoffen, dass es einen besseren Weg gibt.
Das ist eigentlich das, was ich Tue, da bin ich schon mit der Aufzeichnung der Transformation und Hinzugefügt haben, die Methode zur Transformation von Platz auf dem Bildschirm, um den canvas-Bereich, aber dies schien wie eine gute Gelegenheit, an die Probleme mit diesen beiden clearing-Methoden und sehen, ob es etwas sauberer.

InformationsquelleAutor Phrogz | 2011-04-02

Schreibe einen Kommentar