Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > Вращение объекта


Автор: Salatovec 11.2.2009, 03:03
Здравствуйте, проблема в следующем: имеется объект, а для него в свою очередь имеются 9 углов

Lx  Ly  Lz
Mx My Mz
Nx Ny Nz

это 9 направляющих косинусов между соответствующими осями. Система координат L M N неподвижна, а система координат X Y Z связанна с аппаратом. Я не понимаю как эти 9 углов, преобразовать в 3 угла, понятные функцие glRotate. Подскажите пожалуйста  smile 

Забыл сказать - направляющие косинусы уже заданны своими значениями, я просто не понимаю переход от них к 3 углам =\   

Автор: Rickert 11.2.2009, 07:47
А вы уверены, что это у вас 9 УГЛОВ, а не три вектора, которые указывают направление осей координат системы LMN ?

Автор: Salatovec 11.2.2009, 08:15
Да, Lx - угол между осью L и осью X
      Ly - угол между осью L и осью Y
и так далее...

Автор: Rickert 11.2.2009, 10:03
Так это угол относительно чего? От чего он отмеряется? От какой-то другой оси? От какой плоскости? Потому что угол для X можно отмерять как от Z, так и от Y: причём в разные стороны.
Есть Углы Эйлера, но там их три - http://ru.wikipedia.org/wiki/Углы_Эйлера
Приведите мне пример этих углов. Всех 9.

Автор: Salatovec 11.2.2009, 15:33
Углы Эйлера реализованны в glRotate и к ним мне надо прийдти, а углы данные мне это углы между осями. Система осей L M N неподвижная - L - вверх, M - вправо, а N - дополняет систему до правой. А система X Y Z связанна с объектом. Даны соответсвующие углы, а по ним надо восстановить вращение объекта. Просто мой вопрос больше математический =\

Автор: Rickert 11.2.2009, 16:54
Что значит "соответствующие углы"? Согласитесь угол - он между какими двумя линиями? Так вот я спрашиваю:
Цитата(Salatovec @  11.2.2009,  08:15 Найти цитируемый пост)
Да, Lx - угол между осью L и осью X      Ly - угол между осью L и осью Yи так далее...

Вот ось x, а вот угол, пусть будет в 45 градусов. Нарисуйте теперь, пожалуйста ось L в вашем представлении. Мне интересно в какую сторону вы отложите эти 45 градусов. Потому что незная этого, невозможно понять что требуется найти.
Может быть эти 9 чисел - это матрица поворота?

Автор: Rpahut 12.2.2009, 00:21
Подключите меня к матрице...
Цитата(Google)

проекции единичного вектора на оси прямоугольной системы координат равны соответственно направляющим косинусам этого вектора

так что это именно три вектора указывающие направление осей.

Автор: Gongex 14.2.2009, 16:13
не понял ни фига.Зачем ты делаешь эти синусы и углы выдумываешь?!.....разработчики Опенгл уже все придумали ...-функция gluLookAt.....
И ещё мне интересно,че за прогу пишешь с такими расчетами? Че там будет двигаться и как? и от каких кнопок?

Автор: Rickert 14.2.2009, 19:46
Gongex, Это элементарная матрица поворота. Скелетную анимацию никогда не расстмаривали? А современные разработки физических движков?

Автор: Gongex 14.2.2009, 23:53
он придумал три оси дополнительных,создает вторую плоскость среди обычной поскости опенгл.Зачем изобретать заново велоипед?! Есть же стандартные x,y,z и glRotatef

Автор: Rpahut 15.2.2009, 01:23
Про плоскость это было сильно  smile 

Автор: Rickert 15.2.2009, 07:32
Gongex, напишите модуль скелетной анимации на основе glRotatef - вместе посмотрим.

Автор: Rickert 15.2.2009, 14:52
Цитата(Gongex @  15.2.2009,  14:15 Найти цитируемый пост)
Rickert, Автор завел тему на счет девяти осей,а не анимации.Анимацию и ботов пока не делал,вот токо собираюсь учить по книгам 3дсмакс.Ну x,y,и z-это трехмерная плоскость.В опенгл все придумано заранне для пользователя.Библиотека для рисования и графики. Чтобы такие как автор ,не писали свои классы для осей,плоскостей,и не переводили 2Д плоскостьв 3Д.....Автор просто не понял сути опенгл,не проникся полностью,и пока не представляет,что за чушь с осями задумал.Он по ходу с 9-ю осямии собирается примитивы вращать.А это бред,согласись.А про анимацию он не упоминал.

А вы не думали, что иногда люди просят помочь с конкретными заданиями, где стоят конкретные условия, типа: с помощью анал. геометрии совершить поворот объекта и отобразить его, с помощью OpenGL?

Цитата(Gongex @  15.2.2009,  14:15 Найти цитируемый пост)
одна полуумная девушка,в  какой то теме здесь,придумала полнейший бред.Её типа не устраивают стандартные три оси,и она придумала ось х вверх,ось y вниз,и ось z право.И пытается че там нарисовать.НУ НЕ ИДИОТКА?))))))))))))))))))угараю сижу.

Нет, не идиотка. Вы не имели дела с произвольной прямоугольной системой координат?

Автор: Salatovec 17.2.2009, 23:40
Rickert, ясно, бывает и такое) и кстати я нашел решение - там для каждой побочной оси надо было писать 3 уравнения поворота, и получаются 3 системы. А из этих 3 систем находятся углы. Помог учебник по векторной алгебре)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)