title: How to rotate a THREE.PerspectiveCamera around on object
body: <p>I am making this program where you can click on an object, zoom to it, then look at it from all angles by holding the right mouse button and dragging. I need the camera to be going around the object, not rotate the object with the camera looking at it. I honestly just have no idea how to math it out!</p>
  
  <p>For testing there is already a game object with an xyz we have selected and are looking at</p>
  
  <pre><code>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));
  </code></pre>
  
  <p>So the radius between the camera and the object is 500 and while selected and rotating, the camera should always be 500 away. </p>
  
  <p>I update the scene here:</p>
  
  <pre><code>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;
  
      }
  }
  </code></pre>
  
  <p>How do I rotate this camera around g with a radius of 500?!?!</p>