private void Button7_Click(object sender, EventArgs e) { radioButton4.Enabled = true; radioButton4.Checked = true; radioButton1.Checked = radioButton2.Checked = radioButton3.Checked = false; modo = Modo.Conjunto; List <MyRectangle> rectangulos = new List <MyRectangle>(); foreach (var elemento in listBox2.Items) { var figura = diccionariofiguras[elemento.ToString()]; if (figura is FiguraDibujable) { var dibujable = (FiguraDibujable)figura; var rectangulo = dibujable.GenerarRectanguloAsociado(); rectangulos.Add(rectangulo); } if (figura is Conjunto) { var conj = (Conjunto)figura; foreach (FiguraDibujable fig in conj.figuras) { var dibujable = (FiguraDibujable)fig; var rectangulo = dibujable.GenerarRectanguloAsociado(); rectangulos.Add(rectangulo); } } } var sk = new Skyline(pictureBox1.Size.Width, pictureBox1.Height); var result = sk.Run(rectangulos); if (result.Item1) { var varios = new Conjunto(result.Item2); figurasadibujar = varios.figuras; pictureBox1.Refresh(); } else { figurasadibujar = new List <Figura>(); pictureBox1.Refresh(); } return; }
private void PictureBox2_Paint(object sender, PaintEventArgs e) { if (elementolistBox != null && diccionariofiguras.ContainsKey(elementolistBox)) { e.Graphics.Clear(Color.White); var figura = diccionariofiguras[elementolistBox]; if (figura.modo == Modo.Poligono) { var poligono = figura as Poligono; var puntospequenos = TransformaEscalaAPequeña(poligono.puntos); PintarPolígono(puntospequenos, e, figura.color); } else if (figura.modo == Modo.Elipse) { var elipse = figura as Elipse; var puntospequenos = TransformaEscalaAPequeña(elipse.puntos); PintarElipse(puntospequenos, e, figura.color); } else if (figura.modo == Modo.Regular) { var elipse = figura as Regular; var puntospequenos = TransformaEscalaAPequeña(elipse.puntos); PintarRegular(puntospequenos, e, figura.color); } else { var conjunto = figura as Conjunto; var conjunto2 = new List <FiguraDibujable>(); for (int i = 0; i < conjunto.figuras.Count; i++) { var fig = conjunto.figuras[i] as FiguraDibujable; var puntospequeños = TransformaEscalaAPequeña(fig.puntos); FiguraDibujable fig2; if (fig is Elipse) { fig2 = new Elipse(puntospequeños); } else if (fig is Poligono) { fig2 = new Poligono(puntospequeños); } else { fig2 = new Regular(puntospequeños); } fig2.color = fig.color; conjunto2.Add(fig2); } List <MyRectangle> rectangulos = new List <MyRectangle>(); foreach (var fig in conjunto2) { if (fig is FiguraDibujable) { var dibujable = (FiguraDibujable)fig; var rectangulo = dibujable.GenerarRectanguloAsociado(); rectangulos.Add(rectangulo); } } var sk = new Skyline(pictureBox2.Size.Width, pictureBox2.Height); var result = sk.Run(rectangulos); if (result.Item1) { var varios = new Conjunto(result.Item2); figurasadibujar2 = varios.figuras; PintarVarias(varios.figuras, e); } return; } } }