沥青(X轴)旋转问题

情况:从第一人称视角(摄像头位置),我希望能够抓住一个物体,并将其固定在屏幕的中心,同时俯视(俯仰)和左右(偏航)。 偏航工作正常。 当摄像机位置z>物体z时,只有在物体正面朝上的情况下才能正常工作。 转动180度,俯仰转动是相反的。 我如何弥补这一点。 这是什么:

double yawRadians = Math.toRadians(yaw - oldYaw); double pitchRadians = Math.toRadians(pitch - oldPitch); //center position of object, minus camera position double x = grabbedObject.x0 - position.x; double y = grabbedObject.y0 - position.y; double z = grabbedObject.z0 - position.z; double sinX = Math.sin(pitchRadians); double cosX = Math.cos(pitchRadians); double sinY = Math.sin(yawRadians); double cosY = Math.cos(yawRadians); double sinXY = sinX * y; double cosXZ = cosX * z; double newX = cosY * x + sinY * sinXY - sinY * cosXZ; double newY = cosX * y + sinX * z; double newZ = sinY * x + cosY * -sinXY + cosY * cosXZ; grabbedObject.addTranslation(newX - x, newY - y, newZ - z);