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

UptoLike

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

Основы компьютерной графики для программистов 86
____________________________________________________________________________________________________________________
http://www.ksu.ru/persons/9134.ru.html
Z системы координат наблюдателя. Это дает эффект как если бы мы отодвинулись от
монитора назад. Затем производится поворот вокруг оси Y первоначального положения
видовой системы координат, а после этого и вокруг оси X тоже первоначального
положения видовой системы координат. Поскольку ось Z видовой системы координат
всегда остается направленной на начало координат первоначальной видовой системы
и
на начало координат мировой системы, то получается эффект как будто мы облетаем
начало мировой системы координат, глядя на него. Но это неотличимо от того, как если
бы объекты вращались перед нами, оставаясь все время на одном месте!
Поскольку при вращении видовой системы координат взгляд остается направленным
на центр первоначальной видовой
системы координат, то неявно задается и вращение
новой системы координат наблюдателя относительно ее центра. При этом постоянным
остается угол между осями текущей системы координат наблюдателя и
перпендикуляром, опущенным из начала текущей системы координат наблюдателя на
ось вращения в первоначальной видовой системе координат. Наглядно этот поворот
можно представить как скольжение системы
координат наблюдателя по окружности
основания конуса, образующая которого равна расстоянию от наблюдателя до центра
первоначальной видовой системы координат.
Таким образом, показано, что два указанных правила приводят к одним и тем же
визуальным результатам. Ими можно пользоваться в зависимости от того хотим ли мы
представить перемещения объектов в мировом пространстве, или перемещения
наблюдателя в мировом пространстве, то есть относительно мировой системы
координат.
Рассмотрим далее описания некоторых других функций, которые участвуют в процессе
формирования матрицы видового преобразования в OpenGL.
Для операции масштабирования объектов относительно начала координат применяется
функция glScale, которая существует в двух версиях: glScaled и glScalef. В качестве
параметров они принимают значения масштабных коэффициентов по трем
координатным осям. Напомним, что значение масштабного коэффициента равное
единице не изменяет размеров объекта вдоль данной оси.
Описание функции glScalef:
void glScalef(
GLfloat x,
GLfloat y,
GLfloat z
);
Если геометрические преобразования разных объектов должны производится не в
заранее оговоренной последовательности, а асинхронно, как, например, это может
произойти при использовании разных программных потоков, вывод которых
осуществляется в один и тот же контекст воспроизведения, то перед установкой новой
матрицы видового преобразования следует запомнить ее текущие значения. Для этого
текущая матрица запоминается
в стеке OpenGL с помощью функции glPushMatrix.
Восстановление сохраненной матрицы достигается вызовом функции
glPopMatrix. Обе
эти функции используются без входных параметров.
Основы компьютерной графики для программистов                                                                  86
____________________________________________________________________________________________________________________



Z системы координат наблюдателя. Это дает эффект как если бы мы отодвинулись от
монитора назад. Затем производится поворот вокруг оси Y первоначального положения
видовой системы координат, а после этого и вокруг оси X тоже первоначального
положения видовой системы координат. Поскольку ось Z видовой системы координат
всегда остается направленной на начало координат первоначальной видовой системы и
на начало координат мировой системы, то получается эффект как будто мы облетаем
начало мировой системы координат, глядя на него. Но это неотличимо от того, как если
бы объекты вращались перед нами, оставаясь все время на одном месте!
Поскольку при вращении видовой системы координат взгляд остается направленным
на центр первоначальной видовой системы координат, то неявно задается и вращение
новой системы координат наблюдателя относительно ее центра. При этом постоянным
остается угол между осями текущей системы координат наблюдателя и
перпендикуляром, опущенным из начала текущей системы координат наблюдателя на
ось вращения в первоначальной видовой системе координат. Наглядно этот поворот
можно представить как скольжение системы координат наблюдателя по окружности
основания конуса, образующая которого равна расстоянию от наблюдателя до центра
первоначальной видовой системы координат.
Таким образом, показано, что два указанных правила приводят к одним и тем же
визуальным результатам. Ими можно пользоваться в зависимости от того хотим ли мы
представить перемещения объектов в мировом пространстве, или перемещения
наблюдателя в мировом пространстве, то есть относительно мировой системы
координат.
Рассмотрим далее описания некоторых других функций, которые участвуют в процессе
формирования матрицы видового преобразования в OpenGL.
Для операции масштабирования объектов относительно начала координат применяется
функция glScale, которая существует в двух версиях: glScaled и glScalef. В качестве
параметров они принимают значения масштабных коэффициентов по трем
координатным осям. Напомним, что значение масштабного коэффициента равное
единице не изменяет размеров объекта вдоль данной оси.
     Описание функции glScalef:
     void glScalef(
     GLfloat x,
     GLfloat y,
     GLfloat z
     );

Если геометрические преобразования разных объектов должны производится не в
заранее оговоренной последовательности, а асинхронно, как, например, это может
произойти при использовании разных программных потоков, вывод которых
осуществляется в один и тот же контекст воспроизведения, то перед установкой новой
матрицы видового преобразования следует запомнить ее текущие значения. Для этого
текущая матрица запоминается в стеке OpenGL с помощью функции glPushMatrix.
Восстановление сохраненной матрицы достигается вызовом функции glPopMatrix. Обе
эти функции используются без входных параметров.




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