Third Person View Berechnung

Hi, ich bin neu hier und dachte mir ich kann einfach mal hier die vorgegebene Thirdperson camera nehmen die hat mir aber nicht so gut gefallen weil ich mir die kamera wie auf einer Kugel vorgestellt habe. Also lange rede kurzer sin wer das ganze berechnen möchte kann das so machen.

 

double cameray = cameraZoom * Math.sin((env.getCameraPitch()) * Math.PI / 180);

double gLenght = Math.cos(env.getCameraPitch() * Math.PI / 180) * cameraZoom;

double camerax = Math.sin(env.getCameraYaw() *Math.PI/ 180) * gLenght;

double cameraz = Math.cos(env.getCameraYaw() *Math.PI/ 180) * gLenght;

 

env.setCameraXYZ(t.getX() + camerax, t.getY() - cameray, t.getZ() + cameraz);

 

t steht für das object auf das sich die camera bezieht

 

um die kamera in der höhe einzuschränken nehme ich das was hier irgendwo anders schonmal gepostet wurde ist aber wichtig für die berechnung muss aufjeden fall davorgeschaltet werden sonst wirds unlogisch :D

 

if (newPitch > 0) {

  env.setCameraPitch(0);

} else if (newPitch < -89) {

  env.setCameraPitch(-89);

} else {

 env.setCameraPitch(newPitch);

}

 

und für die rotation könnte man das hier nehmen

env.setCameraYaw(env.getCameraYaw() - env.getMouseDX());

 

 

cameraZoom steht für die entfernung die ihr vom object haben wollt oder den radius der kugel;

 

Warum das ganze so berechnet wird könnte ich bei nachfragen auchnoch beschreiben.