public ActionResult DeleteConfirmed(int id)
        {
            TipoCaso tipoCaso = db.TipoCasos.Find(id);

            db.TipoCasos.Remove(tipoCaso);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Exemple #2
0
        private void InicializaComboTipos()
        {
            Classes.Views.AgergarElijaOpcion(this.ddlTipoCaso);
            List <TipoCaso> Tipos = TipoCaso.List();

            foreach (TipoCaso t in Tipos)
            {
                this.ddlTipoCaso.Items.Add(new ListItem(t.Descripcion, t.Descripcion));
            }
        }
 public ActionResult Edit([Bind(Include = "IdTipoCaso,Descripcion")] TipoCaso tipoCaso)
 {
     if (ModelState.IsValid)
     {
         db.Entry(tipoCaso).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(tipoCaso));
 }
        public ActionResult Create([Bind(Include = "IdTipoCaso,Descripcion")] TipoCaso tipoCaso)
        {
            if (ModelState.IsValid)
            {
                db.TipoCasos.Add(tipoCaso);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(tipoCaso));
        }
        // GET: TiposCasos/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            TipoCaso tipoCaso = db.TipoCasos.Find(id);

            if (tipoCaso == null)
            {
                return(HttpNotFound());
            }
            return(View(tipoCaso));
        }
        //Para cada caso, grafico punto sobre el plano y grafico respuesta en un panel.
        private void GraficarCaso(double xPlano, double yPlano, int xContenedor, int yContenedor, TipoCaso tipoCaso)
        {
            //Agrego punto a la lista de puntos del plano complejo.
            LineItem curvaPuntos = zgPlanoComplejo.GraphPane.CurveList[0] as LineItem;
            IPointListEdit listaPuntosPlanoComplejo = curvaPuntos.Points as IPointListEdit;
            PointPair puntoPlano = new PointPair(xPlano, yPlano);
            listaPuntosPlanoComplejo.Add(puntoPlano);
            this.zgPlanoComplejo.Invalidate();

            //Defino panel, seteo sus propiedades, lo agrego al formulario y lo traigo al frente.
            PanelGraficaPunto panelGraficaPunto = new PanelGraficaPunto();
            panelGraficaPunto.PuntoPlano = puntoPlano;
            panelGraficaPunto.Size = new Size(tamanioPanel, tamanioPanel);
            panelGraficaPunto.Location = new Point(xContenedor - tamanioPanel / 2, yContenedor - tamanioPanel - 10);
            panelGraficaPunto.BorderStyle = BorderStyle.FixedSingle;
            this.Controls.Add(panelGraficaPunto);
            panelGraficaPunto.BringToFront();

            //Defino un ZedGraphControl, le agrego el evento Click, seteo sus propiedades y lo agrego al panel.
            ZedGraphControl zgGraficaPunto = new ZedGraphControl();
            zgGraficaPunto.Click += new EventHandler(zgGraficaPunto_Click);
            zgGraficaPunto.Dock = DockStyle.Fill;
            zgGraficaPunto.IsEnableWheelZoom = false;
            zgGraficaPunto.IsEnableHZoom = false;
            zgGraficaPunto.IsEnableVZoom = false;
            zgGraficaPunto.GraphPane.Title.IsVisible = false;
            zgGraficaPunto.GraphPane.XAxis.Title.Text = "";
            zgGraficaPunto.GraphPane.YAxis.Title.Text = "";
            panelGraficaPunto.Controls.Add(zgGraficaPunto);

            //Creo lista de puntos para agregar puntos a la gráfica del panel según cada caso.
            PointPairList listaPuntosGraficaPunto = new PointPairList();

            if (tipoCaso == TipoCaso.Caso1)
            {
                //Defino mínimo y máximo de la escala y el paso de la gráfica.
                zgGraficaPunto.GraphPane.XAxis.Scale.Min = 0;
                zgGraficaPunto.GraphPane.XAxis.Scale.Max = 4;
                zgGraficaPunto.GraphPane.YAxis.Scale.Min = 0;
                zgGraficaPunto.GraphPane.YAxis.Scale.Max = 1;
                zgGraficaPunto.GraphPane.XAxis.Scale.MinorStep = 0.4;
                zgGraficaPunto.GraphPane.XAxis.Scale.MajorStep = 0.4;
                zgGraficaPunto.GraphPane.YAxis.Scale.MinorStep = 0.1;
                zgGraficaPunto.GraphPane.YAxis.Scale.MajorStep = 0.1;

                for (int i = 0; i < cantPuntosGraficaPunto; i++)
                {
                    double t = (double)i * tamanioPaso;
                    double y = yImpulso1Orden(xPlano, t);
                    listaPuntosGraficaPunto.Add(t, y);
                }

                LineItem curvaRespuesta = zgGraficaPunto.GraphPane.AddCurve("", listaPuntosGraficaPunto, colorEstable, SymbolType.None);
                curvaRespuesta.Line.Width = grosorCurva;
            }
            else if (tipoCaso == TipoCaso.Caso2)
            {
                //Defino mínimo y máximo de la escala y el paso de la gráfica.
                zgGraficaPunto.GraphPane.XAxis.Scale.Min = 0;
                zgGraficaPunto.GraphPane.XAxis.Scale.Max = 4;
                zgGraficaPunto.GraphPane.YAxis.Scale.Min = 0;
                zgGraficaPunto.GraphPane.YAxis.Scale.Max = 100;
                zgGraficaPunto.GraphPane.XAxis.Scale.MinorStep = 0.4;
                zgGraficaPunto.GraphPane.XAxis.Scale.MajorStep = 0.4;
                zgGraficaPunto.GraphPane.YAxis.Scale.MinorStep = 10;
                zgGraficaPunto.GraphPane.YAxis.Scale.MajorStep = 10;

                for (int i = 0; i < cantPuntosGraficaPunto; i++)
                {
                    double t = (double)i * tamanioPaso;
                    double y = yImpulso1Orden(xPlano, t);
                    listaPuntosGraficaPunto.Add(t, y);
                }

                LineItem curvaRespuesta = zgGraficaPunto.GraphPane.AddCurve("", listaPuntosGraficaPunto, colorInestable, SymbolType.None);
                curvaRespuesta.Line.Width = grosorCurva;
            }
            else if (tipoCaso == TipoCaso.Caso6)
            {
                //Defino mínimo y máximo de la escala y el paso de la gráfica.
                zgGraficaPunto.GraphPane.XAxis.Scale.Min = 0;
                zgGraficaPunto.GraphPane.XAxis.Scale.Max = 4;
                zgGraficaPunto.GraphPane.YAxis.Scale.Min = 0;
                zgGraficaPunto.GraphPane.YAxis.Scale.Max = 2;
                zgGraficaPunto.GraphPane.XAxis.Scale.MinorStep = 0.4;
                zgGraficaPunto.GraphPane.XAxis.Scale.MajorStep = 0.4;
                zgGraficaPunto.GraphPane.YAxis.Scale.MinorStep = 0.2;
                zgGraficaPunto.GraphPane.YAxis.Scale.MajorStep = 0.2;

                for (int i = 0; i < cantPuntosGraficaPunto; i++)
                {
                    double t = (double)i * tamanioPaso;
                    double y = yImpulso1Orden(xPlano, t);
                    listaPuntosGraficaPunto.Add(t, y);
                }

                LineItem curvaRespuesta = zgGraficaPunto.GraphPane.AddCurve("", listaPuntosGraficaPunto, colorMarginalmenteEstable, SymbolType.None);
                curvaRespuesta.Line.Width = grosorCurva;
            }
            else if (tipoCaso == TipoCaso.Caso3)
            {
                //Defino mínimo y máximo de la escala y el paso de la gráfica.
                zgGraficaPunto.GraphPane.XAxis.Scale.Min = 0;
                zgGraficaPunto.GraphPane.XAxis.Scale.Max = 4;
                zgGraficaPunto.GraphPane.YAxis.Scale.Min = -3;
                zgGraficaPunto.GraphPane.YAxis.Scale.Max = 5;
                zgGraficaPunto.GraphPane.XAxis.Scale.MinorStep = 0.4;
                zgGraficaPunto.GraphPane.XAxis.Scale.MajorStep = 0.4;
                zgGraficaPunto.GraphPane.YAxis.Scale.MinorStep = 0.8;
                zgGraficaPunto.GraphPane.YAxis.Scale.MajorStep = 0.8;

                //Calculo omega (distancia del punto al origen de coordenadas) y psi.
                double omega = Math.Sqrt(xPlano * xPlano + yPlano * yPlano);
                double psi = Math.Abs(xPlano) / omega;

                for (int i = 0; i < cantPuntosGraficaPunto; i++)
                {
                    double t = (double)i * tamanioPaso;
                    double y = yImpulso2OrdenEstable(1 / omega, psi, t);
                    listaPuntosGraficaPunto.Add(t, y);
                }

                LineItem curvaRespuesta = zgGraficaPunto.GraphPane.AddCurve("", listaPuntosGraficaPunto, colorEstable, SymbolType.None);
                curvaRespuesta.Line.Width = grosorCurva;
            }
            else if (tipoCaso == TipoCaso.Caso4)
            {
                //Divido la coordenada x del punto por el extremo derecho de la escala del plano.
                //Lo que estoy haciendo en realidad es graficar entre 0 y 1 del eje real, ya que
                //de esta forma se visualizan gráficas inestables más adecuadas a los fines educativos.
                xPlano = xPlano / this.zgPlanoComplejo.GraphPane.XAxis.Scale.Max;

                //Calculo omega (distancia del punto al origen de coordenadas) y psi.
                double omega = Math.Sqrt(xPlano * xPlano + yPlano * yPlano);
                double psi = Math.Abs(xPlano) / omega;

                //Grafico respuesta impulso entre -rangoEjeYMax y +rangoEjeYMax.
                int rangoEjeYMax = 10000;
                int i = -1;
                do
                {
                    i++;
                    double t = (double)i * 0.01;
                    double y = yImpulso2OrdenInestable(1 / omega, psi, t);
                    listaPuntosGraficaPunto.Add(t, y);

                } while (listaPuntosGraficaPunto[listaPuntosGraficaPunto.Count - 1].Y > -rangoEjeYMax && listaPuntosGraficaPunto[listaPuntosGraficaPunto.Count - 1].Y < rangoEjeYMax);

                //Defino mínimo y máximo de la escala.
                zgGraficaPunto.GraphPane.XAxis.Scale.Min = 0;
                zgGraficaPunto.GraphPane.XAxis.Scale.Max = listaPuntosGraficaPunto[listaPuntosGraficaPunto.Count - 1].X;
                zgGraficaPunto.GraphPane.YAxis.Scale.Min = -rangoEjeYMax;
                zgGraficaPunto.GraphPane.YAxis.Scale.Max = rangoEjeYMax;

                //Defino el paso de la gráfica.
                double pasoX = Math.Round((zgGraficaPunto.GraphPane.XAxis.Scale.Max - zgGraficaPunto.GraphPane.XAxis.Scale.Min) / 10, 2);
                double pasoY = Math.Round((zgGraficaPunto.GraphPane.YAxis.Scale.Max - zgGraficaPunto.GraphPane.YAxis.Scale.Min) / 10, 2);
                zgGraficaPunto.GraphPane.XAxis.Scale.MinorStep = pasoX;
                zgGraficaPunto.GraphPane.XAxis.Scale.MajorStep = pasoX;
                zgGraficaPunto.GraphPane.YAxis.Scale.MinorStep = pasoY;
                zgGraficaPunto.GraphPane.YAxis.Scale.MajorStep = pasoY;

                LineItem curvaRespuesta = zgGraficaPunto.GraphPane.AddCurve("", listaPuntosGraficaPunto, colorInestable, SymbolType.None);
                curvaRespuesta.Line.Width = grosorCurva;
            }
            else if (tipoCaso == TipoCaso.Caso5)
            {
                //Defino mínimo y máximo de la escala y el paso de la gráfica.
                zgGraficaPunto.GraphPane.XAxis.Scale.Min = 0;
                zgGraficaPunto.GraphPane.XAxis.Scale.Max = 4;
                zgGraficaPunto.GraphPane.YAxis.Scale.Min = -4;
                zgGraficaPunto.GraphPane.YAxis.Scale.Max = 4;
                zgGraficaPunto.GraphPane.XAxis.Scale.MinorStep = 0.4;
                zgGraficaPunto.GraphPane.XAxis.Scale.MajorStep = 0.4;
                zgGraficaPunto.GraphPane.YAxis.Scale.MinorStep = 0.8;
                zgGraficaPunto.GraphPane.YAxis.Scale.MajorStep = 0.8;

                for (int i = 0; i < cantPuntosGraficaPunto; i++)
                {
                    double t = (double)i * tamanioPaso;
                    double y = yImpulso2OrdenMarginalmenteEstable(1 / Math.Abs(yPlano), t);
                    listaPuntosGraficaPunto.Add(t, y);
                }

                LineItem curvaRespuesta = zgGraficaPunto.GraphPane.AddCurve("", listaPuntosGraficaPunto, colorMarginalmenteEstable, SymbolType.None);
                curvaRespuesta.Line.Width = grosorCurva;
            }

            //Para los casos 3 y 5, controlo que entre la gráfica y la ajusto.
            if (tipoCaso == TipoCaso.Caso3 || tipoCaso == TipoCaso.Caso5)
            {
                //Calculo máximo y mínimo.
                double yMaximo = listaPuntosGraficaPunto[0].Y;
                double yMinimo = listaPuntosGraficaPunto[0].Y;

                foreach (PointPair punto in listaPuntosGraficaPunto)
                {
                    if (punto.Y > yMaximo)
                    {
                        yMaximo = punto.Y;
                    }
                    if (punto.Y < yMinimo)
                    {
                        yMinimo = punto.Y;
                    }
                }

                //Ajusto los valores de la escala Y para que entre la gráfica.
                if (yMaximo > zgGraficaPunto.GraphPane.YAxis.Scale.Max)
                {
                    zgGraficaPunto.GraphPane.YAxis.Scale.Max = yMaximo + 1;
                }
                if (yMinimo < zgGraficaPunto.GraphPane.YAxis.Scale.Min)
                {
                    zgGraficaPunto.GraphPane.YAxis.Scale.Min = yMinimo - 1;
                }

                double paso = Math.Round((zgGraficaPunto.GraphPane.YAxis.Scale.Max - zgGraficaPunto.GraphPane.YAxis.Scale.Min) / 10, 2);
                zgGraficaPunto.GraphPane.YAxis.Scale.MinorStep = paso;
                zgGraficaPunto.GraphPane.YAxis.Scale.MajorStep = paso;
            }

            zgGraficaPunto.Invalidate();
        }