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


Урок 4. Вращение полигонов


Rotation



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

Мы будем использовать код из последнего урока, добавляя новые строчки кода. Я перепишу целую секцию кода ниже, чтобы вы могли понять, что добавлено, а что заменено.

Вначале мы добавим две переменные для хранения угла вращения каждого объекта. Мы сделаем это вначале программы. Посмотрите ниже, я добавил две строки после объявления переменной BOOL keys[256]. В этих строках объявляются две переменные с плавающей запятой, которые мы можем использовать для очень точного поворота объектов. Числа с плавающей запятой учитывают значения меньше единицы. Вместо использования 1, 2, 3 для угла, мы можем использовать 1.1, 1.7, 2.3 или даже 1.015 для точности. Вы увидете, что числа с плавающей запятой неотемлимая часть программирования на OpenGL.

#include <windows.h>      // Заголовочный файл для Windows

#include <gl\gl.h>        // Заголовочный файл для OpenGL32 библиотеки

#include <gl\glu.h>       // Заголовочный файл для GLu32 библиотеки

#include <gl\glaux.h>     // Заголовочный файл для GLaux библиотеки


static HGLRC hRC;       // Постоянный контекст рендеринга

static HDC hDC;         // Приватный контекст устройства GDI


BOOL    keys[256];      // Массив для процедуры обработки клавиатуры


GLfloat rtri;           // Угол для треугольник

GLfloat rquad;          // Угол для четырехугольника

Необходимо модифицировать код в DrawGLScene(). Я буду переписывать всю процедуру. Это будет сделать легко для Вас, так как Вы увидите какие изменения я сделал. Я объясню почему некоторые строки были модифицированы, и какие линии добавлены. Следующая секция кода, такая же как в последнем уроке.

GLvoid DrawGLScene(GLvoid)

{

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);     // Очистка экрана

                                                        

//      и буфера глубины

glLoadIdentity();                                       // Сброс просмотра




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



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