Vous créez un programme de dessin comme Paint. Vous voulez pouvoir annuler/refaire des coups de pinceau. Comment appliqueriez-vous cela?Comment implémenteriez-vous Annuler dans un programme de dessin raster?
Optimisez la vitesse et la mémoire.
Vous créez un programme de dessin comme Paint. Vous voulez pouvoir annuler/refaire des coups de pinceau. Comment appliqueriez-vous cela?Comment implémenteriez-vous Annuler dans un programme de dessin raster?
Optimisez la vitesse et la mémoire.
Créez une copie de sauvegarde du canevas. Choisissez un patch rectangulaire qui entoure complètement le coup de pinceau. Enregistrez l'image bitmap contenue dans ce correctif dans la nouvelle version et dans la sauvegarde. Vous pouvez maintenant masquer ces modifications pour annuler ou rétablir le trait.
Peut utiliser beaucoup de mémoire.
Rompre un long coup en une série de coups courts devrait faire beaucoup pour réduire la mémoire nécessaire. Pensez à dessiner une forme de «U» et à utiliser un ensemble de boîtes en suivant le tracé en U par rapport à une boîte englobant tout le «U». – MadCoder
Utilisez un quadtree pour enregistrer l'état précédent de la partie du canevas modifiée. Lors d'une annulation, remplacez l'état du canevas par le quadtree.
est-ce pour les devoirs? – SingleNegationElimination
Non. Simplement le crowd-sourcing pour les idées. Je pose ma réponse. D'autres idées? –