матрица вращения не применяется правильно к вектору - PullRequest
0 голосов
/ 19 ноября 2018

Я пытаюсь изучить преобразование в OpenGL, и я использую glm для математических расчетов. У меня есть вектор, и я хочу применить вращение к этому вектору. Но я получаю вывод как vec3(0,0,0)

#define GLM_ENABLE_EXPERIMENTAL
#include <glm/ext/matrix_float4x4.hpp> // mat4x4
#include <glm/ext/matrix_transform.hpp> // translate, rotate, scale, identity
#include <glm/gtx/string_cast.hpp>
#include<iostream>
int main(){
        //define  a 4x4 model matrix
        glm::mat4 model;
        //define a vector
        glm::vec4 Position = glm::vec4(glm::vec3(0.4,0.2,0.2), 1.0);
        //create a model matrix with rotation of 45 degrees around z aixs
        model = glm::rotate(model,  45.0f, glm::vec3(0.0f, 0.0f, 1.0f));        
        //print the final vector position after rotation is applied
        std::cout<< glm::to_string(model*Position) <<std::endl;
        return 0;
}

1 Ответ

0 голосов
/ 19 ноября 2018

Вы не инициализировали матрицу вашей модели.Должно быть:

glm::mat4 model = glm::mat4(1.0f);

, чтобы инициализировать его в единичную матрицу.

...