Форум программистов, компьютерный форум CyberForum.ru

Возможность UNDO в графических обработках? - C++

Восстановить пароль Регистрация
 
koriun
1 / 1 / 0
Регистрация: 19.12.2007
Сообщений: 199
14.12.2009, 16:49     Возможность UNDO в графических обработках? #1
Privet vsem.

kak mozhno realizovat UNDO vo vremya graficheskix obrabotki??
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alexander_bell
0 / 0 / 0
Регистрация: 24.12.2009
Сообщений: 3
24.12.2009, 09:43     Возможность UNDO в графических обработках? #2
Всё зависит от того, как организована твоя программа.
Например, если ты хранишь все графические объекты для отрисовки в каком-то отдельном репозитарии а во время отрисовки их показываешь в соотвествии с теми или иными правилами на экран, то нет никакой проблемы с добавлением UNDO в твою программу.
Я например заводил абстрактный тип и наследовал от него показываемые объекты и/или какие либо действия (типа заливки и перемещения, а также массивы с действиями - последнее для того, чтобы отменять действия от одного нажатия мышки до другого), затем складывал указатели на эти объекты в массив (он был ограниченного размера, например 20 последних действий).
А дальше кому как нравится.
Мне когда требовалось откатиться на одно или несколько действий я проверял, что я делал последним и удалял из репозитория те действия и объекты которые соответствовали 'откатываемым' объектам в массиве с действиями.
Garb
0 / 0 / 0
Регистрация: 31.08.2009
Сообщений: 34
24.12.2009, 13:41     Возможность UNDO в графических обработках? #3
купи книгу:
http://citforum.ints.net/book/ooprpattern/ooprpattern_c.shtml

там в оглавлении параграф:

2.7. Операции пользователя
Инкапсуляция запроса
Класс Command и его подклассы
Отмена операций
История команд
Паттерн команда

У меня есть эта книга. Это то что тебе нужно
alexander_bell
0 / 0 / 0
Регистрация: 24.12.2009
Сообщений: 3
27.12.2009, 06:38     Возможность UNDO в графических обработках? #4
Да, книга полезная. Я себе такую купил, только лучше конечно такую книгу в магазине поискать и для начала бегло посмотреть на предлагаемое решение - подходит ли. К тому же в обычном магазине (а не интернет магазине) эта книга будет стоить, скорее всего, дешевле. К примеру я 18.10.2003 её купил в Томске в магазине за 162 рубля, а в то же время 20.10.2003 в электронном магазине Мистраль (я так полагаю это в Москве) эта книга стоит 220 рублей.
Не боясь повториться скажу, что книга действительно ценная, не зависимо от того, пригодится ли она тебе при решении именно этой задачи. Вобщем покупай книгу
koriun
1 / 1 / 0
Регистрация: 19.12.2007
Сообщений: 199
27.12.2009, 13:06  [ТС]     Возможность UNDO в графических обработках? #5
Sposibo za otveti

u menya takoj vopros

esli derzhat vse operacii(actions) otdellno i kazhdi ras pererisovat/postroit konechni kartinu to eto budet medlenno

a esli kazhdi ismenenie vnesti v bitmap to kak vostanavit imea tolko inormacia o sposove izmennii?
alexander_bell
0 / 0 / 0
Регистрация: 24.12.2009
Сообщений: 3
28.12.2009, 07:58     Возможность UNDO в графических обработках? #6
Хммм... вопрос не совсем внятный, но можно попытаться ответить.

Информация об изменениях - это и есть список всех операций. Иначе я не могу понять чем они отличаются.

Скорее всего если выводить при перерисовке все операции сразу на экран, то будет медленно, а если создать back-буффер (по размеру с экран или отрисовываемую часть окна) и рисовать в него, а потом после отрисовки в него осуществлять blit на экран, то должно получиться очень даже быстро.

Ещё для достижения скорости и особенно если очень много перекрывающихся объектов их можно обрабатывать так, чтобы невидимые объекты не отрисовывались вообще, а частично видимые рисовались не полностью.
Yandex
Объявления
28.12.2009, 07:58     Возможность UNDO в графических обработках?
Ответ Создать тему
Опции темы

Текущее время: 19:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru