1

C++ の OpenGL で独自の回転関数、つまり glRotate などを実装しようとしています。y を中心に回転するための私のコードは次のようになります。

void do_rotateY(GLdouble angle)
{
    //rotate around y axis
    GLdouble s = angle;
    GLdouble c[4][4];
    c[1][1] = c[3][3]= 1.0;
    c[0][0] = c[2][2] = cos(s);
    c[2][0] = sin(s);
    c[0][2] = -c[2][0];
    glMultMatrixd(*c);
}

次のような電話をしているとき:

glPushMatrix();
do_rotateY(100);
...draw something...
glPopMatrix();

画面には何も表示されません。do_rotateY(...) を glRotatef(...) に置き換えると、すべてが正しく表示されます。

4

1 に答える 1

4

C++cossinラジアンの引数が必要ですが、度を渡しています。

他のすべては私にはうまく見えます。

于 2012-10-17T06:06:02.807 に答える