OpenGL では、カメラをポイントの周りに回転させようとしています。カメラはポイントから r の距離にあり、回転時にポイントに面しています。つまり、中心から半径 r の円周に沿ってカメラを移動させ、円周上の任意の点でカメラを中心に向けます。
3D 空間では、円の中心が (3, 0, 3) であるとしましょう。
私はもう試した:
// move to center of circle
glTranslatef(-3, 0, -3)
// move a distance away from the circle
glTranslatef(0, 0, r);
// rotate along the y "up" axis
glRotatef(CameraAngle, 0, 1, 0);
ここで、CameraAngle は円の周りを移動する角度です。
私の最終結果は、カメラがまだ円の中心ではなく、原点に沿って回転していることです。誰でもこの問題を解決するのを手伝ってもらえますか? ありがとう!