2016-03-24 6 views
3

Ich möchte, dass sich mein Objekt auf der Y-Achse dreht und immer zur Kamera zeigt (als ob sich ein Mensch im Kreis dreht), während sich die Kamera bewegt.ThreeJS: rotieren auf der y-Achse zur Kamera

Das ist, was ich bisher versucht habe:

var render = function() { 
    animationFrameId = window.requestAnimationFrame(render); 

    obj.lookAt(camera.position); 

    obj.rotation.set(0, obj.rotation.y, 0); 
} 

aber ich bin fehlen einige einfache mathematische oder trig-Funktion, denn wenn ich drehen, es schließlich ‚springt‘ und das Objekt erscheint die falsche Richtung zu Angesicht

Antwort

4

Wenn Sie eine .lookAus dem Objekt in alle Richtungen in die Kamera schauen, müssen Sie den Winkel auf Y-Ebene zwischen Kamera und Netz so berechnen.

var render = function() { 

    animationFrameId = window.requestAnimationFrame(render);  

    obj.rotation.y = Math.atan2((camera.position.x - obj.position.x), (camera.position.z - obj.position.z)); 

}