Obrót wokół osi X, Y, Z o zadany kąt

Za przesunięcie punktu względem osi X, Y, Z o zadany kąt odpowiadają trzy metody znajdujące się w klasie "Punkt3D". Metody:

 public void ObrotX(double kat) {
   double katX = degToRad(kat);
   double pomX, pomY, pomZ;
   pomX = px;
   pomY = py * Math.cos(katX) - pz * Math.sin(katX);
   pomZ = pz * Math.cos(katX) + py * Math.sin(katX);
   px = pomX; py = pomY; pz = pomZ;
 }

 public void ObrotY(double kat) {
   double katY = degToRad(kat);
   double pomX, pomY, pomZ;
   pomX = px * Math.cos(katY) + pz * Math.sin(katY);
   pomY = py;
   pomZ = pz * Math.cos(katY) - px * Math.sin(katY);
   px = pomX; py = pomY; pz = pomZ;
 }

 public void ObrotZ(double kat) {
   double katZ = degToRad(kat);
   double pomX, pomY, pomZ;
   pomX = px * Math.cos(katZ) - py * Math.sin(katZ);
   pomY = py * Math.cos(katZ) + px * Math.sin(katZ);
   pomZ = pz;
   px = pomX; py = pomY; pz = pomZ;
 }

Funkcje trygonometryczne z pakietu "Math" przyjmują radiany, zatem potrzebna jest metoda przeliczająca ze stopni na radiany:

 private double degToRad(double deg)
 {
   return deg * ((2 * Math.PI) / 360);
 }