Функция glFlush() обеспечивает вывод формируемых точек на экран сразу же по окончании вычислений их координат. Если не обращаться к этой функции, точки все равно появятся на экране, но при этом будет ощутима задержка вывода, особенно при наличии сетевого окружения. Эту программу в таком виде еще нельзя считать завершенной. На рис. 2.4 показано, как будет выглядеть сформированный ею узор.

Нам осталось разобраться с некоторыми нюансами формируемого узора и, соответственно, программы:

Как задать цвет узора?

В какой части экрана появится изображение?

Как управлять размером изображения?

Как выделить область экрана - видовое окно - для формируемого изображения?

2.1. Узор Серпинского

Какая часть нашего "бесконечного" планшета появится на экране?

Как долго созданное изображение будет оставаться на экране?

Хотя получить ответы на перечисленные вопросы и весьма важно, на первый взгляд кажется, что они стоят как-то в стороне от рассматриваемых сейчас базовых концепций. Как вы увидите далее, основной текст тех фрагментов программы, которые мы разработаем в процессе поиска ответов на эти вопросы, практически без изменений войдет и в другие программы формирования изображений. Следовательно, затратив сейчас некоторое время на поиск ответов, мы будем вознаграждены в дальнейшем.

2.1.2. Системы координат

Сейчас вы скорее всего гадаете, каким образом можно интерпретировать сформированные программой значения координат- переменных х, у и z- в спецификации вершин. В каких линейных единицах они выражены - футах, метрах, микронах? Где находится точка отсчета, от которой откладываются соответствующие смещения вдоль осей? В любом случае простейший ответ будет таков - все зависит от программиста, т.е. от вас.

При работе с ранними системами компьютерной графики требовалось, чтобы в прикладной программе вся геометрическая информация задавалась в терминах системы координат экрана используемого устройства отображения3. Если бы такой способ описания распространялся и на современные прикладные программы высокого уровня, нам пришлось бы говорить о точках в терминах пикселей экрана или сантиметров от угла экрана. Но этот метод кажется совершенно абсурдным для описания изображений, в которых расстояния измеряются в световых годах (при отображении данных, с которыми имеет дело астрономия), или таких, где расстояния измеряются микронами (при выводе изображений топологии интегральных микросхем). Одно из достоинств современных графических программ - возможность использования в них любых единиц измерения, которые сочтет необходимым выбрать пользователь, руководствуясь только спецификой решаемой задачи. Концепция графики, инвариантной к устройствам (device-independent graphics), освободила прикладных программистов от необходимости учета деталей конструкции устройств ввода-вывода графической информации. По отношению к применяемой пользователем системе координат используется термин мировая система координат (world coordinate system) или прикладная система координат (problem coordinate system). Пользователь может использовать любой диапазон значений координат, причем единственным (и очень незначительным) ограничением является диапазон представления вещественных чисел в современных компьютерах в формате с плавающей точкой.


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