私はビデオを以下に示すように、翻訳/回転をacheiveしたい -翻訳+回転を行った後のOpenGL独立翻訳?
http://www.youtube.com/watch?v=92h0xuV4Yrg
私が知っている独立した並進と回転のために、典型的な方法がある - 最初のオブジェクトを回転させ、その後、翻訳します。
ここに示されているように:
PushMatrix();
LoadIdentity();
Translate(posx,posy,posz); // Second, move the object to its final destination
Rotate(); // First, apply rotations (which rotate around object-origin
Draw();
PopMatrix();
しかし、私の需要量は、世界座標とマウスを使って移動を中心にオブジェクトを回転させることです。
ビデオで見られるように、回転がないオブジェクトorigin.Thatの周りの世界、原点を中心に行われているが、ロジックは、上記とは逆であるべき意味(最初に翻訳した後、回転を行う)
PushMatrix();
LoadIdentity();
Rotate(); // Second, apply rotations (which rotate around world-origin)
Translate(posx,posy,posz); // First, move the object to its final destination
Draw();
PopMatrix();
しかし、ビデオの最終的な翻訳は、回転後の最終的な位置に対して行われます(これはマウスを使って操作するposx、posy、poszの値とは異なります)。そのポイントは、である必要はありません
translate (-x,-y,-z);
rotate (angle);
translate (x, y, z);
:任意の点の周りのオブジェクト(X、Y、Z)、あなたは次の操作を行うに回転させるには、翻訳
ワールドスペースまたはオブジェクトスペースでの最終的な翻訳はありますか?オブジェクト空間内にある場合は、スタック上の別の行列を押して移動するだけで済みます。 –
すべての翻訳は世界の宇宙にある。 –
私はあなたの質問に従うことができません、ちょうど任意の位置の周りにオブジェクトを回転しようとしていますか? – cmannett85