Читаем Введение в OpenGL полностью

 glEnable(GL_COLOR_MATERIAL);

 glColorMaterial(GL_FRONT_AND_BACK,GL_DIFFUSE);

 //--Создания указателя на quadric-объект для построения колец---------//

 QuadrObj=gluNewQuadric();

 //--Определение свойств текстуры--------------------------------------//

 TextureInit();

 //--Задание перспективной проекции------------------------------------//

 glMatrixMode(GL_PROJECTION);

 gluPerspective(89.0,1.0,0.5,100.0);

 //--Далее будет проводиться только преобразование объектов сцены------//

 glMatrixMode(GL_MODELVIEW);

}

void DrawFigures(void) {

 //--Включение режима нанесения текстуры-------------------------------//

 glEnable(GL_TEXTURE_2D);

 //--Задаем цвет диффузного отражения для колец------------------------//

 glColor3fv(mat_diff1);

 //--Чтобы не проводить перемножение с предыдущей матрицей загружаем единичную матрицу//

 glLoadIdentity();

 //--Определяем точку наблюдения---------------------------------------//

 gluLookAt(0.0, 0.0, 2.5,0.0, 0.0, 0.0, 0.0, 1.0, 0.0);

 //--Сохраняем видовую матрицу, так как дальше будет проводиться поворот колец//

 glPushMatrix();

 //--Производим несколько поворотов на новый угол (это быстрее,--------//

 //--чем умножать предыдущую видовую матрицу на матрицу поворота с-----//

 //--фиксированным углом поворота)-------------------------------------//

 glRotatef (-CurAng,1,1,0);

 glRotatef (CurAng,1,0,0);

 //--Для рисования колец каждое из них надо преобразовать отдельно,----//

 //--поэтому сначала сохраняем видовую матрицу, затем восстанавливаем--//

 glPushMatrix();

 glTranslatef (0,0,-RingHeight/2);

 DrawRing();

 glPopMatrix();

 glPushMatrix();

 glTranslatef (0,RingHeight/2,0);

 glRotatef (90,1,0,0);

 DrawRing();

 glPopMatrix();

 glPushMatrix();

 glTranslatef (-RingHeight/2,0,0);

 glRotatef (90,0,1,0);

 DrawRing();

 glPopMatrix();

 //--Восстанавливаем матрицу для поворотов тетраэдра--------------------//

 glPopMatrix();

 //--Выключаем режим наложения текстуры--------------------------------//

 glDisable(GL_TEXTURE_2D);

 //--Проводим повороты-------------------------------------------------//

 glRotatef(CurAng,1,0,0);

 glRotatef(CurAng/2,1,0,1);

 //--Чтобы тетраэдр вращался вокруг центра, его надо сдвинуть вниз по оси oz//

 glTranslatef(0,-0.33,0);

 //--Задаем цвет диффузного отражения для тетраэдра--------------------//

 glColor3fv(mat_diff2);

 //--Проводим построение тетраэдра-------------------------------------//

 glCallList(TETR_LIST);

}

void Display(void) {

 //--Инициализация (очистка) текущего буфера кадра и глубины-----------//

 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных