Курсовая работа: Модель трехмерной сцены и библиотека OpenGL
}
i=0;
q++;
}
- Цилиндрический элемент стойки
Этот элемент стойки вентилятора состоит из цилиндров и кругов (крышки для цилиндров). Все они вызываются с помощью функции OpenGL – glCallList. Большая часть кода элементов вентилятора считывается программой лишь однажды, в СallLists, а вызов уже происходит неоднократно, по мере необходимости, в функции RenderGLScene(). Этот способ наиболее эффективен как для скорости работы программы, так и для редактирования готового кода программы, благодаря чему одинаковые примитивы (цилиндр, круг, квадрат, линии и т.д.) было легко использовать вызовом CallList и, применяя элементарные преобразования – поворот, перемещение, масштабирование объектов, видоизменять необходимым образом для получения данных элементов тела. Элементы цилиндр и круг были описаны выше, поэтому не будем повторяться. |
- Ножка стойки
Этот элемент тела строится через функцию CallList, в которой задан квадрат, вызываемый 4 раза и масштабированный по разным координатам по разному. |
Фрагмент кода программы ножек стойки вентилятора
//--- Квадрат
square=basis_leg+1;
glNewList(square,GL_COMPILE);
glBindTexture(GL_TEXTURE_2D,texture1);
glBegin(GL_QUADS);
glNormal3f(1,0,0);
glTexCoord2d(0,0);
glVertex3f(1,-1,-1);
glTexCoord2d(1,0);
glVertex3f(1,1,-1);
glTexCoord2d(1,1);
glVertex3f(1,1,1);
glTexCoord2d(0,1);
glVertex3f(1,-1,1);
glEnd();
glEndList();
//--- Ножкавентилятора
leg=square+1;
glNewList(leg,GL_COMPILE);
glCallList(square);