2.3. На самом нижнем уровне обработки мы манипулируем с битами в буфере кадра. В составе OpenGL имеются команды работы с пикселями, позволяющие напрямую обращаться к буферу кадра. Вы можете поэкспериментировать с простыми растро-

Графическое программирование

выми алгоритмами формирования отрезков или окружностей, используя в качестве базовой OpenGL-функцию glPoint( ). Разработайте библиотеку подобных функций формирования примитивов, которая позволит создать буфер кадра в памяти. Ядро такой библиотеки должны составить функции WritePixel() и ReadPixel(). В составе библиотеки также должны быть функции заполнения и отображения буфера кадра и запуска программы пользователя, которая будет записывать и считывать коды засветки отдельных пикселей.

2.4. " Черепашья " графика (turtle graphics) - это метод построения штриховых изображений, альтернативный позиционному. В основе этого метода лежит идея воспроизведения следа черепахи, ползущей по экрану с закрепленным в ее центре пером (перо способно подниматься и опускаться). Текущее состояние черепахи описывается триадой (х,у, в)- положением центра и углом ориентации. В типовом API, поддерживающем такой режим, есть следующие функции: init(x,y,theta); /* Установка положения и ориентации черепахи */ forward(distance);

right(angle) ; left(angle); pen(up_down);

Реализуйте библиотеку функций черепашьей графики на базе OpenGL.

2.5. Используя библиотеку, разработанную при выполнении предыдущего упражнения, напишите программу построения узора Серпинского и фрактального изображения горы (алгоритмы построения такого изображения рассматриваются в упр. 2.1 и 2.2).

2.6. Уже не одно столетие математиков интересуют свойства и методы построения кривых заполнения пространства (space-filling curves). В пределе такие кривые бесконечны, но, во-первых, пространство заполнения ограничено конечным прямоугольником, а во-вторых, кривая не должна быть самопересекающейся. Многие из таких кривых могут быть сгенерированы с помощью итеративной процедуры. Рассмотрите "правило", представленное на рис. 2.40, которое заменяет одиночный отрезок четырьмя более короткими. Разработайте программу, которая начинает работу с треугольника, а затем итерационно применяет сформулированное правило замены ко всем отрезкам. Объект, который сформирует подобная программа, называется снежинкой Коха (Koch snowßake). Другие типы кривых заполнения пространства описаны в книгах [НИ90, Ваг93].


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