このコードを何度も見直しましたが、なぜ機能しないのかわかりません。変数を増やし、そこから変換行列を作成して、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 の問題なのかはわかりません。これが機能しない理由を誰かに教えてもらえますか?