ВУЗ:
Составители:
Основы компьютерной графики для программистов 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
Страницы
- « первая
- ‹ предыдущая
- …
- 81
- 82
- 83
- 84
- 85
- …
- следующая ›
- последняя »