Важность перечисленных функциональных возможностей графической программы и сложность их реализации на практике нельзя недооценивать. Тема взаимодействия человека с машиной (HCI- human-computer interaction)- одна из тех, которые привлекают внимание множества исследователей во всем мире, и ее нельзя изложить на нескольких страницах. В данной книге нас в этой теме больше всего будет интересовать "компьютерная" сторона, которая обеспечивает формирование графического изображения в такой комплексной системе. Но есть несколько вопросов, общих для компьютерной графики и теории человеко-машинных систем, которые нужно учитывать при разработке интерактивных программ.

3.10.1. Инструментальные средства, экранные элементы управления и буфер кадра В рассмотренной выше программе рисования мы использовали графические средства интерфейса, в частности всплывающие меню, которые поддерживаются библиотекой GLUT, и графические кнопки, которые разработали самостоятельно. Спектр экранных элементов интерфейса, доступных в современных программах, значительно шире. Он включает и различные линейные регуляторы, шкалы, "горячие" области экрана, звук, пиктограммы и т.п. Обычно прикладной программист рассматривает эти элементы как стандартные и рассчитывает в

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

Ниже на двух примерах будет показано, что использование графических построений на геометрическом уровне недостаточно эффективно при работе с элементами экранного интерфейса. Гораздо эффективнее в этом случае работать напрямую с буфером кадра. Сначала рассмотрим, как выполняются операции построения всплывающего меню. При обращении к функции работы с меню на экране должно появиться его изображение, причем примерно в том месте, где находится указатель мыши в момент, когда пользователь щелкнул соответствующей кнопкой. После того как будет выбран один из пунктов меню, его изображение должно исчезнуть с экрана, а на его месте восстановлены ранее вычерченные объекты. Если использовать только операции геометрических построений, описанные ранее, выполнить такую операцию быстро не удастся. Наиболее целесообразно запомнить изображение, "перекрытое" меню, а затем, после завершения работы с меню, вернуть его на экран. Таким образом, нам придется работать на уровне пикселей поля экрана, а не геометрических объектов и, следовательно, иметь дело с буфером кадра. При этом интенсивно используются операции пересылки битового блока памяти (операции группы Ы{Ы1).


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