public void dezenhaPoligono(Matriz m) { int anterior = 1; for (int corrente = 3; corrente < m.matriz.Length; corrente = corrente + 2) { dezenhaLinha(Convert.ToInt32(m.matriz[anterior - 1]), Convert.ToInt32(m.matriz[anterior]), Convert.ToInt32(m.matriz[corrente - 1]), Convert.ToInt32(m.matriz[corrente])); anterior = corrente; } dezenhaLinha(Convert.ToInt32(m.matriz[anterior - 1]), Convert.ToInt32(m.matriz[anterior]), Convert.ToInt32(m.matriz[0]), Convert.ToInt32(m.matriz[1])); }
public Matriz ecalar(double e) { Matriz retorno = new Matriz(x, y); int i = 0; foreach (int r in matriz) { retorno.matriz[i] = matriz[i] * e; i++; } return(retorno); }
public Matriz sutracao(Matriz m) { if (x == m.x && y == m.y) { Matriz retorno = new Matriz(x, y); int i = 0; foreach (int r in matriz) { retorno.matriz[i] = matriz[i] - m.matriz[i]; i++; } return(retorno); } else { return(null); } }
public Matriz multiplicacao(Matriz multiplicando) { if (this.y != multiplicando.x) { return(null); } Matriz retorno = new Matriz(this.x, multiplicando.y); for (int i = 0; i < this.x; i++) { for (int j = 0; j < multiplicando.y; j++) { for (int z = 0; z < this.y; z++) { retorno.guardaPosicao(i, j, this.pegaPosicao(i, z) * multiplicando.pegaPosicao(z, j)); } } } return(retorno); }
public void b1_Click(Object Sender, EventArgs e) { Dezenheiro d = new Dezenheiro(g); d.dezenhaLinha(640, 0, 640, 719); d.dezenhaLinha(0, 360, 1279, 360); Matriz matriz = new Matriz(t1.Text); String matrizTextoTranslacao = ""; switch (((Button)Sender).Text) { case "+": for (int i = 0; i < matriz.x; i++) { matrizTextoTranslacao += t2.Text; } Matriz translacao = matriz.soma(new Matriz(matrizTextoTranslacao)); d.dezenhaPoligono(matriz); d.dezenhaPoligono(translacao); t3.Text = translacao.ToString(); break; case "*": Matriz escalar = matriz.ecalar(Double.Parse(t2.Text)); d.dezenhaPoligono(matriz); d.dezenhaPoligono(escalar); t3.Text = escalar.ToString(); break; case "r": Matriz rotacao = matriz.rotacao(Int32.Parse(t2.Text)); d.dezenhaPoligono(matriz); d.dezenhaPoligono(rotacao); t3.Text = rotacao.ToString(); break; } }