7

やや複雑な3Dモデル(OpenGL ES 1.1 iPhone SDK v3.0) (つまり、数千の頂点と面)があり、このモデルをモデルの中心またはその近くでY軸を中心に回転させたいと考えています。問題は、glRotateが、モデルの中心付近ではなく、下端の1つの中心付近の点を中心にモデルを回転させることです。街灯柱の周りを非常にタイトな円を描く車を想像してみてください。それが基本的に私が持っているものです。車をライトポストに突き刺して、その周りを回転させてほしい。(以下のいくつかの情報源)

   // BLUE BLOCK----------------------------------------------
    glPushMatrix();
    {
        glTranslatef(blueLocation[0], blueLocation[1], blueLocation[2]);
        glRotatef(blueRotAngle, 0.0, 0.0, 1.0);
        ...

質問:
OpenGLで回転の中心を変更する簡単な方法はありますか?

4

3 に答える 3

12

もちろん。オブジェクトを下に移動します。次に、それを回転させます。

于 2009-07-15T10:12:23.360 に答える
2

OpenGLのすべての操作は、オリジンを基準にして実行されることを覚えておく価値があります。「OpenGLで回転の中心を変更する」ことはできません。あなたはその起源を基準にして世界を動かします。

于 2009-07-19T01:10:44.353 に答える
1

モデルの起点を変更するには、モデルAPIを使用する必要があります。どちらを使用しているのかがわかれば、もう少しお手伝いできるかもしれません。

モデルを編集できるソフトウェアにアクセスできる場合は、モデルファイルで直接修正し、コードからハッキングを削除できます。

于 2009-07-15T10:35:39.863 に答える