private void Button_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(txtTiempoI.Text); double tiempoFinal = double.Parse(txtTiempoF.Text); double frecuenciaMuestreo = double.Parse(txtFrecMuestreo.Text); SeñalSenoidal señal = new SeñalSenoidal(amplitud, fase, frecuencia); double periodoMuestreo = 1.0 / frecuenciaMuestreo; plnGrafica.Points.Clear(); for (double i = tiempoInicial; i <= tiempoFinal; i += periodoMuestreo) { plnGrafica.Points.Add(new Point(i * scrGrafica.Width, señal.evaluar(i) * scrGrafica.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); 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)); }