Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
koriun
1 / 1 / 0
Регистрация: 19.12.2007
Сообщений: 199
#1

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

14.12.2009, 16:49. Просмотров 660. Ответов 5
Метки нет (Все метки)

Privet vsem.

kak mozhno realizovat UNDO vo vremya graficheskix obrabotki??
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2009, 16:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Возможность UNDO в графических обработках? (C++):

Создание графических приложений на C++ - C++
Здраствуйте! Хочу немного разобратся в том, что мне нужно, чтоб писать графические, желательно кросплатформенные приложения на C++: ...

Передвижение графических объектов - C++
Перемещать треугольник по диагонали с заданным шагом и задержкой в полторы секунды

отображение графических примитивов - C++
не подскажите как нарисовать круг, треугольник и домик. Ищу в интернете не как не могу найти(

Преобразование графических изображений - C++
преобразование графических изображений. пусть в файле заданы пронумерованные координаты вершин плоской фигуры в двумерной декартовой...

Чтение графических файлов - C++
Здравствуйте уважаемые участники форума. Есть задание для курсового проекта, связанная с программированием C++. Приведу небольшой...

Обработка и сортировка графических файлов - C++
Создать программу для обработки и сортировки графических файлов_) Может есть какие мысли??

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

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

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

У меня есть эта книга. Это то что тебе нужно
0
alexander_bell
0 / 0 / 0
Регистрация: 24.12.2009
Сообщений: 3
27.12.2009, 06:38 #4
Да, книга полезная. Я себе такую купил, только лучше конечно такую книгу в магазине поискать и для начала бегло посмотреть на предлагаемое решение - подходит ли. К тому же в обычном магазине (а не интернет магазине) эта книга будет стоить, скорее всего, дешевле. К примеру я 18.10.2003 её купил в Томске в магазине за 162 рубля, а в то же время 20.10.2003 в электронном магазине Мистраль (я так полагаю это в Москве) эта книга стоит 220 рублей.
Не боясь повториться скажу, что книга действительно ценная, не зависимо от того, пригодится ли она тебе при решении именно этой задачи. Вобщем покупай книгу
0
koriun
1 / 1 / 0
Регистрация: 19.12.2007
Сообщений: 199
27.12.2009, 13:06  [ТС] #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?
0
alexander_bell
0 / 0 / 0
Регистрация: 24.12.2009
Сообщений: 3
28.12.2009, 07:58 #6
Хммм... вопрос не совсем внятный, но можно попытаться ответить.

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

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

Ещё для достижения скорости и особенно если очень много перекрывающихся объектов их можно обрабатывать так, чтобы невидимые объекты не отрисовывались вообще, а частично видимые рисовались не полностью.
0
28.12.2009, 07:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.12.2009, 07:58
Привет! Вот еще темы с ответами:

Множественное наследование графических фигур - C++
ВОТ Я ЗАКИНУЛ ЗАДАНИЕ У МЕНЯ ПО ВАРИАНТУ РОМБ...КТО МОЖЕТ ПОМОЧЬ!!! БЫЛ БЫ ОЧЕНЬ РАД... Я ЩАС И БЕЗ ЭТОГО 2 КУРСАЧА И 9 ЛАБ ДЕЛАЮ,...

Программирование с использованием графических средств. - C++
Разработать программу расчета и вывода на экран графика функции y=f(x). График функции вывести в графическом окне. Графическое окно...

Передвижение графических объектов на языке С++ - C++
Здравствуйте. Помогите пожалуйста создать программу для решения задачи перемещения круга, вписанного в прямоугольник, по диагонали с...

Возможность undo - VBA
Доброе время суток. Есть таблица эксель с макросами. Можно ли добавить в макрос возможность отмены проведеных действий именно макросом?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru