public void aplica(Transformada transformada) { foreach (Point3D ponto in this.getPontos()) { ponto.setValor(CgUtils.mult(ponto.getValor(), transformada.getDefinicao())); } }
public void configTransformada(float theta, float phi, float rho, float d) { this.theta = theta; this.phi = phi; this.rho = rho; this.d = d; t3d.setDefinicao(Transformada.Tv3D(theta, phi, rho)); CgUtils.show(t3d.getDefinicao()); }
//desenha a geometria passada por parametro private void desenhaGeometria(Geometria geometria) { //context.setColor(geometria.getCor()); foreach (Aresta aresta in geometria.getArestas()) { //aqui preciso de dois pontos após transformada de visualização Point3D p1 = new Point3D(CgUtils.mult(geometria.getPontos()[aresta.pInicial].getValor(), t3d.getDefinicao())); Point3D p2 = new Point3D(CgUtils.mult(geometria.getPontos()[aresta.pFinal].getValor(), t3d.getDefinicao())); panel1.CreateGraphics().DrawLine( new Pen(Brushes.Aqua), ix(-d * p1.getX() / p1.getZ()), iy(-d * p1.getY() / p1.getZ()), ix(-d * p2.getX() / p2.getZ()), iy(-d * p2.getY() / p2.getZ())); } }
static Transformada build(String[] dados) { Transformada transformada = new Transformada(); transformada.setId(dados[0]); transformada.setDefinicao(Transformada.identidade()); for (int i = 1; i < dados.GetLength(0); i++) { String[] parameters = dados[i].Split(' '); float[,] definicaoAtual = null; if (parameters[0] == "tt") { definicaoAtual = Transformada.Tt(Convert.ToSingle(parameters[1]), Convert.ToSingle(parameters[2]), Convert.ToSingle(parameters[3])); } else if (parameters[0] == "trz") { definicaoAtual = Transformada.TrZ(Convert.ToSingle(parameters[1])); } else if (parameters[0] == "trx") { definicaoAtual = Transformada.TrX(Convert.ToSingle(parameters[1])); } else if (parameters[0] == "try") { definicaoAtual = Transformada.TrY(Convert.ToSingle(parameters[1])); } else if (parameters[0] == "ts") { definicaoAtual = Transformada.Ts(Convert.ToSingle(parameters[1]), Convert.ToSingle(parameters[2]), Convert.ToSingle(parameters[3])); } transformada.setDefinicao(CgUtils.mult(transformada.getDefinicao(), definicaoAtual)); } return(transformada); }