Beispiel #1
0
        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;
            }
        }
Beispiel #2
0
        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);
            }
        }
Beispiel #3
0
        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);
            }
        }
Beispiel #4
0
        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;
            }
        }
Beispiel #5
0
        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;
                }
            }
        }