1   package fi.jyu.mit.graphics;
2   
3   /**
4    * Kiertomatriisi
5    * @author Markus Kivioja
6    *
7    */
8   public class RotMatrix extends Matrix {
9       
10      /**
11       * Luo matriisin jolla voi kiertää olioita, esimerkiksi:
12       * <pre>
13       *      new RotMatrix(Axis.X, 47.9);
14       * </pre>
15       * @param axis akseli jonka ympäri kierretään (Axis.X/Axis.Y/Axis.Z)
16       * @param deg
17       */
18      public RotMatrix(int axis, double deg) {
19          super();
20          double a = deg*Math.PI/180.0;
21          double ca = Math.cos(a);
22          double sa = Math.sin(a);
23          int[] j = new int[2];
24          for (int i = 0, ji = 0; i < 3; i++)
25              if (i != axis) j[ji++] = i;
26          this.set(j[0], j[0], ca);
27          this.set(j[1], j[1], ca);
28          this.set(j[0], j[1], -sa);
29          this.set(j[1], j[0], sa);
30      }
31  }
32