LINUX.ORG.RU

Opengl и поворот.

 ,


2

2

Здравствуйте. Например имеется некий вектор R, и матрица M. Можно ли повернуть матрицу так, чтобы какая нибудь из осей матрицы M (например ось Y) совпадала с вектором R. Понятно, что можно посчитать все углы между осями матрицы и вектором, а потом выполнить соответсвенно 3 поворота по каждой из осей, но хочется найти более простой способ. Кокретно ситуация следующая: есть некоторая модель, и она перемещается относительно какой нибудь точки (в моём случае это центр Земли с координатами 0,0,0) на некоторые координаты. Надо что бы после перемещения модель поворачивалсь к исходной точке «лицом» (в моём случае что бы модель была повёрнута так, что бы плоскость «низа» модели соответсвовала поверхности Земли).

Ответ на: комментарий от EXL

Проблема тут в другом. Если бы на той должности в военке, на которой работает ТС, хорошо платили, то аналитическую геометрию там бы знали.

В этой стране, на секундочку, военные расходы - больше четырех триллионов рублей в год - треть бюджета. Куда больше то?

asaw ★★★★★
()
Ответ на: комментарий от anonymous

Пользователи форума были рады тебе помочь :)

Залогинься и отметь тему решённой.

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от asaw

Мы оба с тобой не знаем и не видим всей ситуации. Может ТС вообще обычный солдат, который в штабе писарем сидит и от скуки эти ваши кватернионы чешет. А что, у меня один знакомый вообще кучу игр на OpenGL написал, пока служил.

В любом случае распинать человека за то, что он что-то там не знает, что для других является элементарным, это как бы... А вот, нашёл:

Русский форум. Задаёшь вопрос, потом тебе долго рассказывают, какой ты мудак.

EXL ★★★★★
()
Ответ на: комментарий от EXL

Не солдат я, а погроммист) На 5 курсе учусь, кватернионов не давали) Конечно мог бы и сам разрулить, но спросить быстрее.

anonymous
()
Ответ на: комментарий от EXL

Так он вот сам написал: Opengl и поворот. (комментарий)

Русский форум. Задаёшь вопрос, потом тебе долго рассказывают, какой ты мудак.

Он даже понятно спросить не может что ему нужно. Самое забавное, что образовалась куча советчиков, которые сами ничего не понимают, но советуют. Кватернионы вот притащили. Какая необходимость в кватернионах, когда под рукой полноценная библиотека для работы с матрицами?

asaw ★★★★★
()
Ответ на: комментарий от anonymous

Ну да, рекомендация почитать Беклемишева для начала - безусловно дичь. Мракобесие на марше...

asaw ★★★★★
()

Я не понял, че такое ось матрицы. Ты имеешь в виду, ось вокруг который эта матрица будет поворачивать произвольный вектор?

dikiy ★★☆☆☆
()
Ответ на: комментарий от dikiy

А вообще что тебе мешает, перейти в векторное пространство, где объект лежит на оси X, допустим и там выполнить нужный поворот?

dikiy ★★☆☆☆
()
Ответ на: комментарий от dikiy

Вообще, кватернион как раз и реализует переход в другое векторное пространство.

ZombieCommander
() автор топика
Ответ на: комментарий от anonymous

Ну вообще мне это и нужно было сначала, ток как это сделать я не понимаю(

Ок, пусть r — это орт, где находится твой объект, r' — орт, где он будет находится после поворота, O — центр поворота (Земля), для упрощения положим O центром координат. Нормируем векторы r и r'. Тогда x'=r — это новая ось X, z'=r×r' — новая ось Z, y'=z'×r — новая ось Y.

Матрица новых координат будет M₁=(x'|y'|z'). Ввиду ее ортогональности обратная матрица будет равна m₁=(x'|y'|z')^T.

Угол поворота θ (в новых координатах) получить просто исходя из векторов r и r':
c=cosθ=<r,r'>, s=sinθ=√(1-c²). Матрицу поворота M₂ в новых координатах ты построить надеюсь сможешь.

Вычисляем координаты объекта в новой системе координат: w=m₁r. Поворачиваем его: M₂w, переходим в старые координаты: M₁M₂w.

Hint: вектор w будет иметь вид (число,0,0). Вопрос: почему?

Hint2: Это в итоге упрощает вычисления.

dikiy ★★☆☆☆
()
Последнее исправление: dikiy (всего исправлений: 1)
Ответ на: комментарий от asaw

От этого зарплаты инженеров в военке выше не становятся

tyro33
()
Ответ на: комментарий от ZombieCommander

Попробую так, но мне кажется проще построить кватернион, направление которого - норма r' и X.

суть та же, да.

dikiy ★★☆☆☆
()
Ответ на: комментарий от EXL

Пока - нет, по ряду причин. Хотя, если бы не моя ситуация, то мог бы.

peregrine ★★★★★
()
Ответ на: комментарий от upcFrost

Вопрос то нормальный, но оси у матриц пугают. Человек либо не прилежно учился, либо очень безалаберный.

peregrine ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.