Jaki jest cel zniszczenia tego, co właśnie zrobiliśmy!
Nie jesteś jednak. Jeśli odrzucasz te słowa, brzmi to tak, jakby to się mogło wydarzyć, ale tak naprawdę nie jest.
myśleć o tym tak:
mieć szereg bardzo skomplikowanych tłumaczeń i obrotów, które mają zastosowanie w tym samym onDraw(Canvas)
rozmowy. Teraz, ponieważ każde tłumaczenie/obrót, które stosujesz, do Canvas
dzieje się w kolejności, będziesz musiał cofnąć ostatnie poprawki do Canvas
, lub jakoś obliczyć nowe korekty w oparciu o poprzednie przed rysowaniem tego, co chcesz narysować. To byłoby bardzo nieładne, bardzo szybko.
Używanie canvas.save()
i canvas.restore()
to absurdalnie prosty sposób na uproszczenie tego procesu.
Wykonując poprawki dotyczące Canvas
w bloku zapisu/przywracania, skutecznie izolujesz te korekty, aby cokolwiek chcesz narysować dalej, nie będzie miało wpływu na to, co rysujesz teraz.
Teraz trochę lepsze wyjaśnienie nazwami:
canvas.save()
mówi, że chcę, aby zapisać stan bieżącego Canvas
„s korekt tak, że mogę wrócić do niego później.
canvas.restore()
mówi, że chcę wrócić korekt moi Canvas
„s powrotem do ostatniej chwili zadzwoniłem cavas.save()
Piękno jest w swojej prostocie. Jeśli już narysowałeś to, co chciałeś narysować podczas bloku zapisu/przywracania i nie potrzebujesz już tych ustawień do następnego rysunku, użyj tego, wyrzuć te niepotrzebne poprawki i wróć do stanu, w którym chcesz rozpocząć następny rysunek od.
Mamy nadzieję, że pomoże to wyjaśnić!
Jeśli nie jesteś całkiem pewien, co mówią doktorzy, spróbuj trochę eksperymentować z tymi metodami i zobacz, co faktycznie robią: – pskink
powiązane: http: // stackoverflow.com/questions/3051981/why-do-we-use-canvas-save-or-canvas-restore – petey