Ich arbeite an etwas Code, der auf eine Leinwand zeichnet. Ein Teil des Codes zeichnet einige Linien auf die Leinwand. Die Position und die Farbe dieser Linien ändern sich nicht, aber sie müssen oft neu gezeichnet werden, weil anderer Code sie beeinflusst haben könnte (zB: darüber gezogen).Speichern Sie einen Verweis auf einen HTML-Canvas-Pfad
Es kann mehrere hundert Zeilen zum Zeichnen geben, und in diesen Fällen zeigt mir das Profiling, dass es ~ 200ms zum Zeichnen braucht, also möchte ich das etwas optimieren.
Eine Sache, die ich bemerkte, war, dass beim Zeichnen auf die Leinwand, Sie grundsätzlich Punkte zu einem Pfad hinzufügen und dann, wenn Sie fertig sind, können Sie diesen Pfad füllen oder streichen. Obwohl die Pixel auf der Zeichenfläche veraltet sind, wenn ich in der Lage wäre, einen Verweis auf den Pfad beizubehalten, wäre die Aktualisierung so einfach wie das Überstreichen des zuvor erstellten Pfads.
Meine Frage ist: Wie auf der Erde erhalten Sie ein Path-Objekt?
Die Füll- und Strich Methoden scheinen accept a path object, und die Spezifikation definiert die methods for Path, aber ich kann nicht die tatsächliche Path
Klasse scheint überall ...
Also, nur zu rekapitulieren zu finden:
ich habe so etwas wie dies:
function update() {
context.beginPath();
// lots of lines added to the default path...
context.moveTo(x1, y1); context.lineTo(somewhere, else);
context.moveTo(x2, y2); context.lineTo(somewhere, else);
context.stroke();
}
Was ich mag würde, ist so etwas wie dieses:
function update() {
if (!this.path) {
this.path = new Path(); // <-- here's the magic
this.path.moveTo(x1, y2); this.path.lineTo(somewhere, else); // etc
}
this.path.stroke();
}
Das Pfadobjekt ist jetzt in Chrome Canary verfügbar. Bald im normalen Chrome. – K3N
@Ken Ich habe ein großes Lächeln auf meinem Gesicht bei dem Gedanken, dass Pfadobjekte über den Browser verfügbar sind !!!! – markE