2014-07-15 3 views
1

Итак, я пытаюсь выполнить некоторые операции поворота на изображении в openGL на основе информации о кватернионе, и мне интересно, есть ли способ определить местоположение моего изображения вектором (скажем, (001)), а затем применить кватернион к этому вектору для поворота изображения вокруг произвольного начала? Я использую GLM для всех математических работ. (Использование C++)3D-ротация в OpenGL

Или есть лучший способ сделать это, что я еще не понял?

+0

Вы уверены, что вы сделали некоторые исследования? Googling для [вращения вокруг произвольной точки] (https://www.google.com/search?q=rotation+about+arbitrary+point) дает много результатов. –

+0

По крайней мере один поисковый хит находится прямо на этом сайте: http://stackoverflow.com/questions/23442499/rotating-an-object-around-a-fixed-point-using-glmultmatrix. –

ответ

1

Если вы хотите повернуть приблизительно одну точку P = {x, y, z}, тогда вы можете просто перевести на -P, повернитесь вокруг начала координат и затем переведите на 0..

0

Порядка, в котором должны быть применены преобразования являются:

scale -> translation to point of rotation -> rotation -> translation 

Так окончательная матрица должна быть вычислен:

glm::mat4 finalTransform = translationMat * rotationMat * translationToPointOfRotationMat * scaleMat; 

 Смежные вопросы

  • Нет связанных вопросов^_^