private void btnGraficar_Click(object sender, RoutedEventArgs e) { double tiempoInicial = double.Parse(txtTiempoInicial.Text); double tiempoFinal = double.Parse(txtTiempoFinal.Text); double frecMuestreo = double.Parse(txtFrecuenciaMuestreo.Text); Señal señal; Señal segundaSeñal; switch (cbTipoSeñal.SelectedIndex) { case 0: double amplitud = double.Parse(((ConfiguracionSenoidal)(panelConfiguracion.Children[0])).txtAmplitud.Text); double fase = double.Parse(((ConfiguracionSenoidal)(panelConfiguracion.Children[0])).txtFase.Text); double frecuencia = double.Parse(((ConfiguracionSenoidal)(panelConfiguracion.Children[0])).txtFrecuencia.Text); señal = new SenalSenoidal(amplitud, fase, frecuencia); break; case 1: señal = new SenalRampa(); break; case 2: double alpha = double.Parse(((ConfiguracionExponencial)(panelConfiguracion.Children[0])).txtAlpha.Text); señal = new SenalExponencial(alpha); break; default: señal = null; break; } switch (cbTipoSeñal_SegundaSeñal.SelectedIndex) { case 0: double amplitud = double.Parse(((ConfiguracionSenoidal)(panelConfiguracion_SegundaSeñal.Children[0])).txtAmplitud.Text); double fase = double.Parse(((ConfiguracionSenoidal)(panelConfiguracion_SegundaSeñal.Children[0])).txtFase.Text); double frecuencia = double.Parse(((ConfiguracionSenoidal)(panelConfiguracion_SegundaSeñal.Children[0])).txtFrecuencia.Text); segundaSeñal = new SenalSenoidal(amplitud, fase, frecuencia); break; case 1: segundaSeñal = new SenalRampa(); break; case 2: double alpha = double.Parse(((ConfiguracionExponencial)(panelConfiguracion_SegundaSeñal.Children[0])).txtAlpha.Text); segundaSeñal = new SenalExponencial(alpha); break; default: segundaSeñal = null; break; } señal.TiempoInicial = tiempoInicial; señal.TiempoFinal = tiempoFinal; señal.FrecuenciaMuestreo = frecMuestreo; //Segunda Señal segundaSeñal.TiempoInicial = tiempoInicial; segundaSeñal.TiempoFinal = tiempoFinal; segundaSeñal.FrecuenciaMuestreo = frecMuestreo; señal.construirSenalDigital(); //Escalar double factorEscala = double.Parse(txtFactorEscalaAmplitud.Text); señal.escalar(factorEscala); señal.actualizarAmplitudMaxima(); plnGrafica.Points.Clear(); if ((bool)cbEscalar.IsChecked) { señal.escalar(float.Parse(txtFactorEcalar.Text)) else if ((bool)cbDesplazar) { if (señal != null) { //Recorrer una colección o arreglo. foreach (Muestra muestra in señal.Muestra) { plnGrafica.Points.Add(new Point((muestra.X - tiempoInicial) * scrContenedor.Width, (muestra.Y / señal.AmplitudMaxima) * ((scrContenedor.Height / 2.0) - 30) * -1 + (scrContenedor.Height / 2))); } lblAmplitudMaximaY.Text = señal.AmplitudMaxima.ToString("F"); lblAmplitudMaximaY_Negativa.Text = "-" + señal.AmplitudMaxima.ToString("F"); } } }
private void btnGraficar_Click(object sender, RoutedEventArgs e) { double tiempoInicial = double.Parse(txtTiempoInicial.Text); double tiempoFinal = double.Parse(txtTiempoFinal.Text); double frecMuestreo = double.Parse(txtFrecMuestreo.Text); Senal senal; switch (cbTipoSenal.SelectedIndex) { case 0: double amplitud = double.Parse(((ConfiguracionSenoidal)(panelConfiguracion.Children[0])).txtAmplitud.Text); double fase = double.Parse(((ConfiguracionSenoidal)(panelConfiguracion.Children[0])).txtFase.Text); double frecuencia = double.Parse(((ConfiguracionSenoidal)(panelConfiguracion.Children[0])).txtFrecuencia.Text); senal = new SenalSenoidal(amplitud, fase, frecuencia); break; case 1: senal = new SenalRampa(); break; case 2: double alfa = double.Parse(((ConfiguracionExponencial)(panelConfiguracion.Children[0])).txtAlfa.Text); senal = new SenalExponencial(alfa); break; default: senal = null; break; } senal.TiempoInicial = tiempoInicial; senal.TiempoFinal = tiempoFinal; senal.FrecMuestreo = frecMuestreo; //Construye señal senal.construirSenalDigital(); //Escalar double factorEscala = double.Parse(txtFactorEscalaAmplitud.Text); senal.escalar(factorEscala); //Desplazar double factorDesplazar = double.Parse(txtFactorDesplazamiento.Text); senal.desplazar(factorDesplazar); senal.actualizarAmplitudMaxima(); //Truncar double factorTruncar = double.Parse(txtUmbral.Text); senal.truncar(factorTruncar); //Potencia double factorPotencia = double.Parse(txtPotencia.Text); senal.potencia(factorPotencia); //Limpia la gráfica plnGrafica.Points.Clear(); if (senal != null) { //Recorrer una colección o arreglo. foreach (Muestra muestra in senal.Muestras) { plnGrafica.Points.Add(new Point((muestra.x - tiempoInicial) * scrContenedor.Width, (muestra.y / senal.amplitudMaxima) * ((scrContenedor.Height / 2.0) - 30) * -1 + (scrContenedor.Height / 2))); } lblAmplitudMaximaY.Text = senal.amplitudMaxima.ToString(); lblAmplitudMaximaY_Negativa.Text = "-" + senal.amplitudMaxima.ToString(); } //Graficando el eje de X plnEjeX.Points.Clear(); //Punto de inicio. plnEjeX.Points.Add(new Point(0, (scrContenedor.Height / 2))); //Punto de fin. plnEjeX.Points.Add(new Point((tiempoFinal - tiempoInicial) * scrContenedor.Width, (scrContenedor.Height / 2))); //Graficando el eje de Y plnEjeY.Points.Clear(); //Punto de inicio. plnEjeY.Points.Add(new Point(0 - tiempoInicial * scrContenedor.Width, scrContenedor.Height)); //Punto de fin. plnEjeY.Points.Add(new Point(0 - tiempoInicial * scrContenedor.Width, scrContenedor.Height * -1)); }