0

我已经多次查看此代码,但无法弄清楚它为什么不起作用。我正在增加一个变量并从中创建一个变换矩阵以围绕 z 轴旋转一个三角形。这是我的代码。

void rotate()
{   
    if(zaxis <= -360)
    {
        zaxis = 0;
        cw = true;
        ccw = false;
    }
    else if(zaxis >= 360)
    {
        zaxis = 0;
        cw = false;
        ccw = true;
    }   
    matrixz[0] = cos(zaxis);
    matrixz[1] = sin(zaxis);
    matrixz[4] = (-1) * sin(zaxis);
    matrixz[5] = cos(zaxis);

    glUniformMatrix4fv(matrixloc, 1, GL_FALSE, matrixz);

    if (cw)
        zaxis += 0.01;
    else if (ccw)
        zaxis -= 0.01;
}

我最初设置cw为 true 和false 。ccw三角形在一个方向上旋转很好,但在旋转超过 360 或 -360 时不会改变方向。我不确定这只是 C 问题还是 OpenGL 问题。有人可以告诉我为什么这不起作用吗?

4

0 回答 0