opengl 旋转方向

    // render boxes
    for (unsigned int i = 0; i < 5; i++)
    {
        // calculate the model matrix for each object and pass it to shader before drawing
        glm::mat4 model = glm::mat4(1.0f); // make sure to initialize matrix to identity matrix first
        model = glm::translate(model, cubePositions[i]);
        float angle = 20.0f * i;
        //model = glm::rotate(model, glm::radians(angle), glm::vec3(1.0f, 0.3f, 0.5f));
        model = glm::rotate(model, glm::radians(angle), glm::vec3(0.0f, 0.f, 1.f));
        glUniformMatrix4fv(modelLoc, 1, GL_FALSE, glm::value_ptr(model));

        glDrawArrays(GL_TRIANGLES, 0, 36);
    }
一, X轴旋转 glm::vec3(1.0f, 0.f, 0.f));

 

 

 

二, Y轴旋转 glm::vec3(0.0f, 1.f, 0.f));

 

 

三, Z轴旋转 glm::vec3(0.0f, 0.f, 1.f));

 

 

OpenGL  旋转是逆时针的。

 

我们来做些更有意思的事情,让我们来旋转和缩放之前教程中的那个箱子。首先我们把箱子逆时针旋转90度。然后缩放0.5倍,使它变成原来的一半大。我们先来创建变换矩阵:

glm::mat4 trans;
trans = glm::rotate(trans, glm::radians(90.0f), glm::vec3(0.0, 0.0, 1.0));
trans = glm::scale(trans, glm::vec3(0.5, 0.5, 0.5));

 

posted on 2022-11-07 18:02  莫水千流  阅读(316)  评论(0编辑  收藏  举报