private void btnRampa_Click(object sender, RoutedEventArgs e) { double tiempoInicial = double.Parse(txtTiempoInicial.Text); double tiempoFinal = double.Parse(txtTiempoFinal.Text); double frecuenciaMuestreo = double.Parse(txtMuestreo.Text); Rampa Rampa = new Rampa(); plnGrafica.Points.Clear(); double periodoMuestreo = 1 / frecuenciaMuestreo; for (double i = tiempoInicial; i <= tiempoFinal; i += periodoMuestreo) { double valorMuestra = Rampa.evaluar(i); if (Math.Abs(valorMuestra) > Rampa.AmplitudMaxima) { Rampa.AmplitudMaxima = Math.Abs(valorMuestra); } Rampa.Muestras.Add(new Muestra(i, valorMuestra)); } //Recorrer una colección o arreglo //La variable muestra guarda cada elemento de la colección de: señal.Muestra foreach (Muestra muestra in Rampa.Muestras) { plnGrafica.Points.Add(new Point(muestra.X * Scroll.Width, (muestra.Y * ((Scroll.Height / 2)) - 30) * -1 + (Scroll.Height / 2))); } }
private void Graficar_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(txtTiempo_Inicial.Text); double tiempofinal = double.Parse(txtTiempo_Final.Text); double frecuenciamuestreo = double.Parse(txtFrecuenciaMuestreo.Text); /* senoidal = new SeñalSenoidal(amplitud, fase, frecuencia);*/ /*SeñalParabolica parabolica = new SeñalParabolica();*/ //SeñalSigno signo = new SeñalSigno();// Rampa rampa = new Rampa(); double periodoMuestreo = 1.0 / frecuenciamuestreo; double amplitudMaxima = 0.0; plnGrafica.Points.Clear(); for (double i = tiempoinicial; i <= tiempofinal; i += periodoMuestreo) { double valorMuestra = rampa.evaluar(i); if (Math.Abs(valorMuestra) >= amplitudMaxima) { amplitudMaxima = Math.Abs(valorMuestra); } Muestra muestra = new Muestra(i, valorMuestra); rampa.muestras.Add(muestra); } foreach (Muestra muestra1 in rampa.muestras) { plnGrafica.Points.Add(adaptarCoordenadas(muestra1.X, muestra1.Y, tiempoinicial, amplitudMaxima)); } lblLimiteSuperior.Text = amplitudMaxima.ToString(); lblLimiteInferior.Text = "-" + amplitudMaxima.ToString(); pnlEjeX.Points.Clear(); pnlEjeX.Points.Add(adaptarCoordenadas(tiempoinicial, 0.0, tiempoinicial, amplitudMaxima)); pnlEjeX.Points.Add(adaptarCoordenadas(tiempofinal, 0.0, tiempoinicial, amplitudMaxima)); pnlEjeY.Points.Clear(); pnlEjeY.Points.Add(adaptarCoordenadas(0.0, amplitudMaxima, tiempoinicial, amplitudMaxima)); pnlEjeY.Points.Add(adaptarCoordenadas(0.0, -amplitudMaxima, tiempoinicial, amplitudMaxima)); }
private void btnGraficarRampa_Click(object sender, RoutedEventArgs e) { double tiempoInicial = double.Parse(txtTiempoInicial.Text); double tiempoFinal = double.Parse(txtTiempoFinal.Text); double frecuenciaMuestreo = double.Parse(txtFrecuenciaMuestreo.Text); Rampa rampa = new Rampa(); plnGrafica.Points.Clear(); double periodoMuestro = 1 / frecuenciaMuestreo; for (double i = tiempoInicial; i <= tiempoFinal; i += periodoMuestro) { 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 Muestreo = double.Parse(txtMuestreo.Text); Señal senal; Señal segundasenal; switch (cbTipoSeñal.SelectedIndex) { // Senoidal case 0: double Amplitud = double.Parse(((ConfiguracionSenalSenoidal)PanelConfiguracion.Children[0]).txtAmplitud.Text); double Fase = double.Parse(((ConfiguracionSenalSenoidal)PanelConfiguracion.Children[0]).txtFase1.Text); double Frecuencia = double.Parse(((ConfiguracionSenalSenoidal)PanelConfiguracion.Children[0]).txtFrecuencia.Text); senal = new SenalSenoidal(Amplitud, Fase, Frecuencia); break; case 1: senal = new Rampa(); break; case 2: double Alpha = double.Parse(((ConfiguracionExponencial)PanelConfiguracion.Children[0]).txtAlpha.Text); senal = new Exponencial(Alpha); break; default: senal = null; break; } // SWITCH 2 switch (cbTipoSeñal.SelectedIndex) { // Senoidal case 0: double Amplitud = double.Parse(((ConfiguracionSenalSenoidal)PanelConfiguracion2.Children[0]).txtAmplitud.Text); double Fase = double.Parse(((ConfiguracionSenalSenoidal)PanelConfiguracion2.Children[0]).txtFase1.Text); double Frecuencia = double.Parse(((ConfiguracionSenalSenoidal)PanelConfiguracion2.Children[0]).txtFrecuencia.Text); segundasenal = new SenalSenoidal(Amplitud, Fase, Frecuencia); break; case 1: segundasenal = new Rampa(); break; case 2: double Alpha = double.Parse(((ConfiguracionExponencial)PanelConfiguracion2.Children[0]).txtAlpha.Text); segundasenal = new Exponencial(Alpha); break; default: segundasenal = null; break; } senal.TiempoInicial = TiempoInicial; senal.TiempoFinal = TiempoFinal; senal.FrecuenciaMuestreo = Muestreo; // segunda señal segundasenal.TiempoInicial = TiempoInicial; segundasenal.TiempoFinal = TiempoFinal; segundasenal.FrecuenciaMuestreo = Muestreo; senal.ConstruirSeñalDigital(); segundasenal.ConstruirSeñalDigital(); // Truncar if ((bool)CheckUmbral.IsChecked) { double n = double.Parse(txtUmbral.Text); senal.Truncar(n); } // Escalar if ((bool)CheckEscalar.IsChecked) { double factorEscala = double.Parse(txtAmplitud.Text); senal.escalar(factorEscala); } // Desplazar. if ((bool)CheckDesplazamiento.IsChecked) { double factorDesplazamiento = double.Parse(txtDesplazamiento.Text); senal.desplazar(factorDesplazamiento); senal.actualizarAmplitudMaxima(); } // Truncar2 if ((bool)CheckUmbral2.IsChecked) { double n = double.Parse(txtUmbral1.Text); senal.Truncar(n); } // Escalar2 if ((bool)CheckEscalar2.IsChecked) { double factorEscala = double.Parse(txtAmplitud.Text); senal.escalar(factorEscala); } // Desplazar2. if ((bool)CheckDesplazamiento2.IsChecked) { double factorDesplazamiento = double.Parse(txtDesplazamiento2.Text); senal.desplazar(factorDesplazamiento); senal.actualizarAmplitudMaxima(); } plnGrafica.Points.Clear(); if (senal != null) { // Recorrer una coleccion o arreglo foreach (Muestra muestra in senal.muestras) { plnGrafica.Points.Add(new Point((muestra.X - TiempoInicial) * Scroll.Width, (muestra.Y / senal.AmplitudMaxima * ((Scroll.Height / 2) - 30) * -1 + (Scroll.Height / 2)))); } } plnEjeX.Points.Clear(); // Punto de inicio plnEjeX.Points.Add(new Point(0, (Scroll.Height / 2))); // Punto final. plnEjeX.Points.Add(new Point((TiempoFinal - TiempoInicial) * Scroll.Width, (Scroll.Height / 2))); lblAmplitudMaximaPositiva.Text = senal.AmplitudMaxima.ToString("F"); lblAmplitudMaximaNegativa.Text = " - " + senal.AmplitudMaxima.ToString("F"); }
private void graficar_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) { //Seniodal 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 Rampa(); break; // Exponencial case 2: double alpha = double.Parse(((ConfiguracionSeñalExponencial)panelConfiguracion.Children[0]).txtAlpha.Text); señal = new SeñalExponencial(alpha); break; // Exponencial2 case 3: double alpha2 = double.Parse(((ConfiguracionSeñalExponencial2)panelConfiguracion.Children[0]).txtAlpha2.Text); señal = new SeñalExponencial2(alpha2); break; // Exponente case 4: double exponente = double.Parse(((ConfiguracionSeñalExponencial2)panelConfiguracion.Children[0]).txtExponente.Text); señal = new SeñalExponencial2(exponente); break; default: señal = null; break; } plnGrafica.Points.Clear(); if (señal != null) { señal.tiempoFinal = tiempoFinal; señal.tiempoInicial = tiempoInicial; señal.frecuenciaMuestreo = frecuenciaMuestreo; //contruir señal señal.construirSeñalDigital(); //escalar if ((bool)chbEscalar.IsChecked) { double escalar = double.Parse(txtEscalar.Text); señal.escalar(escalar); } //desplazamiento if ((bool)chbDesplazamiento.IsChecked) { double desplazamiento = double.Parse(txtDesplazamientoY.Text); señal.desplazarY(desplazamiento); } //desplazamiento if ((bool)chbTruncar.IsChecked) { double umbral = double.Parse(txtUmbral.Text); señal.truncar(umbral); } //actualizar amplitud maxima señal.actualizarAmplitudMaxima(); //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)); plnEjeY.Points.Clear(); //punto del principio plnEjeY.Points.Add(new Point((0 - tiempoInicial) * scrContenedor.Width, (1 * ((scrContenedor.Height / 2.0) - 30) * -1) + (scrContenedor.Height / 2))); //punto del fin plnEjeY.Points.Add(new Point((0 - tiempoInicial) * scrContenedor.Width, (-1 * ((scrContenedor.Height / 2.0) - 30) * -1) + (scrContenedor.Height / 2))); }