| RotMatrix.java |
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