0

AndroidのOpenGLでモデルを回転させています。

以下の 2 つの例で同じ結果が得られないのはなぜですか? 私は、軸を中心に回転させて、x次にyまたは次に回転させても、違いはないと思いました。yx

gl.glRotatef(_angleY, 0f, 1f, 0f); //ROLL
gl.glRotatef(_angleX, 1f, 0f, 0f); //ELEVATION
gl.glRotatef(_angleZ, 0f, 0f, 1f); //AZIMUTH


gl.glRotatef(_angleX, 1f, 0f, 0f); //ELEVATION
gl.glRotatef(_angleY, 0f, 1f, 0f); //ROLL
gl.glRotatef(_angleZ, 0f, 0f, 1f); //AZIMUTH
4

1 に答える 1

0

これらのローテーションがすべて同時に適用されない限り、順序は間違いなく重要だと思います。

立方体があり、x 軸を中心に回転させて正面に移動した場合、 y 軸を中心に回転した後、元の正面は依然として上にあります

代わりに、最初にy 軸を中心に回転すると、元の前面が横に移動するため、x 軸を中心に回転すると、元の前面に回転しません

ローテーションの順序重要だと思います。

于 2012-09-16T05:05:59.337 に答える