g1Begin(GL_LINE_STRIP);

for(GLfloat x = -4.0: x < 4.0: x +- 0.1) // draw the plot // рисуем график

glVertex2f(x. sin(3.14159 * x) / (3.14159 * x)):

glEndO:

glFlushO;

}

Пример 3.2.3. Рисование ломаных линий из файла В главе 2 мы нарисовали динозавра, изображенного на рис. 3.7, с помощью стандартной подпрограммы drawPolylineFileC"dino.dat") из листинга 2.9. Данные о ломаных линиях, необходимые для этого рисун3.2. Мировые окна и порты просмотра ка, хранились в файле "dino.dat". Мировое окно и порт просмотра в эту подпрограмму еще не вводились, так что мы принимали ряд вещей на веру или по умолчанию, но, к счастью, все же получили рисунок динозавра.

Теперь мы можем понять, почему все сработало. Использованное нами мировое окно охватывало все данные по динозавру (см. практическое упражнение 2.4). Все ломаные в dino.dat располагались внутри прямоугольника с углами (0,0) и (640,480), так что при таком выборе окна отсекать было нечего.

Вооружившись средствами для установки окна и порта просмотра, мы можем лучше контролировать ситуацию. Следующие два примера являются чисто иллюстративными.

Френсис Хилл

Рис. 3.7. Динозавр внутри своего мирового окна Пример 3.2.4. Покрытие экранного окна мозаикой из динозавров Чтобы сделать экран немного интереснее, можно украсить его копиями динозавра в виде некоторого узора. Укладывание вплотную множества копий одного и того же рисунка с целью заполнения всего экранного окна называется мозаичным покрытием (tiling) этого окна. Изображение, которое копируется в разных положениях, называется мотивом (motif)- Мозаичное покрытие экранного окна легко осуществить, если использовать индивидуальный порт просмотра для каждого экземпляра аппликации. На рис. 3.8, а показано мозаичное покрытие, использующее 25 копий мотива. Эта мозаика была выполнена с помощью следующего кода:

setWindow(0. 640.0. 0. 440.0): // set a fixed window // задаем постоянное окно forCint i=0: i < 5: i++) // for each column // для каждого столбца

forCint j-0: j < 5: // for each row // для каждой строки


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