Esempio n. 1
0
 /// <summary>
 ///
 /// REALIZA LA RESOLUCION PASO A PASO
 ///
 /// </summary>
 ///
 private void IniciarResolucion()
 {
     if (paso == 0)
     {
         // Mostrar panel de controles Zoom y desplazamiento
         this.pnZoom.Show();
         pnZoom.Location = new Point(EtiquetaFilas.Location.X, 400);
         btZoomMas.Show();
         btZoomMas.Click += btZoomMas_Click;
         btZoomMenos.Show();
         btZoomMenos.Click += btZoomMenos_Click;
         lbZoomtitulo.Show();
         btCentrar.Show();
         btCentrar.Click += btCentrar_Click;
         lbAjustar.Show();
         btDerecha.Show();
         btDerecha.Click += btDerecha_Click;
         btIzquierda.Show();
         btIzquierda.Click += btIzquierda_Click;
         btArriba.Show();
         btArriba.Click += btArriba_Click;
         btAbajo.Show();
         btAbajo.Click += btAbajo_Click;
         btAjustar.Show();
         btAjustar.Click += btAjustar_Click;
         lbAjustar.Show();
         lbDesplazamiento.Show();
         // Mostrar el area de la grafica
         grafica.Ventana.Show();
         // Mostrar los radioButton para elegir escala decimal o racional
         radioButton1.Show();
         radioButton1.Location = new Point(pnZoom.Location.X, pnZoom.Location.Y - radioButton1.Height - 5);
         radioButton1.Text     = "Escala racional";
         radioButton1.Checked  = true;
         radioButton1.Click   += radioButton1_Click;
         radioButton2.Show();
         radioButton2.Location = new Point(radioButton1.Location.X + radioButton1.Width + 5, radioButton1.Location.Y);
         radioButton2.Text     = "Escala decimal";
         radioButton2.Click   += radioButton2_Click;
         // Construir el complejo y mostrarlo en la etiqueta
         imaginario = new Imaginario(Racional.StringToRacional(tbFilas.Text), Racional.StringToRacional(tbcolumnas.Text));
         label1.Show();
         label1.BackColor = Color.SeaGreen;
         label1.Font      = EtiquetaFilas.Font;
         label1.Location  = new Point(EtiquetaFilas.Location.X, tbcolumnas.Location.Y + tbcolumnas.Height + 5);
         label1.Text      = "Número complejo introducido: ";
         label2.Show();
         label2.BackColor = Color.SeaGreen;
         label2.Font      = label1.Font;
         label2.Location  = new Point(label1.Location.X + label1.Width + 5, label1.Location.Y);
         label2.Text      = imaginario.ToString();
         // Mostrar la representacion grafica del complejo
         grafica.PintarLinea(new Punto(new Racional[] { 0, 0 }), new Punto(new Racional[] { imaginario.ParteReal, imaginario.ParteImaginaria }), Color.Chartreuse, 3, true);
         // Ocultar el boton defecto y mostrar el boton continuar
         btDefecto.Hide();
         btContinuar.Show();
         btContinuar.Location = new Point(EtiquetaFilas.Location.X, pnZoom.Location.Y + pnZoom.Height + 5);
         lbExplicacion.Text   = "En la gráfica se muestra la representación gráfica del complejo introducido. Esta representación se corresponde con la de un vector que vá del punto origen de coordenadas, al punto de coordenada 'X' igual a la parte real del complejo y coordenada 'Y' igual a la parte imaginaria del mismo.";
         lbExplicacion.Focus();
         btContinuar.Click += btContinuar_Click;
         if (directa)
         {
             btContinuar.PerformClick();
         }
     }
     else if (paso == 1)
     {
         lbExplicacion.Text = "El módulo de un número complejo, es igual al módulo del vector representado: ";
         label3.Show();
         label3.Font      = label2.Font;
         label3.BackColor = Color.Chartreuse;
         label3.Location  = new Point(label1.Location.X, label1.Location.Y + label1.Height + 5);
         if (!directa)
         {
             label3.Text = "Módulo = √(" + imaginario.ParteReal.ToString() + "^2 + " + imaginario.ParteImaginaria.ToString() + "^2 ) = " + (imaginario.Modulo).ToDouble().ToString();
         }
         if (directa)
         {
             label3.Text = "Módulo = " + (imaginario.Modulo).ToDouble().ToString();
             btContinuar.PerformClick();
         }
     }
     else if (paso == 2)
     {
         lbExplicacion.Text = "El llamado 'Argumento' de un número complejo, corresponde al ángulo que la representación gráfica del mismo forma con el eje de abcisas:";
         Racional radio = imaginario.Modulo / 2;
         grafica.PintarArco(new Punto(new Racional[] { 0, 0 }), radio, -0.05236D, imaginario.Argumento, Color.Red);
         grafica.Ventana.Invalidate();
         label4.Show();
         label4.Font      = label3.Font;
         label4.BackColor = Color.Chartreuse;
         label4.Location  = new Point(label3.Location.X, label3.Location.Y + label3.Height + 5);
         if (!directa)
         {
             label4.Text = "Argumento = Arcotangente de ( " + imaginario.ParteImaginaria.ToString() + " / " + imaginario.ParteReal.ToString() + " ) = " + imaginario.Argumento.ToString() + " rads";
         }
         if (directa)
         {
             label4.Text = "Argumento = " + imaginario.Argumento.ToString() + " rads";
             btContinuar.PerformClick();
         }
     }
     else if (paso == 3)
     {
         lbExplicacion.Text = "Con el módulo y el argumento, se puede definir tambien un número complejo. En esta definición llamada Polar, se pone primero el módulo del complejo seguido de su argumento ( normalmente en grados sexagesimales ).";
         label5.Show();
         double sexagesimal = imaginario.Argumento * (180D / Math.PI);
         label5.Show();
         label5.Location  = new Point(label4.Location.X, label4.Location.Y + label4.Height + 5);
         label5.Text      = "Forma polar del imaginario: " + Math.Round(imaginario.Modulo.ToDouble(), 2).ToString();
         label5.BackColor = Color.Transparent;
         label6.Show();
         label6.Location  = new Point(label5.Location.X + label5.Width, label5.Location.Y + label5.Height / 2 - 6);
         label6.Text      = Math.Round(sexagesimal, 2).ToString() + "º";
         label6.Font      = new Font("Dejavu Sans", 10);
         label6.BackColor = Color.Transparent;
         if (directa)
         {
             lbExplicacion.Hide();
         }
         btContinuar.Hide();
     }
 }