Ich zeichne ein Diagramm auf eine <canvas>
, die teure Berechnungen erfordert. Ich möchte eine Animation erstellen (wenn die Maus über die Zeichenfläche bewegt wird), wo sich der Graph nicht ändert, aber einige andere Objekte darüber gezeichnet werden.Speichern <canvas> Inhalte in späteren Animationsrahmen neu gezeichnet werden?
Da das Canvas neu gezeichnet werden muss, möchte ich die Berechnungen nicht durchführen, um das Diagramm für jeden Frame zu rendern. Wie kann ich das Diagramm einmal zeichnen, speichern und dann das gespeicherte Rendering verwenden, um nachfolgende Bilder der Animation neu zu zeichnen, so dass die teuren Berechnungen nur einmal durchgeführt werden müssen & alles, was ich neu zeichnen muss, ist die viel einfachere Animationsebene?
Ich habe versucht, die Grafik auf einer zweiten Leinwand Zeichnung & dann ctx.drawImage()
mit ihm auf die Haupt Leinwand zu machen, aber auf der Leinwand Zeichnung scheint nicht zu funktionieren, wenn es & nicht display:none;
im dom ist. Muss ich etwas Hackiges tun, wie die Temp-Leinwand aus dem Blickfeld zu bringen, oder gibt es einen saubereren Weg, dies zu tun?
Ich wusste das nicht - und habe nie etwas in allen Canvas-Dokumenten gesehen, die ich gelesen habe. Gute Anmerkung. –