In meiner 3D-Anwendung speichere ich die Position eines Objekts in einem Vektor und es dreht sich um den Ursprung in einer Quaternion. Ich muss das Objekt um einen Vektor mit beliebigem Ursprung drehen. Ich habe versucht, die Position - vectorOrigin und die Rotation in eine Matrix zu konvertieren, die Matrix zu rotieren und dann Position und Rotation als Vektor und Quaternion aus der resultierenden Matrix zu extrahieren. Die Position ist in Ordnung, aber die Rotation bleibt konstant (das Objekt rotiert um den gegebenen Vektor, aber immer in die gleiche Richtung).Wie wird ein Objekt mit Quaternionen um einen Punkt gedreht?
Ist meine Methode falsch oder habe ich einen Fehler?
Das habe ich gemacht. Das Objekt bewegt sich um einen Vektor mit beliebigem Ursprung, der jedoch immer in die gleiche Richtung zeigt. Ich sollte dem Ursprung des Vektors gegenüberstehen. Ich habe die Frage bearbeitet, um meinen Algorithmus zu verdeutlichen. – user17544
Wenn ich richtig verstanden habe, müssen Sie eine weitere Rotation um einen Vektor parallel zu dem, den Sie erwähnten, hinzufügen, der aber durch das * Zentrum * des Objekts verläuft. –
Sie haben Recht. Ich löste es, indem ich das Objekt um seine Mitte rotierte und dann die Position des Objekts um den gegebenen Vektor rotierte. – user17544