private Matriz traslacion(float x, float y) { Matriz m = identidad(); m.setData(x, 2, 0); m.setData(y, 2, 1); return(m); }
private Matriz escalacion(float x, float y) { Matriz m = identidad(); m.setData(x, 0, 0); m.setData(y, 1, 1); return(m); }
private Matriz reflexionC() { Matriz m = identidad(); m.setData(-1, 0, 0); m.setData(-1, 1, 1); return(m); }
public Escenario multEscenario(Escenario e, Matriz m) { Escenario res = new Escenario(e.CentroEsc); for (int i = 0; i < e.ListaObjetos.Count; i++) { res.addObj(multObjeto(e.ListaObjetos[i], m)); } return(res); }
public List <Poligono> multObj2(Objeto o, Matriz m) { Objeto res = new Objeto(o.CentroObj); for (int i = 0; i < o.ListaPoligonos.Count; i++) { res.addPoligono(multPoligono(o.ListaPoligonos[i], m)); } return(res.ListaPoligonos); }
public Poligono multPoligono(Poligono p, Matriz m) { Poligono res = new Poligono(p.CentroPol); for (int i = 0; i < p.ListaPuntos.Count; i++) { res.addPunto(multPunto(p.ListaPuntos[i], m)); } return(res); }
private Matriz rotacion(float angulo) { Matriz m = identidad(); angulo = angulo * ((float)Math.PI / 180); m.setData((float)Math.Cos(angulo), 0, 0); m.setData((float)Math.Sin(angulo), 0, 1); m.setData(-(float)Math.Sin(angulo), 1, 0); m.setData((float)Math.Cos(angulo), 1, 1); return(m); }
private Matriz multMatriz(Matriz a, Matriz b) { Matriz res = new Matriz(); for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { for (int k = 0; k < 3; k++) { res.setData(res.getData(i, j) + a.getData(i, k) * b.getData(k, j), i, j); } } } return(res); }
public Transformacion() { matrix = new Matriz(); for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { if (i == j) { matrix.setData(1, i, j); } else { matrix.setData(0, i, j); } } } }
private Matriz identidad() { Matriz m = new Matriz(); for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { if (i == j) { m.setData(1, i, j); } else { m.setData(0, i, j); } } } return(m); }
public void rotar(float angulo) { matrix = multMatriz(matrix, rotacion(angulo)); }
public void escalar(float x, float y) { matrix = multMatriz(matrix, escalacion(x, y)); }
public void trasladar(float x, float y) { matrix = multMatriz(matrix, traslacion(x, y)); }
public void reflejarR() { matrix = multMatriz(matrix, reflexionR()); }