Comment faire pivoter une TROIS.PerspectiveCamera autour de l'objet

Je suis en train de ce programme où vous pouvez cliquer sur un objet, zoom, puis le regarder sous tous les angles, en maintenant le bouton droit de la souris et en la faisant glisser. J'ai besoin de la caméra pour tourner autour de l'objet, de ne pas faire pivoter l'objet avec l'appareil photo en le regardant. Honnêtement, je n'ai juste aucune idée de comment les maths!

Pour le test il y a déjà un objet de jeu avec un xyz, nous avons sélectionné et sont à la recherche à

var g = new GameObject(500, 0, 0);//The game object with xyz
this.selected = g;//set selected to g

//Create and set the camera
this.camera = new THREE.PerspectiveCamera(45, w/h, 1, 10000);
this.camera.position.x = 0;
this.camera.position.y = 0;
this.camera.position.z = 0;

//set camera to look at the object which is 500 away in the x direction
this.camera.lookAt(new THREE.Vector3(this.selected.x, this.selected.y, this.selected.z));

De sorte que le rayon entre la caméra et l'objet est de 500 et tout sélectionné et la rotation, l'appareil doit toujours être de 500 à l'écart.

- Je mettre à jour la scène ici:

Main.prototype.update = function(){

    this.renderer.render(this.scene, this.camera);//scene is just some ambient lighting

    //what to do when mouse right is held down
    if(this.rightMouseDown){

        //placeholder functionality, needs to rotate around object based on mouse movements
        this.camera.position.x -= 5;

    }
}

Comment puis-je faire tourner cette caméra autour de g avec un rayon de 500?!?!

Pourquoi ne pas utiliser la boule de commande de contrôle? threejs.org/examples/misc_controls_trackball.html

OriginalL'auteur Andrew Fisher | 2014-11-23