Народный учебник по OpenGL


Урок 2. Отображение полигонов - часть 2


В нашем примере рисуем только один треугольник. Если есть желание изобразить еще один треугольник, добавьте часть кода, следующую за описанием первого треугольника. В это случае все шесть строк кода следует размещать между glBegin(GL_TRIANGLES) и glEnd(). Нет нужды выделять каждый треугольник этими командами, после обработки трех вершин OpenGL сам перейдет к созданию новой фигуры. Это же относится и к четырехугольникам. Полигоны (GL_POLYGONS) в свою очередь могут иметь любое количество вершин, и поэтому нет разницы, сколько описателей располагалось между строками glBegin(GL_POLYGONS) и glEnd().

Первая строка после glBegin описывает первую вершину нашего полигона. Функция glVertex3f() получает в качестве параметров ее X, Y и Z координаты. Первая вершина треугольника смещена только от оси Y на 1, таким образом, мы расположим ее точно в центре и она будет самой верхней. Следующая вершина будет располагаться на оси Х слева от центра и на оси Y вниз от центра. Эта вершина будет расположена внизу слева. Третья вершина будет справа и снизу от центра. Функция glEnd() указывает OpenGL, что вершин больше не будет. Результатом всего этого будет залитый цветом по умолчанию треугольник.

        glBegin(GL_TRIANGLES);

                

glVertex3f( 0.0f, 1.0f, 0.0f);  // Вверх

                

glVertex3f(-1.0f,-1.0f, 0.0f);  // Слева снизу

                

glVertex3f( 1.0f,-1.0f, 0.0f);  // Справа снизу

        

glEnd();


Теперь у нас есть треугольник, изображенный в правой части экрана. Нам нужно

переместиться в левую часть, для этого снова используем функцию glTranslate(). Так как

мы в прошлый раз перемещались влево на 1.5 единицы, необходимо переместиться на 3.0

единицы вправо (1.5 единицы – это будет центр, плюс еще 1.5 единицы для правого края).

        glTranslatef(3.0f,0.0f,0.0f);           // Сдвинем вправо на 3 единицы

Здесь мы изобразим квадрат. Так как он является четырехсторонним полигоном, мы будем использовать GL_QUADS. Создание квадрата напоминает создание треугольника, правда указывать нужно четыре вершины. Они будут идти в следующем порядке – левая вверху, правая вверху, правая снизу и левая снизу.




Начало  Назад  Вперед



Книжный магазин