我已经多次查看此代码,但无法弄清楚它为什么不起作用。我正在增加一个变量并从中创建一个变换矩阵以围绕 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 问题。有人可以告诉我为什么这不起作用吗?