В вузе дали тему курсовой: Графический векторный редактор. Для реализации графики желательно использовать graphics.h и еще если понадобиться windows.h. Можно ли на данных библиотеках реализовать нужный функционал или же необходимо использовать что-нибудь по современнее.
В процессе написания возникли проблемы с некоторыми вещами:
1) Как реализовать редактируемые геометрические примитивы ( ломаная, прямоугольник, окружность, эллипс, отрезок, многоугольник, хотя бы просто понять как это реализовывается).
2) Как сделать кнопки открытия изображения и его сохранения.
3) Как сделать кнопки undo/redo.
4) В моем текущем коде рабочая область представляет собой фиксированную область внутри окна программы, то есть это просто залитый ( изначально белым цветом ) прямоугольник внутри окна.
Есть ли какие-нибудь книги которые смогут как-то направить меня или же помогут в написании подобного или посоветуйте что-нибудь если вы с чем-нибудь подобным сталкивались или просто готовы помочь. Буду благодарен каждому совету. Спасибо!
Ссылка на Google Drive архив с проектом
Для начала определитесь со структурой данных (это пункт 0), если по условию задачи вам не нужно генерировать настоящий векторный формат - сохраняйте любым, удобным для восстановления образом, в простой текстовый файл. Иначе - см. например тут
Есть несколько вариантов, самая очевидная идея - иметь массив (стек) history
, и делать push
сгенерированного вектора в этот массив при каждом действии. Кнопка "UNDO", соответственно, делает pop
, ложит полученное в стек redoHistory
, отображает на экран последний вектор из оставшегося в стеке. Кнопка "REDO" делает то же самое со стеком redoHistory
. При любом другом действии redoHistory
очищается. Другой вариант - правильный, древовидный и рекурсивный, но например в Windows, функция Undo так обычно не умеет.
Всё ок. Но если надо сильно по красоте и простоте, возьмите SDL или Allegro
гугл покажет массу книг на тему графики на C++, но вы можете просто читать исходники и статьи с кодом
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
помогите, пожалуйста, с сортировкой односвязного спискаесть структура студент, формат фамилия_имя_отчество_возраст_успеваемость
Решите пожалуйста 1)Дан двумерный массивПоменять местами вторую и четвертую строки 2)Все элементы массива, сумма индексов которых нечетна,...
Мне понадобился таймер который по истечению какого то времени вызывает событие, например std::functionВ Win32 API и в C# я очень часто использовал такие...