Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Gimbal lock





Анализируя поведение куба при попытке его поворота вокруг обеих осей (X и Y) на углы большие, чем 90 градусов, вы, конечно обнаружили эффект (парадокс), который называется блокировкой шарнирного соединения (Gimbal lock).

Эффектом Gimbal lock называют потерю одной степени свободы шарнирного механизма, которая происходит, когда две из трех осей вращения совмещены. Мысленно поверните механизм на 90 градусов вокруг вертикальной оси (оси Y) и убедитесь, что два обода будут расположены в одной плоскости. Такое положение называют блокировкой шарнирного соединения (Gimbal lock), так как попытка повернуть оба совмещенных обода обречена на неудачу. Как говорится в статье (http://en.wikipedia.org/wiki/Gimbal_lock), термин lock (блокировка) неточен (misleading). На самом деле все три вращения (по отдельности) возможны даже в положении Gimbal lock. Все три шарнира (или оси — gimbals) могут свободно вращаться, но из-за того, что в рассматриваемом положении две оси расположены в одной плоскости, то эту плоскость (оба шарнира сразу) повернуть не удастся.

С точки зрения математики рассматриваемый эффект можно объяснить тем, что произведение матриц не коммутирует, а именно: произведение A·B не равно произведению B·A.

void OnPaint()

{

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

glMatrixMode (GL_MODELVIEW);

glLoadIdentity ();

 

glTranslated(gdTransX, gdTransY, gdTransZ);

glRotated(gdAngleY, 0.,1.,0.);

glRotated(gdAngleX, 1.,0.,0.);

 

glCallList(1);

 

glutSwapBuffers();

}

Еще раз просмотрите порядок команд, определяющих матрицу моделирования. Команды со второй по шестую создают эту матрицу. Четырехмерные векторы (quaternions) будут умножаться на нее справа. Множество векторов — это команды glVertex3d, которые имеются в списке номер 1. Напомню, что вызов glCallList(1) проиграет список команд, среди которых главную роль играют команды вида glVertex3d(x, y, z). Эти команды задают векторы в 4-х мерном пространстве (четвертая координата по умолчанию равна 1). Итак. при каждой перерисовке все множество векторов будет по очереди умножено справа на матрицу моделирования.

¨ Команда glLoadIdentity создает единичную матрицу I и загружает ее в текущую матрицу моделирования (верхнюю в стеке из 32 матриц).

¨ Команда glTranslated(gdTransX, gdTransY, gdTransZ); умножает матрицу моделирования (в данный момент единичную) на матрицу сдвига T.

¨ Команда glRotated (gdAngleY, 0.,1.,0.); умножает матрицу моделирования (в данный момент I▪T) на матрицу вращения вокруг оси Y. Назовем эту матрицу Ry.

¨ Команда glRotated (gdAngleX, 1.,0.,0.); умножает матрицу моделирования (в данный момент I▪T▪Ry) на матрицу вращения вокруг оси X. Назовем эту матрицу Rx.

Напомню, что кубик составляется из 6 граней, каждая из которых является четырехугольником. Все 24 (24 = 6▪4) вектора вершин, из которых создаются примитивы (GL_QUADS), умножаются справа на результирующую матрицу моделирования, которая к этому времени равна I▪T▪Ry▪Rx.

Поиграйте с кубиком и постарайтесь запомнить его поведение при поворотах на углы, большие 90 градусов. Затем поменяйте порядок команд вращения так, чтобы матрица моделирования стала равной I▪T▪Rx▪Ry. Сравните поведение кубика при поворотах с тем, что было ранее. Теперь вы должны почувствовать, как влияет на результат перестановка матриц в матричном произведении.

Если вы переместите команду(ы) вращения в позицию до команды glTranslated, то кубик будет вращаться не вокруг своей оси, а вокруг центра сцены!







Дата добавления: 2015-10-19; просмотров: 781. Нарушение авторских прав; Мы поможем в написании вашей работы!




Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...


Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...


Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...


ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Измерение следующих дефектов: ползун, выщербина, неравномерный прокат, равномерный прокат, кольцевая выработка, откол обода колеса, тонкий гребень, протёртость средней части оси Величину проката определяют с помощью вертикального движка 2 сухаря 3 шаблона 1 по кругу катания...

Неисправности автосцепки, с которыми запрещается постановка вагонов в поезд. Причины саморасцепов ЗАПРЕЩАЕТСЯ: постановка в поезда и следование в них вагонов, у которых автосцепное устройство имеет хотя бы одну из следующих неисправностей: - трещину в корпусе автосцепки, излом деталей механизма...

Понятие метода в психологии. Классификация методов психологии и их характеристика Метод – это путь, способ познания, посредством которого познается предмет науки (С...

Седалищно-прямокишечная ямка Седалищно-прямокишечная (анальная) ямка, fossa ischiorectalis (ischioanalis) – это парное углубление в области промежности, находящееся по бокам от конечного отдела прямой кишки и седалищных бугров, заполненное жировой клетчаткой, сосудами, нервами и...

Основные структурные физиотерапевтические подразделения Физиотерапевтическое подразделение является одним из структурных подразделений лечебно-профилактического учреждения, которое предназначено для оказания физиотерапевтической помощи...

Почему важны муниципальные выборы? Туристическая фирма оставляет за собой право, в случае причин непреодолимого характера, вносить некоторые изменения в программу тура без уменьшения общего объема и качества услуг, в том числе предоставлять замену отеля на равнозначный...

Studopedia.info - Студопедия - 2014-2025 год . (0.012 сек.) русская версия | украинская версия