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