private void picBoxPrincipal_MouseMove(object sender, MouseEventArgs e) { switch (e.Button) { case MouseButtons.Right: cont++; if (cont > 3) { Ponto p = new Ponto(); objeto.pontoCentral(p); Aplicacoes.transladar(-p.x, -p.y, -p.z, objeto); Aplicacoes.rotacionarZ(((e.Y - My) * 0.1) * (Math.PI / 180), objeto); Aplicacoes.transladar(p.x, p.y, p.z, objeto); desenharObjeto(bm, objeto); cont = 0; } break; case MouseButtons.Left: cont++; if (cont > 3) { Ponto p = new Ponto(); objeto.pontoCentral(p); Aplicacoes.transladar(-p.x, -p.y, -p.z, objeto); Aplicacoes.rotacionarX(((e.Y - My) * 0.1) * (Math.PI / 180), objeto); Aplicacoes.rotacionarY(((e.X - Mx) * 0.1) * (Math.PI / 180), objeto); Aplicacoes.transladar(p.x, p.y, p.z, objeto); desenharObjeto(bm, objeto); if (checkBoxVistas.Checked) { obS.pontoCentral(p); Aplicacoes.transladar(-p.x, -p.y, -p.z, obS); Aplicacoes.rotacionarZ(((e.Y - My) * 0.1) * (Math.PI / 180), obS); Aplicacoes.transladar(p.x, p.y, p.z, obS); desenharVista(bmS, obS); picBoxSuperior.Image = bmS; obF.pontoCentral(p); Aplicacoes.transladar(-p.x, -p.y, -p.z, obF); Aplicacoes.rotacionarY(((e.X - Mx) * 0.1) * (Math.PI / 180), obF); Aplicacoes.transladar(p.x, p.y, p.z, obF); desenharVista(bmF, obF); picBoxFrontal.Image = bmF; obL.pontoCentral(p); Aplicacoes.transladar(-p.x, -p.y, -p.z, obL); Aplicacoes.rotacionarX(((e.Y - My) * 0.1) * (Math.PI / 180), obL); Aplicacoes.transladar(p.x, p.y, p.z, obL); desenharVista(bmL, obL); picBoxLateral.Image = bmL; } cont = 0; } break; } }
private void rbCavaleira_CheckedChanged(object sender, EventArgs e) { if (rbCavaleira.Checked) { int tam = objeto.pontosAtuais.Count; int tam2 = objeto.faces.Count; Ponto p = new Ponto(); obP = new OBJ(); for (int i = 0; i < tam; i++) { obP.pontosAtuais.Add(objeto.pontosAtuais.ElementAt <Ponto>(i)); } for (int i = 0; i < tam2; i++) { obP.faces.Add(objeto.faces.ElementAt <Face>(i)); } Oaux = objeto; objeto = obP; obP.pontoCentral(p); Aplicacoes.transladar(-p.x, -p.y, -p.z, obP); Aplicacoes.projecaoCavaleira(obP); Aplicacoes.transladar(p.x, p.y, p.z, obP); desenharObjeto(bm, obP); } }
private void btnAbrirOBJ_Click(object sender, EventArgs e) { openFileDialog.FileName = ""; openFileDialog.Filter = "Object (*.obj)|*.obj"; if (openFileDialog.ShowDialog() == DialogResult.OK) { picBoxPrincipal.Image = bm; System.IO.StreamReader sr = new System.IO.StreamReader(openFileDialog.FileName); objeto = new OBJ(); Aplicacoes.AbrirOBJ(objeto, sr, cx, cy); sr.Close(); Ponto p = new Ponto(); objeto.pontoCentral(p); Aplicacoes.transladar(-p.x, -p.y, -p.z, objeto); Aplicacoes.rotacionarZ(Math.PI, objeto); Aplicacoes.transladar(p.x, p.y, p.z, objeto); desenharObjeto(bm, objeto); int tam; Aplicacoes.transladar(-p.x, -p.y, -p.z, objeto); Aplicacoes.escalar(0.66, 0.66, 0.66, objeto); Aplicacoes.transladar(p.x - cx + 101, p.y - cy + 95, p.z - (cx + cy) / 2 + (101 + 95) / 2, objeto); obF = new OBJ(); obS = new OBJ(); obL = new OBJ(); obF.faces = obS.faces = obL.faces = objeto.faces; tam = objeto.pontosOri.Count; for (int i = 0; i < tam; i++) { obF.pontosOri.Add(new Ponto(objeto.pontosAtuais.ElementAt <Ponto>(i))); obS.pontosOri.Add(new Ponto(objeto.pontosAtuais.ElementAt <Ponto>(i))); obL.pontosOri.Add(new Ponto(objeto.pontosAtuais.ElementAt <Ponto>(i))); obF.pontosAtuais.Add(new Ponto(objeto.pontosAtuais.ElementAt <Ponto>(i))); obS.pontosAtuais.Add(new Ponto(objeto.pontosAtuais.ElementAt <Ponto>(i))); obL.pontosAtuais.Add(new Ponto(objeto.pontosAtuais.ElementAt <Ponto>(i))); } Aplicacoes.transladar(-(p.x - cx + 101), -(p.y - cy + 95), -(p.z - (cx + cy) / 2 + (101 + 95) / 2), objeto); Aplicacoes.escalar(1.34, 1.34, 1.34, objeto); Aplicacoes.transladar(p.x, p.y, p.z, objeto); obS.pontoCentralOri(p); Aplicacoes.transladar(-p.x, -p.y, -p.z, obS); Aplicacoes.rotacionarX((90 * Math.PI) / 180, obS); Aplicacoes.transladar(p.x, p.y, p.z, obS); obL.pontoCentralOri(p); Aplicacoes.transladar(-p.x, -p.y, -p.z, obL); Aplicacoes.rotacionarY((90 * Math.PI) / 180, obL); Aplicacoes.transladar(p.x, p.y, p.z, obL); } }
private void picBoxPrincipal_MouseClick_1(object sender, MouseEventArgs e) { Ponto p = new Ponto(); Mx = e.X; My = e.Y; switch (e.Button) { case MouseButtons.Left: if (ModifierKeys == Keys.Control) { objeto.pontoCentral(p); Aplicacoes.transladar(e.X - p.x, e.Y - p.y, 0, objeto); } desenharObjeto(bm, objeto); break; } }
private void picBoxPrincial_MouseWheel(object sender, MouseEventArgs e) { Ponto p = new Ponto(); objeto.pontoCentral(p); if (e.Delta > 0) { Aplicacoes.transladar(-p.x, -p.y, -p.z, objeto); Aplicacoes.escalar(1.1, 1.1, 1.1, objeto); Aplicacoes.transladar(p.x, p.y, p.z, objeto); desenharObjeto(bm, objeto); if (checkBoxVistas.Checked) { obS.pontoCentral(p); Aplicacoes.transladar(-p.x, -p.y, -p.z, obS); Aplicacoes.escalar(1.1, 1.1, 1.1, obS); Aplicacoes.transladar(p.x, p.y, p.z, obS); desenharVista(bmS, obS); picBoxSuperior.Image = bmS; obF.pontoCentral(p); Aplicacoes.transladar(-p.x, -p.y, -p.z, obF); Aplicacoes.escalar(1.1, 1.1, 1.1, obF); Aplicacoes.transladar(p.x, p.y, p.z, obF); desenharVista(bmF, obF); picBoxFrontal.Image = bmF; obL.pontoCentral(p); Aplicacoes.transladar(-p.x, -p.y, -p.z, obL); Aplicacoes.escalar(1.1, 1.1, 1.1, obL); Aplicacoes.transladar(p.x, p.y, p.z, obL); desenharVista(bmL, obL); picBoxLateral.Image = bmL; } } else { Aplicacoes.transladar(-p.x, -p.y, -p.z, objeto); Aplicacoes.escalar(0.9, 0.9, 0.9, objeto); Aplicacoes.transladar(p.x, p.y, p.z, objeto); desenharObjeto(bm, objeto); if (checkBoxVistas.Checked) { obS.pontoCentral(p); Aplicacoes.transladar(-p.x, -p.y, -p.z, obS); Aplicacoes.escalar(0.9, 0.9, 0.9, obS); Aplicacoes.transladar(p.x, p.y, p.z, obS); desenharVista(bmS, obS); picBoxSuperior.Image = bmS; obF.pontoCentral(p); Aplicacoes.transladar(-p.x, -p.y, -p.z, obF); Aplicacoes.escalar(0.9, 0.9, 0.9, obF); Aplicacoes.transladar(p.x, p.y, p.z, obF); desenharVista(bmF, obF); picBoxFrontal.Image = bmF; obL.pontoCentral(p); Aplicacoes.transladar(-p.x, -p.y, -p.z, obL); Aplicacoes.escalar(0.9, 0.9, 0.9, obL); Aplicacoes.transladar(p.x, p.y, p.z, obL); desenharVista(bmL, obL); picBoxLateral.Image = bmL; } } }