private static void rectangulo(Info_forma inf, PictureBox pintura) { inf.g = Graphics.FromImage((Bitmap)pintura.Image); List <Point> rectangulo = new List <Point>(); // Se usan 4 listas para cada lado List <Point> lado_superior = Herramienta.calcular_lado(inf.po, inf.ancho_forma, "x"); List <Point> lado_izquierdo = Herramienta.calcular_lado(inf.po, inf.alto_forma, "y"); List <Point> lado_derecho = Herramienta.calcular_lado(new Point(inf.po.X + inf.ancho_forma * 100, inf.po.Y), inf.alto_forma, "y"); List <Point> lado_inferior = Herramienta.calcular_lado(new Point(inf.po.X, inf.po.Y + inf.alto_forma * 100), inf.ancho_forma, "x"); rectangulo.AddRange(lado_superior); rectangulo.AddRange(lado_derecho); lado_inferior.Reverse(); rectangulo.AddRange(lado_inferior); lado_izquierdo.Reverse(); rectangulo.AddRange(lado_izquierdo); //Elimino los puntos repetidos rectangulo = rectangulo.Distinct().ToList(); //Se dibuja la pared Pen borde = new Pen(Color.Black, inf.grosor_pared); rectangulo = Herramienta.rotar_puntos_figuras(rectangulo, inf.grados, inf.punto_medio); //Despues de rotar guardo los puntos en el objeto inf.contorno = rectangulo; inf.g.FillPolygon(Brocha, rectangulo.ToArray()); inf.g.DrawPolygon(borde, rectangulo.ToArray()); pintura.Refresh(); }