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

UptoLike

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

Основы компьютерной графики для программистов 84
____________________________________________________________________________________________________________________
http://www.ksu.ru/persons/9134.ru.html
После установления текущей единичной матрицы видового преобразования
GL_MODELVIEW следуют три функции, которые задают расположение и текущий угол
поворота сферы, цилиндра и источника света относительно центра сферы.
Последующие команды
DrawLight,DrawCylinder и DrawSphere создают источник света,
цилиндр и сферу, к которым автоматически применяется матрица видового
преобразования.
Как было замечено выше, последовательность функций преобразования координат
можно рассматривать применительно как к вершинам трехмерных объектов, так и к
системе координат наблюдателя. Это может привести к некоторой путанице. К
сожалению, в литературе и документации по OpenGL объяснение действия
функций
преобразования координат явно недостаточное, так что изучающие вынуждены
приходить к пониманию с помощью многочисленных проб и экспериментов.
Попытаемся составить понятную картину происходящего. Для этого не будем
углубляться в какие-либо математические выкладки на языке матриц и векторов.
Укажем лишь фактический алгоритм, которым руководствуется система OpenGL.
Во-первых, необходимо указать на то
, что после установления режима
GL_MODELVIEW мы будем иметь дело не с одной только матрицей видового
преобразования. В реальности мы всегда имеем взаимодействие двух систем
координат. Одна из них
мировая система координатописывает расположение всех
объектов в пространстве, в том числе и точку расположения, и ориентацию системы
координат наблюдателя. Вторая из нихсистема координат наблюдателя или
видовая
система координат. По умолчанию начала этих систем координат совпадают.
Совпадают также их оси
x и y. Однако оси z этих систем координат не совпадают по
направлению.
Мировая система координат
традиционно является
правосторонней, а видовая
система координат
левосторонней. Такое
расположение осей систем
координат связано с
интуитивным и привычным
представлением об их
расположении. Например,
начало видовой системы
координат расположено в
центре экрана монитора, ось
x
направлена слева направо,
ось
y снизу вверх, а ось z
перпендикулярно экрану в
направлении от пользователя
к монитору. Это дает
левостороннюю систему.
Однако при изображении объектов в трехмерном пространстве удобнее рисовать и
представлять систему координат как правостороннюю. Как раз то же самое, что и в
мировой системе координат.
Далее приводятся два правила, которыми следует руководствоваться для мысленного
представления результата действия
функций геометрических преобразований OpenGL.
В начале рассмотрим случай, когда считаем, что функции преобразований
применяются к координатам вершин трехмерных объектов. В этом случае взаимное
Рис. 28. Расположение видовой (слева) и мировой (справа)
систем координат. Мировая система координат смещена
вправо относительно своего первоначального положения.
Основы компьютерной графики для программистов                                                                  84
____________________________________________________________________________________________________________________



После установления текущей единичной матрицы видового преобразования
GL_MODELVIEW следуют три функции, которые задают расположение и текущий угол
поворота сферы, цилиндра и источника света относительно центра сферы.
Последующие команды DrawLight,DrawCylinder и DrawSphere создают источник света,
цилиндр и сферу, к которым автоматически применяется матрица видового
преобразования.
Как было замечено выше, последовательность функций преобразования координат
можно рассматривать применительно как к вершинам трехмерных объектов, так и к
системе координат наблюдателя. Это может привести к некоторой путанице. К
сожалению, в литературе и документации по OpenGL объяснение действия функций
преобразования координат явно недостаточное, так что изучающие вынуждены
приходить к пониманию с помощью многочисленных проб и экспериментов.
Попытаемся составить понятную картину происходящего. Для этого не будем
углубляться в какие-либо математические выкладки на языке матриц и векторов.
Укажем лишь фактический алгоритм, которым руководствуется система OpenGL.
Во-первых, необходимо указать на то, что после установления режима
GL_MODELVIEW мы будем иметь дело не с одной только матрицей видового
преобразования. В реальности мы всегда имеем взаимодействие двух систем
координат. Одна из них – мировая система координат – описывает расположение всех
объектов в пространстве, в том числе и точку расположения, и ориентацию системы
координат наблюдателя. Вторая из них – система координат наблюдателя или видовая
система координат. По умолчанию начала этих систем координат совпадают.
Совпадают также их оси x и y. Однако оси z этих систем координат не совпадают по
направлению.
Мировая система координат
традиционно          является
правосторонней, а видовая
система            координат
левосторонней.          Такое
расположение осей систем
координат      связано      с
интуитивным и привычным
представлением      об     их
расположении.     Например,
начало видовой системы
координат расположено в
центре экрана монитора, ось x
направлена слева направо,
ось y снизу вверх, а ось z – Рис. 28. Расположение видовой (слева) и мировой (справа)
перпендикулярно экрану в       систем координат. Мировая система координат смещена
направлении от пользователя вправо относительно своего первоначального положения.
к   монитору.    Это     дает
левостороннюю        систему.
Однако при изображении объектов в трехмерном пространстве удобнее рисовать и
представлять систему координат как правостороннюю. Как раз то же самое, что и в
мировой системе координат.
Далее приводятся два правила, которыми следует руководствоваться для мысленного
представления результата действия функций геометрических преобразований OpenGL.
В начале рассмотрим случай, когда считаем, что функции преобразований
применяются к координатам вершин трехмерных объектов. В этом случае взаимное

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