Новичок в OpenGL, работаю над программой рисования

В этом семестре я прохожу курс компьютерной графики в колледже, и наше первое задание — создать программу, которая работает так же, как Microsoft Paint. Нам нужно установить параметры рисования с фигурами разных цветов, размеров и параметров прозрачности.

У меня возникли проблемы с поиском информации о том, как запрограммировать возможность рисования заданной формы при перетаскивании мышью. Я не прошу решения в коде, а подсказываю, где изучить функции, которые могут это сделать.

Я совершенно новичок в OpenGL (но не в C++), и у меня есть «Компьютерная графика с OpenGL», 4-е изд. от Хирн и Бейкер. Ни одна из тем не предлагает эту возможность.


person Nibirue    schedule 24.01.2012    source источник
comment
Рисование, как при размещении различных фигур в определенном месте с помощью мыши? Или как при использовании различных форм в качестве кистей, возможно, создавая следы?   -  person Bart    schedule 24.01.2012
comment
Использование различных форм в качестве кистей, оставляющих следы.   -  person Nibirue    schedule 24.01.2012
comment
Вы можете использовать кросс-платформенную библиотеку (скажем, GLUT) для получения событий мыши в вашем окне, а затем добавлять новые фигуры через фиксированные интервалы, когда кнопка мыши нажата в определенном месте. Не самое эффективное решение, но первое, что пришло мне в голову, и не такое уродливое, если только у вас не огромное количество фигур на экране.   -  person Pietro Lorefice    schedule 24.01.2012
comment
Используете OpenGL для рисования 2D-объектов? Я знаю, что это возможно и может быть хорошей идеей, но не было бы более простого решения вместо изучения OpenGL? OpenGL может быть очень сложным, и большая часть вещей не поможет тому, что вы здесь делаете.   -  person TheAmateurProgrammer    schedule 26.01.2012
comment
Я не могу достаточно проголосовать за комментарий @TheAmateurProgrammer.   -  person user4581301    schedule 11.03.2016


Ответы (1)


Вас, вероятно, просят создать одно буферизованное окно или переключиться на рисование в переднем буфере и отрисовывать некоторую фигуру в месте расположения указателей мыши при нажатии (и перетаскивании) кнопки без очистки переднего буфера между ними. Для дополнительной надежности рисуйте текстуру, прикрепленную к объекту кадрового буфера, чтобы перетаскивание какого-либо окна не мешало рисунку пользователя.

Ключевые слова: Установите Viewport на размер окна. Ортопроекция на границы окна, не используйте glClear (кроме сброса картинки).

person datenwolf    schedule 24.01.2012