private void btnGraficarRampa_Click(object sender, RoutedEventArgs e) { //todas las señales ocupan estas 3 double tiempoInicial = double.Parse(txtTiempoInicial.Text); double tiempoFinal = double.Parse(txtTiempoFinal.Text); double frecuenciaMuestreo = double.Parse(txtFrecuenciaMuestreo.Text); SeñalRampa señal = new SeñalRampa(); double periodoMuestreo = 1 / frecuenciaMuestreo; plnGrafica.Points.Clear(); for (double i = tiempoInicial; i <= tiempoFinal; i += periodoMuestreo) { double valorMuestra = señal.evaluar(i); señal.Muestras.Add(new Muestra(i, valorMuestra)); //Recorrer una coleccion o arreglo Aqui se agregan los puntos } //Recorrer una coleccion o arreglo Aqui se agregan los puntos foreach (Muestra muestra in señal.Muestras) { plnGrafica.Points.Add(new Point(muestra.X * scrContenedor.Width, (muestra.Y * ((scrContenedor.Height / 2.0) - 30) * -1) + (scrContenedor.Height / 2))); } }
private void btnGraficarRampa_Click(object sender, RoutedEventArgs e) { //tomar valores double tiempoInicial = double.Parse(txtTiempoInicial.Text); double tiempoFinal = double.Parse(txtTiempoFinal.Text); double frecuenciaMuestreo = double.Parse(txtFrecuenciaMuestreo.Text); //instancia SeñalRampa señal = new SeñalRampa(); //calcular periodomuestreo double periodoMuestreo = 1 / frecuenciaMuestreo; //limpiar puntos plnGrafica.Points.Clear(); //ciclo para conseguir las muestras for (double i = tiempoInicial; i <= tiempoFinal; i += periodoMuestreo) { double valorMuestra = señal.evaluar(i); señal.Muestras.Add(new Muestra(i, valorMuestra)); //se van añadiendo las muestras a las listas señal.Muestras.Add(new Muestra(i, valorMuestra)); } //ciclo para recorrer muestras foreach (Muestra muestra in señal.Muestras) { //se evalua la señal, luego se ajusta y de ahi se agrega el punto plnGrafica.Points.Add(new Point(muestra.X * scrContenedor.Width, (muestra.Y * ((scrContenedor.Height / 2) - 30) * -1) + (scrContenedor.Height / 2))); } }
private void btnGrficarRampa_Click(object sender, RoutedEventArgs e) { double tiempoInicial = double.Parse(txtTiempoInicial.Text); double tiempoFinal = double.Parse(txtTiempoFinal.Text); double frecuenciaMuestreo = double.Parse(txtFrecuenciaMuestreo.Text); SeñalRampa señal = new SeñalRampa(); double periodoMuestreo = 1 / frecuenciaMuestreo; plnGrafica.Points.Clear(); //borra los puntos for (double i = tiempoInicial; i <= tiempoFinal; i += periodoMuestreo) { double valorMuestra = señal.evaluar(i); señal.Muestras.Add(new Muestra(i, valorMuestra)); } foreach (Muestra muestra in señal.Muestras) { plnGrafica.Points.Add(new Point(muestra.X * scrContenedor.Width, muestra.Y * (((scrContenedor.Height / 2.0) - 30) * -1) + (scrContenedor.Height / 2))); } }
private void btnGraficarRampa_Click(object sender, RoutedEventArgs e) { double tiempoInicial = double.Parse(txtTiempoInicial.Text); double tiempoFinal = double.Parse(txtTiempoFinal.Text); double umbral = double.Parse(txtUmbral.Text); SeñalRampa rampa = new SeñalRampa(tiempoInicial, tiempoFinal, umbral); plnGrafica.Points.Clear(); for (double i = tiempoInicial; i <= tiempoFinal; i++) { double valorMuestra = rampa.evaluar(i); rampa.Muestras.Add(new Muestra(i, valorMuestra)); } foreach (Muestra muestra in rampa.Muestras) { plnGrafica.Points.Add(new Point(muestra.X * scrContenedor.Width, (muestra.Y * ((scrContenedor.Height / 2.0) - 30) * -1) + (scrContenedor.Height / 2))); } }
private void btnGraficar_Click(object sender, RoutedEventArgs e) { double tiempoInicial = double.Parse(txtTiempoInicial.Text); double tiempoFinal = double.Parse(txtTiempoFinal.Text); double frecuenciaMuestreo = double.Parse(txtFrecuenciaMuestreo.Text); double umbral = double.Parse(txtUmbral.Text); Señal señal; switch (cbTipoSeñal.SelectedIndex) { //Señal Senoidal case 0: double amplitud = double.Parse(((ConfiguracionSeñalSenoidal) panelConfiguracion.Children[0]).txtAmplitud.Text); double fase = double.Parse(((ConfiguracionSeñalSenoidal) panelConfiguracion.Children[0]).txtFase.Text); double frecuencia = double.Parse(((ConfiguracionSeñalSenoidal) panelConfiguracion.Children[0]).txtFrecuencia.Text); señal = new SeñalSenoidal(amplitud, fase, frecuencia, umbral); //constructor break; //Rampa case 1: señal = new SeñalRampa(); break; case 2: double alpha = double.Parse(((ConfiguracionSeñalExponencial) panelConfiguracion.Children[0]).txtAlpha.Text); señal = new SeñalExponencial(alpha, umbral); break; default: señal = null; break; } señal.TiempoInicial = tiempoInicial; señal.TiempoFinal = tiempoFinal; señal.FrecuenciaMuestreo = frecuenciaMuestreo; señal.construirSeñalDigital(); //Escalar double factorEscala = double.Parse(txtFactorEscalaAmplitud.Text); señal.escalar(factorEscala); //Desplazamiento double desplazar = double.Parse(txtDesplazamientoY.Text); señal.desplazarY(desplazar); //Truncar señal.truncar(umbral); //Potencia double potencia = double.Parse(txtPotencia.Text); señal.potenciar(potencia); señal.actualizarAmplitudMaxima(); plnGrafica.Points.Clear(); if (señal != null) { //Recorre todos los elementos de una coleccion o arreglo foreach (Muestra muestra in señal.Muestras) { 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(); lblAmplitudMaximaNegativaY.Text = "-" + señal.AmplitudMaxima.ToString(); } plnEjeX.Points.Clear(); //Punto del principio plnEjeX.Points.Add(new Point(0, (scrContenedor.Height / 2))); //Punto del final plnEjeX.Points.Add(new Point((tiempoFinal - tiempoInicial) * scrContenedor.Width, (scrContenedor.Height / 2))); plnEjeY.Points.Clear(); //Punto del principio plnEjeY.Points.Add(new Point((0 - tiempoInicial) * scrContenedor.Width, (señal.AmplitudMaxima * ((scrContenedor.Height / 2.0) - 30) * -1) + (scrContenedor.Height / 2))); //Punto del final plnEjeY.Points.Add(new Point((0 - tiempoInicial) * scrContenedor.Width, (-señal.AmplitudMaxima * ((scrContenedor.Height / 2.0) - 30) * -1) + (scrContenedor.Height / 2))); }
private void btnGraficar_Click(object sender, RoutedEventArgs e) { //para obtener el valor del text box se usa la propiedad .Text double tiempoInicial = double.Parse(txtTiempoInicial.Text); double tiempoFinal = double.Parse(txtTiempoFinal.Text); double frecuenciaMuestreo = double.Parse(txtFrecuenciaMuestreo.Text); //instancia de la clase señal senoidal Señal señal; switch (cbTipoSeñal.SelectedIndex) { //señal senoidal case 0: //el primer hijo del panel configuracion es la configuracion senoidal y es de otro tipo (ui collection)asi que se hace un casting y asi se puede acceder a sus propiedades, ademas como txtamplitud es tipo texto se usa parse //nota: los hijos son los elementos de los contenedores double amplitud = double.Parse(((ConfiguracionSeñalSenoidal)panelConfiguracion.Children[0]).txtAmplitud.Text); double fase = double.Parse(((ConfiguracionSeñalSenoidal)panelConfiguracion.Children[0]).txtFase.Text); double frecuencia = double.Parse(((ConfiguracionSeñalSenoidal)panelConfiguracion.Children[0]).txtFrecuencia.Text); señal = new SeñalSenoidal(amplitud, fase, frecuencia); break; //rampa case 1: señal = new SeñalRampa(); break; case 2: double alpha = double.Parse(((ConfiguracionSeñalExponencial)panelConfiguracion.Children[0]).txtAlpha.Text); señal = new SeñalExponencial(alpha); break; default: señal = null; break; } //se establecen los valores para la funcion señal.TiempoInicial = tiempoInicial; señal.TiempoFinal = tiempoFinal; señal.FrecuenciaMuestreo = frecuenciaMuestreo; //se ejecuta la funcion señal.construirSeñalDigital(); if ((bool)cbAmplitud.IsChecked) { //Escalar double factorEscala = double.Parse(txtFactorEscalaAmplitud.Text); señal.escalar(factorEscala); } if ((bool)cbDesplazar.IsChecked) { //Desplazar double factorDesplazar = double.Parse(txtFactorDesplazamiento.Text); señal.desplazar(factorDesplazar); } if ((bool)cbTruncar.IsChecked) { //Truncar double factorTruncar = double.Parse(txtFactorTruncar.Text); señal.truncar(factorTruncar); } if ((bool)cbExponente.IsChecked) { //Truncar double factorExponente = double.Parse(txtFactorExponente.Text); señal.exponente(factorExponente); } // limpiar la grafica plnGrafica.Points.Clear(); if (señal != null) { //recorrer una coleccion o arreglo //muestra toma el valor de señal.muestra en cada recorrido del ciclo foreach (Muestra muestra in señal.Muestras) { //se evalua la señal, luego se ajusta y de ahi se agrega el punto plnGrafica.Points.Add(new Point((muestra.X - tiempoInicial) * scrContenedor.Width, (muestra.Y / señal.AmplitudMaxima * ((scrContenedor.Height / 2) - 30) * -1) + (scrContenedor.Height / 2))); } //cambiar los valores de la etiqueta lblAmplitudMaximaPositivaY.Text = señal.AmplitudMaxima.ToString(); lblAmplitudMaximaNegativaY.Text = "-" + señal.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)); }
private void BtnGraficar_Click(object sender, RoutedEventArgs e) { double amplitud = double.Parse(txtAmplitud.Text); double fase = double.Parse(txtFase.Text); double frecuencia = double.Parse(txtFrecuencia.Text); double tiempoInicial = double.Parse(txtTiempoInicial.Text); double tiempoFinal = double.Parse(txtTiempoFinal.Text); double frecuenciaMuestreo = double.Parse(txtFrecuenciaMuestreo.Text); /*SeñalSenoidal señal = * new SeñalSenoidal(amplitud, * fase, frecuencia);*/ /*SeñalParabolica señal = * new SeñalParabolica();*/ SeñalRampa señal = new SeñalRampa(); double periodoMuestreo = 1.0 / frecuenciaMuestreo; double amplitudMaxima = 0.0; plnGrafica.Points.Clear(); for (double i = tiempoInicial; i <= tiempoFinal; i += periodoMuestreo) { double valorMuestra = señal.evaluar(i); if (Math.Abs(valorMuestra) > amplitudMaxima) { amplitudMaxima = Math.Abs(valorMuestra); } Muestra muestra = new Muestra(i, valorMuestra); señal.Muestras.Add(muestra); } foreach (Muestra muestra in señal.Muestras) { plnGrafica.Points.Add( adaptarCoordenadas(muestra.X, muestra.Y, tiempoInicial, amplitudMaxima) ); } lblLimiteSuperior.Text = amplitudMaxima.ToString(); lblLimiteInferior.Text = "-" + amplitudMaxima.ToString(); plnEjeX.Points.Clear(); plnEjeX.Points.Add( adaptarCoordenadas(tiempoInicial, 0.0, tiempoInicial, amplitudMaxima) ); plnEjeX.Points.Add( adaptarCoordenadas(tiempoFinal, 0.0, tiempoInicial, amplitudMaxima) ); plnEjeY.Points.Clear(); plnEjeY.Points.Add( adaptarCoordenadas(0.0, amplitudMaxima, tiempoInicial, amplitudMaxima)); plnEjeY.Points.Add( adaptarCoordenadas(0.0, -amplitudMaxima, tiempoInicial, amplitudMaxima)); }
private void btnGraficar_Click(object sender, RoutedEventArgs e) { double tiempoInicial = double.Parse(txtTiempoInicial.Text); double tiempoFinal = double.Parse(txtTiempoFinal.Text); double frecuenciaMuestreo = double.Parse(txtFrecuenciaMuestreo.Text); Señal señal; switch (cbTipoSeñal.SelectedIndex) { //Senoidal case 0: double amplitud = double.Parse(((ConfiguracionSeñalSenoidal)(panelConfiguracion.Children[0])).txtAmplitud.Text); double fase = double.Parse(((ConfiguracionSeñalSenoidal)(panelConfiguracion.Children[0])).txtFase.Text); double frecuencia = double.Parse(((ConfiguracionSeñalSenoidal)(panelConfiguracion.Children[0])).txtFrecuencia.Text); señal = new SeñalSenoidal(amplitud, fase, frecuencia); break; //Rampa case 1: señal = new SeñalRampa(); break; case 2: double alpha = double.Parse(((ConfiguracionSeñalExponencial)(panelConfiguracion.Children[0])).txtAlpha.Text); señal = new SeñalExponencial(alpha); break; default: señal = null; break; } señal.TiempoInicial = tiempoInicial; señal.TiempoFinal = tiempoFinal; señal.FrecuenciaMuestreo = frecuenciaMuestreo; señal.construirSeñalDigital(); //Escalar double FactorEscala = double.Parse(txtEscalaAmplitud.Text); señal.escalar(FactorEscala); double FactorDesplazarY = double.Parse(txtDesplazarY.Text); señal.desplazarY(FactorDesplazarY); // if ((bool)chTruncar.IsChecked) { //truncar float FactorUmbral = float.Parse(txtUmbral.Text); señal.truncar(FactorUmbral); } // // if ((bool)chPotencia.IsChecked) { //potencia float FactorPotencia = float.Parse(txtPotencia.Text); señal.potencia(FactorPotencia); } // señal.actualizarAmplitudMaxima(); plnGrafica.Points.Clear(); if (señal != null) { //Recorrer una coleccion o arreglo foreach (Muestra muestra in señal.Muestras) { 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(); lblAmplitudMaximaNegativaY.Text = "-" + señal.AmplitudMaxima.ToString(); } plnEjeX.Points.Clear(); //Punto del Principio plnEjeX.Points.Add(new Point(0, (scrContenedor.Height / 2))); //Punto del Fin plnEjeX.Points.Add(new Point(((tiempoFinal - tiempoInicial) * scrContenedor.Width), (scrContenedor.Height / 2))); //Punto del Principio plnEjeY.Points.Add(new Point(0 - tiempoInicial * scrContenedor.Width, scrContenedor.Height)); //Punto del Fin plnEjeY.Points.Add(new Point(0 - tiempoInicial * scrContenedor.Width, scrContenedor.Height * -1)); }
private void btnGraficar_Click(object sender, RoutedEventArgs e) { //CASTING = Convertir entre tipos de datos. double tiempoInicial = double.Parse(txtTiempoInicial.Text); double tiempoFinal = double.Parse(txtTiempoFinal.Text); double frecuenciaMuestreo = double.Parse(txtFrecuenciaMuestreo.Text); Señal señal; switch (cbTipoSeñal.SelectedIndex) { //Senoidal case 0: double amplitud = double.Parse( ((ConfiguracionSeñalSenoidal)panelConfiguracion.Children[0]).txtAmplitud.Text); double fase = double.Parse( ((ConfiguracionSeñalSenoidal)panelConfiguracion.Children[0]).txtFase.Text); double frecuencia = double.Parse( ((ConfiguracionSeñalSenoidal)panelConfiguracion.Children[0]).txtFrecuencia.Text); señal = new SeñalSenoidal(amplitud, fase, frecuencia); break; //Rampa case 1: señal = new SeñalRampa(); break; //Exponencial case 2: double alpha = double.Parse( ((SeñalExponencialConf)panelConfiguracion.Children[0]).txtAlpha.Text); señal = new SeñalExponencial2(alpha); break; default: señal = null; break; } //Establacer los valores que va usar la clase antes de que la llame. señal.TiempoInicial = tiempoInicial; señal.TiempoFinal = tiempoFinal; señal.FrecuenciaMuestreo = frecuenciaMuestreo; señal.construirSeñalDigital(); plnGrafica.Points.Clear(); if (señal != null) { //Recorrer una coleccion o arreglo, solo sirve cuando quieres recorrer todos los elementos. //Por cada iteracion se guardara un elemento conforme a la coleccion. (FOREACH) //Declarar la variable del tipo de dato que va recorrer foreach (Muestra muestra in señal.Muestras) { plnGrafica.Points.Add(new Point((muestra.X - tiempoInicial) * scrContenedor.Width, (muestra.Y / señal.AmplitudMaxima) * (((scrContenedor.Height / 2.0) - 30) * -1) + (scrContenedor.Height / 2)) ); } } //Eje X plnEjex.Points.Clear(); //Punto de Principio plnEjex.Points.Add(new Point(0, (scrContenedor.Height / 2))); //Punto del fin plnEjex.Points.Add(new Point((tiempoFinal - tiempoInicial) * scrContenedor.Width, (scrContenedor.Height / 2))); // //Eje Y plnEjey.Points.Clear(); //Punto de Principio plnEjey.Points.Add(new Point((0 - tiempoInicial) * scrContenedor.Width, señal.AmplitudMaxima * (((scrContenedor.Height / 2.0) - 30) * -1) + (scrContenedor.Height / 2))); //Punto del fin plnEjey.Points.Add(new Point((0 - tiempoInicial) * scrContenedor.Width, -señal.AmplitudMaxima * (((scrContenedor.Height / 2.0) - 30) * -1) + (scrContenedor.Height / 2))); // lblAmplitudMaximaY.Text = señal.AmplitudMaxima.ToString(); lblAmplitudMazimaNegativaY.Text = "-" + señal.AmplitudMaxima.ToString(); }
private void BotonGraficar_Click(object sender, RoutedEventArgs e) { double tiempoInicial = double.Parse(txt_TiempoInicial.Text); double tiempoFinal = double.Parse(txt_TiempoFinal.Text); double frecuenciaMuestreo = double.Parse(txt_FrecuenciaDeMuestreo.Text); Señal señal; switch (cb_TipoSeñal.SelectedIndex) { // Señal Senoidal case 0: double amplitud = double.Parse(((ConfiguracionSeñalSenoidal)(panelConfiguracion.Children[0])).txt_Amplitud.Text); double fase = double.Parse(((ConfiguracionSeñalSenoidal)(panelConfiguracion.Children[0])).txt_Fase.Text); double frecuencia = double.Parse(((ConfiguracionSeñalSenoidal)(panelConfiguracion.Children[0])).txt_Frecuencia.Text); señal = new SeñalSenoidal(amplitud, fase, frecuencia); break; // Señal Rampa case 1: señal = new SeñalRampa(); break; // Señal Exponencial case 2: double alpha = double.Parse(((ConfiguracionSeñalExponencial)(panelConfiguracion.Children[0])).txt_Alpha.Text); señal = new SeñalExponencial(alpha); break; default: señal = null; break; } señal.TiempoInicial = tiempoInicial; señal.TiempoFinal = tiempoFinal; señal.FrecuenciaMuestreo = frecuenciaMuestreo; señal.construirSeñalDigital(); // Escalar if ((bool)ckb_Escala.IsChecked) { double factorEscala = double.Parse(txt_EscalaAmplitud.Text); señal.escalar(factorEscala); } // Desplazar if ((bool)ckb_Desplazamiento.IsChecked) { double factorDesplazamiento = double.Parse(txt_Desplazamiento.Text); señal.desplazar(factorDesplazamiento); } // Truncar if ((bool)ckb_Truncado.IsChecked) { double n = double.Parse(txt_Truncado.Text); señal.truncar(n); } // Potenciar if ((bool)ckb_Potencia.IsChecked) { double n = Math.Abs(double.Parse(txt_Potencia.Text)); señal.potenciar(n); } // Actualizar señal.actualizarAmplitudMaxima(); plnGrafica.Points.Clear(); if (señal != null) { // Sirve para recorrer una coleccion o arreglo foreach (Muestra muestra in señal.Muestras) { plnGrafica.Points.Add(new Point((muestra.X - tiempoInicial) * scrContenedor.Width, (muestra.Y / señal.AmplitudMaxima * ((scrContenedor.Height / 2) - 30) * -1 + (scrContenedor.Height / 2)))); } lbl_AmplitudMaxima.Text = señal.AmplitudMaxima.ToString(); lbl_AmplitudMinima.Text = "-" + señal.AmplitudMaxima.ToString(); } // Línea del Eje X plnEjeX.Points.Clear(); plnEjeX.Points.Add(new Point(0, scrContenedor.Height / 2)); plnEjeX.Points.Add(new Point((tiempoFinal - tiempoInicial) * scrContenedor.Width, scrContenedor.Height / 2)); // Línea del Eje Y plnEjeY.Points.Clear(); plnEjeY.Points.Add(new Point((-tiempoInicial) * scrContenedor.Width, 0)); plnEjeY.Points.Add(new Point((-tiempoInicial) * scrContenedor.Width, scrContenedor.Height)); }
private void btnGraficar_Click(object sender, RoutedEventArgs e) { double tiempoInicial = double.Parse(txtTiempoInicial.Text); double tiempoFinal = double.Parse(txtTiempoFinal.Text); double frecuenciaMuestreo = double.Parse(txtFrecuenciaMuestreo.Text); Señal señal; switch (cbTipoSeñal.SelectedIndex) { //Senoidal case 0: double amplitud = double.Parse( ((ConfiguracionSeñalSenoidal)panelConfiguracion.Children[0]).txtAmplitud.Text); double fase = double.Parse( ((ConfiguracionSeñalSenoidal)panelConfiguracion.Children[0]).txtFase.Text); double frecuencia = double.Parse( ((ConfiguracionSeñalSenoidal)panelConfiguracion.Children[0]).txtFrecuencia.Text); señal = new SeñalSenoidal(amplitud, fase, frecuencia); break; //Rampa case 1: señal = new SeñalRampa(); break; case 2: double alpha = double.Parse( ((ConfiguracionSeñalExponencial)panelConfiguracion.Children[0]).txtAlpha.Text); señal = new SeñalExponencial(alpha); break; default: señal = null; break; } //Establacer los valores que va usar la clase antes de que la llame. señal.TiempoInicial = tiempoInicial; señal.TiempoFinal = tiempoFinal; señal.FrecuenciaMuestreo = frecuenciaMuestreo; señal.construirSeñalDigital(); plnGrafica.Points.Clear(); //Escalar double factorEscala = double.Parse(txtfactorEscalaAmplitud.Text); if (checkboxEscalaAmplitud.IsChecked == true) { señal.escalar(factorEscala); } else if (checkboxEscalaAmplitud.IsChecked == false) { factorEscala = 1; señal.escalar(factorEscala); } //Desplazar double desplazamientoValor = double.Parse(txtDesplazamientoEnY.Text); if (checkboxDesplazamientoY.IsChecked == true) { señal.desplazar(desplazamientoValor); } else if (checkboxDesplazamientoY.IsChecked == false) { desplazamientoValor = 0; señal.desplazar(desplazamientoValor); } //Truncar if (checkboxUmbral.IsChecked == true) { double umbralValor = double.Parse(txtUmbral.Text); señal.truncar(umbralValor); } //Potencia if (checkboxPotencia.IsChecked == true) { double potenciaValor = double.Parse(txtPotencia.Text); señal.potencia(potenciaValor); } //Amplitud señal.actualizarAmplitudMaxima(); if (señal != null) { //Recorrer una coleccion o arreglo, solo sirve cuando quieres recorrer todos los elementos. //Por cada iteracion se guardara un elemento conforme a la coleccion. (FOREACH) //Declarar la variable del tipo de dato que va recorrer foreach (Muestra muestra in señal.Muestras) { plnGrafica.Points.Add(new Point((muestra.X - tiempoInicial) * scrContenedor.Width, (muestra.Y / señal.AmplitudMaxima) * (((scrContenedor.Height / 2.0) - 30) * -1) + (scrContenedor.Height / 2)) ); } } //EJE X plnEjex.Points.Clear(); //Punto de Principio plnEjex.Points.Add(new Point(0, (scrContenedor.Height / 2))); //Punto del fin plnEjex.Points.Add(new Point((tiempoFinal - tiempoInicial) * scrContenedor.Width, (scrContenedor.Height / 2))); // //EJE Y plnEjey.Points.Clear(); //Punto de Principio plnEjey.Points.Add(new Point((0 - tiempoInicial) * scrContenedor.Width, señal.AmplitudMaxima * (((scrContenedor.Height / 2.0) - 30) * -1) + (scrContenedor.Height / 2))); //Punto del fin plnEjey.Points.Add(new Point((0 - tiempoInicial) * scrContenedor.Width, -señal.AmplitudMaxima * (((scrContenedor.Height / 2.0) - 30) * -1) + (scrContenedor.Height / 2))); // lblAmplitudMaximaY.Text = señal.AmplitudMaxima.ToString(); lblAmplitudMazimaNegativaY.Text = "-" + señal.AmplitudMaxima.ToString(); }
private void BotonGraficar_Click(object sender, RoutedEventArgs e) { double tiempoInicial = double.Parse(txt_TiempoInicial.Text); double tiempoFinal = double.Parse(txt_TiempoFinal.Text); double frecuenciaMuestreo = double.Parse(txt_FrecuenciaDeMuestreo.Text); Señal señal; switch (cb_TipoSeñal.SelectedIndex) { // Señal Senoidal case 0: double amplitud = double.Parse( ((ConfiguracionSeñalSenoidal) (panelConfiguracion.Children[0])).txt_Amplitud.Text ); double fase = double.Parse( ((ConfiguracionSeñalSenoidal) (panelConfiguracion.Children[0])).txt_Fase.Text ); double frecuencia = double.Parse( ((ConfiguracionSeñalSenoidal) (panelConfiguracion.Children[0])).txt_Frecuencia.Text ); señal = new SeñalSenoidal(5, 0, 8); break; // Señal Rampa case 1: señal = new SeñalRampa(); break; case 2: double Alpha = double.Parse( ((ConfiguracionSeñalExponencial) (panelConfiguracion.Children[0])).txt_Alpha.Text ); señal = new SeñalExponencial(Alpha); break; // Señal xxxxx /* case 2: * señal = new Señalyyyyy(); * break; */ default: señal = null; break; } señal.TiempoInicial = tiempoInicial; señal.TiempoFinal = tiempoFinal; señal.FrecuenciaMuestreo = frecuenciaMuestreo; señal.construirSeñalDigital(); plnGrafica.Points.Clear(); if (señal != null) { // Sirve para recorrer una coleccion o arreglo foreach (Muestra muestra in señal.Muestras) { plnGrafica.Points.Add(new Point((muestra.X - tiempoInicial) * scrContenedor.Width, (muestra.Y / señal.AmplitudMaxima * ((scrContenedor.Height / 2) - 30) * -1 + (scrContenedor.Height / 2)))); } lbl_AmplitudMaxima.Text = señal.AmplitudMaxima.ToString(); lbl_AmplitudMinima.Text = "-" + señal.AmplitudMaxima.ToString(); } // Línea del Eje X plnEjeX.Points.Clear(); plnEjeX.Points.Add(new Point(0, scrContenedor.Height / 2)); plnEjeX.Points.Add(new Point((tiempoFinal - tiempoInicial) * scrContenedor.Width, scrContenedor.Height / 2)); // Línea del Eje Y plnEjeY.Points.Clear(); plnEjeY.Points.Add(new Point((-tiempoInicial) * scrContenedor.Width, 0)); plnEjeY.Points.Add(new Point((-tiempoInicial) * scrContenedor.Width, scrContenedor.Height)); }