public void Paint(Graphics e, List <PointF> PuntosTodosObjetos, float SX, float HeigthWindow, float Dx, float Dy, float Zoom, float XI)
        {
            CrearCoordenadasEscaladas(PuntosTodosObjetos, SX, HeigthWindow, Dx, Dy, Zoom, XI);
            this.SX = SX;
            SolidBrush BrushMoverEstribos = Recuadro_MoverBloqueEstribos.IsSelect ? BrushRecuadroMoverEstribosSelect : BrushRecuadroMoverEstribos;

            if (Recuadro_ModoEdicion.IsSelect)
            {
                e.DrawPolygon(PenBordeSeleccionado, Recuadro_ModoEdicion.Escaladas.ToArray());
                e.DrawPolygon(PenRecuadroMoverEstribos, Recuadro_MoverBloqueEstribos.Escaladas.ToArray());
                e.FillPolygon(BrushMoverEstribos, Recuadro_MoverBloqueEstribos.Escaladas.ToArray());


                e.DrawPolygon(PenRecuadroMoverEstribos, Recuadro_CambiarDireccionBloqueEstribos.Escaladas.ToArray());
                e.FillPolygon(BrushRecuadroMoverEstribos, Recuadro_CambiarDireccionBloqueEstribos.Escaladas.ToArray());
            }

            ListaEstribos.ForEach(E =>
            {
                e.DrawLine(PenEstribo, E.Coordenadas.Escaladas.First(), E.Coordenadas.Escaladas.Last());
            });

            float  TamanoLetra = Zoom > 0 ? 9 * Zoom : 1;
            Font   Font1       = new Font("Calibri", TamanoLetra, FontStyle.Bold);
            string Text        = ToString();
            SizeF  MessureText = e.MeasureString(Text, Font1);

            float Xmin = Recuadro_ModoEdicion.Escaladas.Min(y => y.X);
            float Xmax = Recuadro_ModoEdicion.Escaladas.Max(y => y.X);
            float Ymax = Recuadro_ModoEdicion.Escaladas.Min(y => y.Y);

            if (Recuadro_ModoEdicion.IsSelect)
            {
                Ymax -= MessureText.Height / 2;
            }
            PointF PointString = new PointF(Xmin + (Xmax - Xmin) / 2f - MessureText.Width / 2f, Ymax - MessureText.Height / 2);

            e.DrawString(Text, Font1, Brushes.Black, PointString);
        }
 private void CalcularPesoRefuerzoTransversal()
 {
     PesoTransversal = 0f;
     ListaEstribos.ForEach(y => PesoTransversal += y.Longitud * cDiccionarios.PesoBarras[noBarra]);
     Tendencia_Estribo_Origen.ActualizarRefuerzoTransversal();
 }
        private void CrearCoordenadasReales()
        {
            float Yi                       = YInicial();
            float DeltaHEstribo            = 0.2f;
            float W_Recuadro_MoverEstribos = 0.08f;
            float DeltaEstriboBorde        = 0.1f;

            if (direccionEstribo == eLadoDeZona.Derecha)
            {
                xf = xi + LongitudZonaEstribos;
            }
            else
            {
                xi = xf - LongitudZonaEstribos;
            }
            Recuadro_ModoEdicion.Reales = new List <PointF>()
            {
                new PointF(xi - DeltaEstriboBorde, Yi - DeltaHEstribo - DeltaEstriboBorde),
                new PointF(xi + LongitudZonaEstribos + DeltaEstriboBorde, Yi - DeltaHEstribo - DeltaEstriboBorde),
                new PointF(xi + LongitudZonaEstribos + DeltaEstriboBorde, Yi + DeltaHEstribo + DeltaEstriboBorde),
                new PointF(xi - DeltaEstriboBorde, Yi + DeltaHEstribo + DeltaEstriboBorde)
            };


            if (direccionEstribo == eLadoDeZona.Derecha)
            {
                Recuadro_MoverBloqueEstribos.Reales = new List <PointF>()
                {
                    new PointF(xi - DeltaEstriboBorde - W_Recuadro_MoverEstribos / 2f, Yi - DeltaHEstribo / 2f),
                    new PointF(xi - DeltaEstriboBorde + W_Recuadro_MoverEstribos / 2f, Yi - DeltaHEstribo / 2f),
                    new PointF(xi - DeltaEstriboBorde + W_Recuadro_MoverEstribos / 2f, Yi + DeltaHEstribo / 2f),
                    new PointF(xi - DeltaEstriboBorde - W_Recuadro_MoverEstribos / 2f, Yi + DeltaHEstribo / 2f)
                };
            }
            else
            {
                Recuadro_MoverBloqueEstribos.Reales = new List <PointF>()
                {
                    new PointF(xf + DeltaEstriboBorde + W_Recuadro_MoverEstribos / 2f, Yi - DeltaHEstribo / 2f),
                    new PointF(xf + DeltaEstriboBorde - W_Recuadro_MoverEstribos / 2f, Yi - DeltaHEstribo / 2f),
                    new PointF(xf + DeltaEstriboBorde - W_Recuadro_MoverEstribos / 2f, Yi + DeltaHEstribo / 2f),
                    new PointF(xf + DeltaEstriboBorde + W_Recuadro_MoverEstribos / 2f, Yi + DeltaHEstribo / 2f)
                };
            }

            if (direccionEstribo == eLadoDeZona.Derecha)
            {
                Recuadro_CambiarDireccionBloqueEstribos.Reales = new List <PointF>()
                {
                    new PointF(xf + DeltaEstriboBorde - W_Recuadro_MoverEstribos / 2f, Yi - DeltaEstriboBorde / 1.5f),
                    new PointF(xf + DeltaEstriboBorde + W_Recuadro_MoverEstribos / 1.5f, Yi),
                    new PointF(xf + DeltaEstriboBorde - W_Recuadro_MoverEstribos / 2f, Yi + DeltaEstriboBorde / 1.5f)
                };
            }
            else
            {
                Recuadro_CambiarDireccionBloqueEstribos.Reales = new List <PointF>()
                {
                    new PointF(xi - DeltaEstriboBorde + W_Recuadro_MoverEstribos / 2f, Yi - DeltaEstriboBorde / 1.5f),
                    new PointF(xi - DeltaEstriboBorde - W_Recuadro_MoverEstribos / 1.5f, Yi),
                    new PointF(xi - DeltaEstriboBorde + W_Recuadro_MoverEstribos / 2f, Yi + DeltaEstriboBorde / 1.5f)
                };
            }


            float deltaS = 0;

            ListaEstribos.Clear();
            for (int i = 0; i < cantidad; i++)
            {
                float x = xi + deltaS;
                if (i + 1 == cantidad && CoordXEstriboEstriboFinal != cVariables.ValueNull && direccionEstribo == eLadoDeZona.Derecha)
                {
                    x = CoordXEstriboEstriboFinal;
                }
                else if (i == 0 && CoordXEstriboEstriboFinal != cVariables.ValueNull && direccionEstribo == eLadoDeZona.Izquierda)
                {
                    x = CoordXEstriboEstriboFinal;
                }
                IElemento elemento = Tendencia_Estribo_Origen.Tendencia_Refuerzo_Origen.NervioOrigen.Lista_Elementos.First(y => y.IsVisibleCoordAutoCAD(x));
                cEstribo1 estribo1 = new cEstribo1(elemento, noBarra, noRamas, Tendencia_Estribo_Origen,
                                                   new cCoordenadas()
                {
                    Reales = new List <PointF>()
                    {
                        new PointF(x, Yi - DeltaHEstribo),
                        new PointF(x, Yi + DeltaHEstribo)
                    }
                });
                deltaS += separacion;
                ListaEstribos.Add(estribo1);
            }
            AsignarLimites();
            CalcularPesoRefuerzoTransversal();
        }