我已多次查看此代码,无法弄清楚它为什么不起作用。我正在增加一个变量并从中创建一个变换矩阵,以围绕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,将ccw
设置为false。三角形在一个方向上旋转精细但在旋转超过360或-360时不会改变方向。我不确定这只是一个C问题还是一个OpenGL问题。有人能告诉我为什么这不起作用吗?