Перевод объекта с помощью GLM, чтобы он следил за курсором мышиC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Перевод объекта с помощью GLM, чтобы он следил за курсором мыши

Сообщение Anonymous »

Я хочу реализовать перевод с моей мышью, чтобы объект, который я переводил, следил за моим движением мыши, то есть, если мой курсор мыши движется на определенное количество пикселей x Я хочу, чтобы объект двинулся на то же самое количество x. < /p>
До сих пор для вращений я использовал Glm для реализации Arcbal SDL, чтобы получить координаты мыши не сложно.
Я могу создать вектор размера 3 с текущими координатами мыши во время события движения мыши с: < /p>

Код: Выделить всё

while (SDL_PollEvent(&event))
{
switch (event.type)
{
case  SDL_MOUSEMOTION:
glm::vec3 vecTranslation(event.motion.x, event.motion.y, 0);
glm::mat4 translationMatrix;
glm::translate(translationMatrix, vecTranslation);
}
}
С помощью этого у меня есть матрица перевода, но это не принесет мне перевода, который точно исследует то, что у нас был курсор мыши. />

Код: Выделить всё

glm::matrixCompMult(translationMatrix,rotationMatrix);
< /code>
Но когда я это делаю, как перевод, так и вращение не работают. Если я просто верну матрицу вращения и использую ее напрямую с помощью Glmulmatrix () 
, мой аркбол ведет себя как ожидалось, но если я использую приведенный выше код, я могу видеть только одну лицо куба, которое у меня есть, и он продолжает менять его пропорции, но никогда не вращается и не переводит. PrettyPrint-Override ">

Код: Выделить всё

//Assume some code is done to know if and what translations should be done
matrixProjection = translationMatrix * mMatNow * scaleMatrix ;
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glClear(GL_COLOR_BUFFER_BIT);
glMultMatrixf(matrixProjection);
// scaling transfomation
glScalef(0.5,0.5,0.5);
drawCube();

glFlush();
SDL_GL_SwapBuffers();
< /code>
Матрица, которую я получаю,-это что-то вроде:
First: < /p>
1    ; 0     ; 0     ; 0     ;
0    ; 1     ; 0     ; 0     ;
0    ; 0     ; 1     ; 0     ;
0    ; 0     ; 0     ; 1     ;
< /code>
Затем после перевода: < /p>
1    ; 0     ; 0     ; 0     ;
0    ; 1     ; 0     ; 0     ;
0    ; 0     ; 1     ; -25   ;
0    ; 0     ; 0     ; 1     ;
Так что, очевидно, происходит перевод, однако я получаю этот странный результат на моем рисунке:

rygrys.

inrignal. src = "https://i.sstatic.net/jjnwx.png"/>

Подробнее здесь: https://stackoverflow.com/questions/313 ... use-cursor
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»