Quel est le but de la Toile.Contexte d'Enregistrer et de Restaurer dans cet exemple?

Cette page montre quelques animations en HTML5 canvas. Si vous regardez la source de la barre de défilement, il y a une instruction pour sauver le contexte, après compensation, le rectangle et le restaurer après l'animation. Si je remplacer l'instruction restore avec un autre ctx.clearRect(0, 0, can.width, can.height instruction, rien ne fonctionne. Je pensais que la restauration est restauration de l'effacé rectangle mais il semble que sa restauration de plus d'infos. Qu'est-ce que des infos supplémentaires qui en a besoin pour l'image suivante?

Je ne suis pas à la recherche pour le HTML5 manuel de définitions de Sauvegarder et de Restaurer mais je veux comprendre pourquoi elles sont nécessaires dans cet exemple précis.

Mise à JOUR

C'est frustrant d'obtenir une réponse où j'ai spécifiquement déjà mentionnées dans la question, je ne veux pas obtenir les définitions de la save() et restore(). Je sais déjà Save() enregistre l'état du contexte et Restor()e les restaure. Ma question est très spécifique. Pourquoi est-restore() utilisé dans la manière que dans l'exemple lorsque tous les Sauver n'est enregistré une toile vierge. Pourquoi est la restauration d'une toile vierge pas la même chose que de l'effacer?

Comme vous pouvez le noter, ma réponse ne résout uniquement l'incompréhension de l'importance de .save() et .restore(), mais décrit aussi exactement pourquoi ils ont utilisé .restore() pour ce qu'ils ont fait, et aussi, pourquoi leur explication de ce que leur code n'est erroné, car il ne correspond pas à ce que leur exemple est en train de faire (axe des x, par rapport à l'axe des y).

OriginalL'auteur Tony_Henrich | 2013-05-06