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; }
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; }