In OpenGL versuche ich eine Kamera um einen Punkt zu drehen, wobei die Kamera Abstand r vom Punkt hat und zum Punkt zeigt, wenn sie sich dreht. Mit anderen Worten, ich möchte, dass sich die Kamera entlang des Umfangs eines Kreises mit einem Radius r von der Mitte bewegt, wobei die Kamera an jedem Punkt entlang des Umfangs der Mitte zugewandt ist.OpenGL dreht eine Kamera um einen Punkt
Lets sagen, dass in 3d Raum das Zentrum des Kreises ist (3, 0, 3);
Ich habe versucht:
// 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);
wo CameraAngle ist der Grad um den Kreis bewegt werden.
Mein Endergebnis ist die Kamera dreht immer noch entlang der Herkunft, nicht die Mitte des Kreises. Kann mir jemand helfen, dieses Problem zu beheben? Vielen Dank!
Ich habe das mit "quaternions prototype" getan (einfache Methode innerhalb meiner Vector-Klasse, die sich um einen anderen Vektor dreht). sieht flexibler aus =) – shybovycha