Основы компьютерной графики для программистов. Казанцев А.В. - 83 стр.

UptoLike

Составители: 

Основы компьютерной графики для программистов 83
____________________________________________________________________________________________________________________
http://www.ksu.ru/persons/9134.ru.html
Глава 14. Пространственные геометрические
преобразования в OpenGL
Вершины объектов, а также матрицы преобразований в OpenGL используют
однородные координаты. То есть вершины объектов являются 4-х компонентными
векторами, а матрицы преобразований имеют размер 4х4.
На рис.47 показаны три объекта в пространстве: проволочная сфера, полый цилиндр
внутри нее и источник света. Пусть нам требуется поворачивать эти объекты
относительно центра сферы. Поворот будем
осуществлять с помощью мыши, нажатием
и перемещением указателя в нужном направлении.
Для перемещений в пространстве используется текущая матрица в режиме
GL_MODELVIEW. Эту матрицу можно сформировать непосредственно, но можно
воспользоваться функциями, задающими преобразования привычным для нас
способом. Одного и того же эффекта можно добиться перемещением объектов
относительно наблюдателя, а также перемещением наблюдателя относительно
объектов в пространстве. Поэтому важно правильно понимать действие функций
преобразования,
которые включают в себя функции переноса, поворота и
масштабирования.
Рассмотрим процедуру построения объектов
DrawScene, изображенных на рис. 47.
procedure TfrmGL.DrawScene;
begin
glMatrixMode(GL_MODELVIEW);
glLoadIdentity;
glTranslatef(0,0,-260);//задаем матрицу переноса
glRotatef(AngleX, 0.0, 1.0, 0.0); // поворот вокруг оси Y
glRotatef(AngleY, 1.0, 0.0, 0.0); // поворот вокруг оси X
DrawLight;
DrawCylinder;
DrawSphere;
end;
Рис. 277. Проволочная сфера, цилиндр внутри нее и источник света.
Основы компьютерной графики для программистов                                                                  83
____________________________________________________________________________________________________________________



Глава 14. Пространственные геометрические
преобразования в OpenGL
Вершины объектов, а также матрицы преобразований в OpenGL используют
однородные координаты. То есть вершины объектов являются 4-х компонентными
векторами, а матрицы преобразований имеют размер 4х4.
На рис.47 показаны три объекта в пространстве: проволочная сфера, полый цилиндр
внутри нее и источник света. Пусть нам требуется поворачивать эти объекты
относительно центра сферы. Поворот будем осуществлять с помощью мыши, нажатием
и перемещением указателя в нужном направлении.




                           Рис. 277. Проволочная сфера, цилиндр внутри нее и источник света.


Для перемещений в пространстве используется текущая матрица в режиме
GL_MODELVIEW. Эту матрицу можно сформировать непосредственно, но можно
воспользоваться функциями, задающими преобразования привычным для нас
способом. Одного и того же эффекта можно добиться перемещением объектов
относительно наблюдателя, а также перемещением наблюдателя относительно
объектов в пространстве. Поэтому важно правильно понимать действие функций
преобразования, которые включают в себя функции переноса, поворота и
масштабирования.
Рассмотрим процедуру построения объектов DrawScene, изображенных на рис. 47.


     procedure TfrmGL.DrawScene;
     begin
       glMatrixMode(GL_MODELVIEW);
       glLoadIdentity;
             glTranslatef(0,0,-260);//задаем матрицу переноса
             glRotatef(AngleX, 0.0, 1.0, 0.0); // поворот вокруг оси Y
             glRotatef(AngleY, 1.0, 0.0, 0.0); // поворот вокруг оси X
       DrawLight;
       DrawCylinder;
       DrawSphere;
      end;




http://www.ksu.ru/persons/9134.ru.html