0

Opengl glRotatef(angle,x,y,z) 関数のカスタム実装をコーディングしようとしています。回転行列を書きましたが、使ってみると元の関数と同じ効果が得られません。これが私のコードです。

void mglRotate(float angle, float x, float y, float z)
{
    float angle_rad = angle * (PI/180.0f);

    float c = cos(angle_rad);
    float s = sin(angle_rad);
    float t = 1 - c;

    float m[16] = {
            c+x*x*t,y*x*t+z*s,z*x*t-y*s,0,
            x*y*t-z*s,c+y*y*t,z*y*t+x*s,0,
            x*z*t+y*s,y*z*t-x*s,z*z*t+c,0,
            0,0,0,1
    };

    glMultMatrixf(m);
}

私の間違いはどこですか?

4

1 に答える 1