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


Урок 4. Вращение полигонов - часть 4


Эта секция кода завершение предыдущей. Рисуем синий квадрат из одного четырехугольника. Квадрат будет справа на экране и там же будет вращаться.

        glColor3f(0.5f,0.5f,1.0f);              // Синий цвет

        

glBegin(GL_QUADS);                      // Начнем

                

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

                

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

                

glVertex3f( 1.0f,-1.0f, 0.0f);  // Низ право

                

glVertex3f(-1.0f,-1.0f, 0.0f);  // Низ лево

        

glEnd();                                // Окончим

Следующие две строки новые. Думайте о rtri и rquad как о контейнерах. Вначале нашей программы мы сделали контейнеры (GLfloat rtri и GLfloat rquad). Когда мы построили контейнеры они были пусты. В первой строке ниже ДОБАВЛЯЕМ 0.2 в контейнер. Если мы проверим значение контейнера rtri после этой секции кода, мы увидим что оно увеличилось на 0.2. Контейнер rquad уменьшиться на 0.15. Если мы проверим значение контейнера rquad после этой секции кода, мы увидим что оно уменьшилось на 0.15. Отрицательные значения вращения приводят к тому, что объект вращается в противоположную сторону. Как если бы значения были положительные.

Попробуйте изменить + на - в строке ниже и объект будет вращаться в другом направлении. Попробуйте изменить значение с 0.2 до 1.0. С увеличением значения объект будет вращаться быстрее. С уменьшением значения будет вращаться медленее.

        rtri+=0.2f;             // Увеличение переменной вращения для треугольника

        

rquad-=0.15f;           // Уменьшение переменной вращения для квадрата

}

В этом уроке я попробывал рассказать как можно детальнее о том как вращаются объекты вокруг осей. Поиграйте с этим кодом, попробуйте вращать объекты по оси Z, X & Y, или по всем трем ;). Если у Вас есть комментарии или вопросы пожалуйста вышлите мне письмо. Если Вы нашли ошибки или улучшения дайте мне об этом знать. Я хочу сделать уроки по OpenGL хорошими насколько смогу. Я заинтересован в обратной связи.

© Jeff Molofee (NeHe)

PMG

 21 сентября 2001 (c) 

Сергей Анисимов

d=document;rn=Math.random(); y="

"; d.write(y);

SpyLog




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



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