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