Режимы ввода информации и взаимодействия с пользователем, которые мы обсуждали на страницах этой книги, основываются на стандартах, реализованных в GKS [ANSI85] и PHIGS [ANSI88J. Эти стандарты разрабатывались как универсальные, т.е. пригодные и для векторных, и для растровых дисплеев, а потому в них не учитывались уникальные возможности растровых графических систем (см. [Р\к84, Gol83J).

Хотя при изложении материала в этой главе мы опирались на инструментальную библиотеку GLUT [Kil94,b], программисты на практике используют и непосредственный доступ к операционной системе X Window, и различные версии других инструментальных библиотек, позволяющих работать как с X Window [Kil94,a, OSF89], так и с Microsoft Windows. Интерес представляет и использование при разработке пользовательского интерфейса в OpenGL-программах языков написания сценариев, таких как tel/tk [Ous94].

Упражнения

3.1. Объясните, в чем суть проблем, с которыми сталкивается программист при определении штриховых шрифтов. Разработайте простую структуру данных, которая позволила бы определить набор символов штрихового шрифта, оградившись только отрезками прямых.

3.2. Разработайте новую версию программы отображения узора Серпинского из главы 2, в которой щелчок левой кнопкой мыши запускал бы процесс формирования точек узора на экране, щелчок правой кнопкой мыши останавливал бы процесс формирования новых точек, а щелчок средней кнопкой прекращал выполнение приложения и закрывал его окно. Включите в программу обработку события изменения размеров окна приложения.

3.3. Разработайте линейный регулятор, который позволял бы пользователю задавать цвет вычерчивания фигур в программе рисования. С помощью этого интерфейса пользователь сможет сначала визуально оценить новый цвет, а уже затем назначить его для формирования очередных фигур.

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


⇐ Предыдущая| |Следующая ⇒