Ejemplo n.º 1
0
        public void SetPoligono(Object o)
        {
            this.p               = (Poligono)o;
            pictureBox1.Width    = Width - 15;
            pictureBox1.Height   = Height - 45;
            pictureBox1.Location = new Point(Location.X, Location.Y);
            image = new Bitmap(pictureBox1.Width, pictureBox1.Height);

            Point centro = p.Centro();
            Point min = p.MinPoint(), max = p.MaxPoint();

            p.Escala(((double)Width - 15) / (max.X - min.X), ((double)Height - 45) / (max.Y - min.Y));
            p.Translacao(-min.X, -min.Y);

            p.Draw(Color.Black, image);
            pictureBox1.Image = image;
        }
Ejemplo n.º 2
0
        private void BtTransformar_Click(object sender, EventArgs e)
        {
            p.Draw(white, image);
            string select = cbTransf.Text;
            double x = tbX.Text.Equals("") ? 0 : double.Parse(tbX.Text), y = tbY.Text.Equals("") ? 0 : double.Parse(tbY.Text);
            Point  ponto_aux = new Point();

            if (select.Equals("ScanLine"))
            {
                cdCor.ShowDialog();
                p.ScanLine(image, cdCor.Color);
            }
            else
            if (select.Equals("Translação"))
            {
                p.Translacao(x, y);
            }
            else if (select.Equals("Rotação"))
            {
                if (rbEixo.Checked)
                {
                    ponto_aux = p.Centro();
                }
                else if (rbPonto.Checked)
                {
                    ponto_aux = new Point(int.Parse(tbPFx.Text), int.Parse(tbPFy.Text));
                }
                if (rbEixo.Checked || rbPonto.Checked)
                {
                    p.Translacao(ponto_aux.X, ponto_aux.Y);
                }
                p.Rotacao(x * Math.PI / 180.0);
                if (rbEixo.Checked || rbPonto.Checked)
                {
                    p.Translacao(-ponto_aux.X, -ponto_aux.Y);
                }
            }
            else
            {
                if (rbEixo.Checked)
                {
                    ponto_aux = p.CentroAtual();
                }
                else if (rbPonto.Checked)
                {
                    ponto_aux = new Point(int.Parse(tbPFx.Text), int.Parse(tbPFy.Text));
                }

                if (rbEixo.Checked || rbPonto.Checked)
                {
                    p.Translacao(p.Centro().X, p.Centro().Y);
                }

                if (select.Equals("Escala"))
                {
                    p.Escala(x, y);
                }
                else if (select.Equals("Cisalhamento"))
                {
                    p.Cisalhamento(x, y);
                }
                else if (select.Equals("Espelhamento"))
                {
                    p.Espelhamento(x, y);
                }

                if (rbEixo.Checked || rbPonto.Checked)
                {
                    p.Translacao(-ponto_aux.X, -ponto_aux.Y);
                }
            }

            p.Draw(Color.Black, image);
            pbMain.Image = image;
        }